Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Практикум «Оптимизирующие компиляторы» (на примере GCC)

Практикум «Оптимизирующие компиляторы» (на примере GCC), страница 18

PDF-файл Практикум «Оптимизирующие компиляторы» (на примере GCC), страница 18 Конструирование компиляторов (53255): Книга - 7 семестрПрактикум «Оптимизирующие компиляторы» (на примере GCC): Конструирование компиляторов - PDF, страница 18 (53255) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Практикум «Оптимизирующие компиляторы» (на примере GCC)", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 18 страницы из PDF

Lex.l%{ /* -*- c -*- = mode for emacs editor/*VMK lexical analysis*/#include#include#include#include#include<stdio.h><memory.h>"ansidecl.h""config.h""system.h"/* Avoid poisoned malloc problem.#undef IN_GCC*/#include "config.h"#include "diagnostic.h"#include "tree.h"/* Token defs.

*/#include "vmk.h"#include "parse.h"%}%%constant{unarybinary {ternary {function{is{yylval.ival = 0; return ARG_NUMBER; }{ yylval.ival = 1; return ARG_NUMBER; }yylval.ival = 2; return ARG_NUMBER; }yylval.ival = 3; return ARG_NUMBER; }return FUNCTION; }return IS; }firstly { return FIRST; }first{ yylval.ival = 0; return PARAM; }second { yylval.ival = 1; return PARAM; }third{ yylval.ival = 2; return PARAM; }zeroonetwothreefourfivesixseven{ yylval.ival = 0; return ZERO_NUMBER; }{ yylval.ival = 1; return SIMPLE_NUMBER; }{ yylval.ival = 2; return SIMPLE_NUMBER; }{ yylval.ival = 3; return SIMPLE_NUMBER;{ yylval.ival = 4; return SIMPLE_NUMBER;{ yylval.ival = 5; return SIMPLE_NUMBER;{ yylval.ival = 6; return SIMPLE_NUMBER; }{ yylval.ival = 7; return SIMPLE_NUMBER;}}}}Практикум «оптимизирующие компиляторы»eightnine{ yylval.ival = 8; return SIMPLE_NUMBER; }{ yylval.ival = 9; return SIMPLE_NUMBER; }ten{eleven {twelve {thirteen{fourteen{fifteen {sixteen {seventeeneighteen{nineteen{twentythirtyfourtyfiftysixtyseventyeightyninety{ yylval.ival = 20; return COMPOSITE_NUMBER; }{ yylval.ival = 30; return COMPOSITE_NUMBER; }{ yylval.ival = 40; return COMPOSITE_NUMBER; }{ yylval.ival = 50; return COMPOSITE_NUMBER; }{ yylval.ival = 60; return COMPOSITE_NUMBER; }{ yylval.ival = 70; return COMPOSITE_NUMBER; }{ yylval.ival = 80; return COMPOSITE_NUMBER; }{ yylval.ival = 90; return COMPOSITE_NUMBER; }hundred {andthenargument{arg{plusminusmuldivyylval.ival = 10; return TENS_NUMBER; }yylval.ival = 11; return TENS_NUMBER; }yylval.ival = 12; return TENS_NUMBER; }yylval.ival = 13; return TENS_NUMBER; }yylval.ival = 14; return TENS_NUMBER; }yylval.ival = 15; return TENS_NUMBER; }yylval.ival = 16; return TENS_NUMBER; }{ yylval.ival = 17; return TENS_NUMBER; }yylval.ival = 18; return TENS_NUMBER; }yylval.ival = 19; return TENS_NUMBER; }return HUNDRED; }{ return AND; }{ return THEN; }return ARGUMENT; }return ARGUMENT; }{ return PLUS; }{ return MINUS; }{ return MUL; }{ return DIV; }[0-9]+ { yylval.ival = atoi( yytext ); return NUM; }[a-zA-Z]+ { yylval.name = yytext; return NAME; }[ \n];.

{ return yytext[0]; }%%int yywrap(){return 1;}Практикум «оптимизирующие компиляторы»Приложение Ж. parce.y/* Grammer file for compiler for toy language.%{#include#include#include#include#include*/"stdio.h""config.h""system.h""tree.h""vmk.h"void yyerror (const char *error_message ATTRIBUTE_UNUSED);int yylex(void);%}%union {tree exp;int ival;char *name;}/* Tree node representing value. *//* Integer value for constant or arg *//* Name of function */%token_table%token <ival> NUM/* Decimal constant. */%token <name> NAME/* Function name. */%token PLUS/* Plus operator */%token MINUS/* Minus operator */%token MUL/* Multiple operator */%token DIV/* Divide operator */%token FIRST%token THEN/* Digits */%token <ival> ZERO_NUMBER%token <ival> SIMPLE_NUMBER%token <ival> TENS_NUMBER%token <ival> COMPOSITE_NUMBER%token HUNDRED%token AND%token%token%token%token%token<ival> ARG_NUMBER<ival> PARAMFUNCTIONISARGUMENT%left MINUS PLUS%left MUL DIVПрактикум «оптимизирующие компиляторы»%type <exp> exp fndef%type <ival> number complex arg_num before_h hundreds%type <name> fname;%expect 0%%input: /* empty */| input func| error ;func:fndef IS exp ';' { build_function ($1, $3); } ;fndef: arg_num FUNCTION fname { $$ = build_function_decl ( $3,$1); } ;arg_num: ARG_NUMBER$1; };{ printf("Arg number: %d\n",$1); $$ =fname: NAME$1; };{ printf("Func name: %s\n",$1); $$ =exp: number{ $$ = build_int_2 ($1, $1 >= 0 ? 0 : -1); }| PARAM{ $$ = get_arg_decl ($1); }| exp PLUS exp {$$ = build (PLUS_EXPR, integer_type_node,$1, $3);}| exp MINUS exp{$$ = build (MINUS_EXPR, integer_type_node, $1,$3);}| exp MUL exp { $$ = build (MULT_EXPR, integer_type_node,$1, $3); }| exp DIV exp {$$=build (TRUNC_DIV_EXPR, integer_type_node,$1,$3); }| FIRST exp THEN { $$ = $2; }| '(' exp ')'{ $$ = $2; }| error{ $$ = error_mark_node; } ;number:{ $$ = 0; }|ZERO_NUMBER { $$ = $1; }|before_h{ $$ = $1; }|hundreds{ $$ = $1; };before_h:||SIMPLE_NUMBERTENS_NUMBERcomplex{ $$ = $1; }{ $$ = $1; }{ $$ = $1; };Практикум «оптимизирующие компиляторы»complex: COMPOSITE_NUMBER| COMPOSITE_NUMBER SIMPLE_NUMBER{ $$ = $1; }{ $$ = $1 + $2; };hundreds: before_h HUNDRED| before_h HUNDRED AND before_h| before_h HUNDRED before_h%%{ $$ = $1 * 100; }{ $$ = $1 * 100 + $4; }{ $$ = $1 * 100 + $3; };Практикум «оптимизирующие компиляторы»Лабораторный практикумКданномуметодическомупособиюприлагаютсяматериалыдляпроведения лабораторного проактикума по следующим разделам:• разработка нового компилятора переднего плана (front end’а);• примеры для изучения работы оптимизатора;• пример описания архитектуры.Исходныекодыwww.roman.nnov.ruпримеровирекомендациидоступнынасайтеПрактикум «оптимизирующие компиляторы»Рекомендуемая литература1.

А. Ахо, Р. Сети, Дж. Ульман, «Компиляторы: принципы, технологии иинструменты», М., «Вильямс», 2001.2. Воеводин В. В. Отображение проблем вычислительной математики наархитектуру вычислительных систем. // Вычислительные методы ипрограммирование, 2000.– Т. 1.– с. 73 - 44.3.

Воеводин Вл.В., Капитонова А.П. Методы описания и классификациивычислительных систем.–М.: Издательство МГУ.– 1994.– 380 с.4. Евстигнеев В. А. Некоторые особенности программного обеспеченияЭВМ с длинным командным словом. // Программирование. – 1991.–№2.– с.69-80.5. Евстигнеев В. А. Применение теории графов в программировании. // Подред.

А. П. Ершова.– М.:Наука. Гл. ред. физ.-мат- лит., 1985.– 352 с.6. Евстигнеев В. А., Касьянов В. Н. Оптимизирующие преобразования враспараллеливающих компиляторах. // Программирование.– 1996.– №6.– с. 12-26.7. Евстигнеев В. А., Касьянов В. Н. Сводимые графы и граф-модели впрограммировании.– Новосибирск: Издательство ИДМИ, 1999.– 288 с.8. Евстигнеев В. А., Серебряков В. А. Методы межпроцедурного анализа(обзор). // Программирование, 1992.– № 3.– с. 4-15.9. Ершов А. П.

Введение в теоретическое программирование (беседы ометоде).– М.: Гл. ред. физ.-мат. лит. изд-ва "Наука".– 1977.– 288 с.10. Касьянов В. Н. Оптимизирующие преобразования программ.– М. –Наука. Гл. ред. физ.-мат. лит., 1988.– 366 с.Практикум «оптимизирующие компиляторы»11. КасьяновВ.Н.Средстваподдержкипримененияграфоввпрограммировании. // Проблемы программирования.– 2000.– №1-2.– с.286-300.12. Касьянов В. Н., Поттосин И.

В. Методы построения трансляторов. –Новосибирск.– Наука, 1986.– 344 с.13. Кузнецов О.П., Адельсон-Вельский Г.М. Дискретная математика дляинженера.– М.: Энергия, 1980.– 344 с.14. Т. Пратт, М. Зелковиц, «Языки программирования: разработка иреализация», СПб.: Питер, 200215. Скворцов С. В. Оптимизация кода для суперскалярных процессоров сиспользованием дизъюнктивных графов.

// Программирование.– 1996,№ 2.– с. 41-52.16. ФранцузовЮ.А.Обзорметодовраспараллеливаниякодаипрограммной конвейеризации. // Программирование.– 1992.– №3.– с.16-30.17. Французов Ю. А. Планирование потока команд с отложеннымраспределением регистров. // Программирование.– 1991, № 1.– с. 58-66.18. Фути К., Судзуки Н. Языки программирования и схемотехника БИС. –М.: Мир.– 1988.– 224 с.19. Шпаковский Г.

И. Метод планирования трасс и архитектура ЭВМ сосверхдлинной командой // ЗРЭ.– 1991.– N 11.– с. 10-27.20. Шпаковский Г. И. Организация параллельных ЭВМ и суперскалярныхпроцессоров. – Мн.: Белгосуниверситет, 1996. – 284 с., ил.21. Allan V., Jones R., Lee R., Allan S. Software Pipelining. // ACM ComputingSurveys.– vol. 27, no. 3.– September 1995.– 90 p.Практикум «оптимизирующие компиляторы»22.

Aho A. V., Sethi R., Ullman J. D. Compilers: Principles, Techniques andTools.– Reading, Mass: Addison-Wesley.– 500 p.– 1986. ISBN 0-20110088-6.23. Bacon D. F., Graham S. L., Sharp O. J. Compiler transformations for highperformance computing // ACM Computing Surveys.– 1994. V. 26. № 4.–PP. 345-420.24. Bala V., Rubin N. Efficient Instruction Scheduling Using Finite StateAutomata. // In Proc. of IEEE Micro-28, 1995. P. 46-56.25.

Bashford S. Code Generation Techniques for Irregular Architectures // Tech.Rep. 596, Universitat Dortmund.– November 1995.– 120 p.26. Beaty S. List Scheduling: Alone, with Foresight, and with Lookahead. // InConf. on Massively Parallel Computing System: the Challenges of GeneralPurpose and Special Purpose Computing. – Ischia, Italy.– May 1994.– p.246-253.27. Briggs P.

Register Allocation via Graph Coloring. // PhD thesis. RiceUniversity, Houston, Texas.– April 1992.– 143 p.28. Case B. Philips Hope to Displace DSPs with VLIW. // MicroprocessorReport, 8(16).– 5 Dec. 1994.– p. 12-15.29. Chen G., Smith M. Global Instruction Scheduling on Machine SUIF // InWorkshop on Interaction between Compilers and Computer Architecture,High Performance Computer Architecture.– N 3.– Feb.

1997.– p. 176-187.30. Ebcioglu K., Altman E. R. DAISY: Dynamic Compilation for 100%Architectural Compatibility. // In Proc. of 24th Intern. Symposium onComputer Architecture (ISCA).– June, 1997.– p. 26–37.31. Ebcioglu K., Nakatani T. A New Compilation Technique for ParallelizingLoops with Unpredictable Branches on a VLIW Architecture. // InПрактикум «оптимизирующие компиляторы»Languages and Compilers for Parallel Computer.– MIT Press, Cambridge,MA, 1990.– p. 213-229.32. Fauth A., Praet J. V., Freericks M.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее