20614

Разработка компилятора

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Параметры: S – исходный язык I – язык реализации компилятора на котором написан T – целевой язык генерация кода для целевой машины Т. Если взять связку 3х компиляторов то получим еще один компилятор: Использование возможностей языка для компиляции его самого называется раскруткой. Кросскомпилятор LSN создан для нового языка Lна языке реализации S с генерацией кода для машины N.

Русский

2013-07-31

208.5 KB

6 чел.

Лекция №15

Разработка компилятора

Написать компилятор для Fortran:

Исходный язык (отличие от существующих компиляторов)

Целевой язык (платформа)

Критерии производительности (скорость исполняемого кода – оптимальный объем).

Параметры:

S – исходный язык,

I – язык реализации компилятора (на котором написан),

T – целевой язык (генерация кода для целевой машины Т).

   ->    

Если взять связку 3-х компиляторов, то получим еще один компилятор:

Использование возможностей языка для компиляции его самого называется раскруткой.

Кросс-компилятор LSN  создан для нового языка Lна языке реализации S с генерацией кода для машины N.

Существует компилятор SMM для языка S, работающий на машине M и генерирующий код для M.

Если LSN пропустить через SMM, то получится LMN.

Пример 1: Создание языка Паскаль.

Паскаль был впервые реализован путем написания компилятора на языке Паскаль (на бумажке). После этого вручную был оттранслирован на машинный язык без оптимизации. Получили компилятор, в котором заложена оптимизация. Затем, после нескольких раз раскрутки получили оптимизированный компилятор.

Создавая компилятор LLN, разработка происходила на машине, где имеется существующий компилятор LMM. Если соединить диаграммой, то получим LMN.

Пример 2. Фортран написан на Фортран и прошел 3 стадии раскрутки.

  1.  IBM 384 прошел раскрутку на компиляторе system 360.

FFM -> FМM

  1.  Вручную был создан FM1M1 неоптимизированный.
  2.  Прогоняется FFM через FM1M1. Получаем компилятор FM1M для Фортран, делающий неоптимальный код оптимальным, но работающий неоптимально.
  3.  Берем FFM и прогоняем его через FM1M. Получим компилятор FМM, делающий оптимальный код и работающий оптимально.

Структуры существующих языков

//Паскаль в момент рождения

Средства оптимизации создания компиляторов:

  1.  генератор синтаксических анализаторов,

вход: грамматика,

выход: синтаксический анализатор.

  1.  генератор лексического анализатора,
  2.  средства синтаксически-управляемой трансляции (синтаксическое дерево, с каждым листом связано действие),
  3.  автоматический генератор кода (преобразование из промежуточного языка в язык целевой машины).


Исходный код

Лексический анализатор

оток токенов

Генератор промежуточного кода

Семантический анализатор

Результирующий код

  1.  

 

А также другие работы, которые могут Вас заинтересовать

22000. Тридцатилетняя война 1618-1648 гг. 128.5 KB
  Интересы Габсбургов сталкивались также в Южной Германии. Рейне и угроза усиления католического лагеря в Германии таили предпосылки обострения конфликта Габсбургов с Францией. сохранения политической раздробленности Германии и всемерной поддержки внутренней борьбы происходившей в ней между протестантскими и католическими князьями. Французские политики стремились не допустить усиления Австрийских Габсбургов в Германии.
22001. Франкское государство 82.5 KB
  Военные предводители франков короли герцоги завоевали земли от Рейна до Соммы затем между Сеной и Луарой продвигаясь к югу вытеснили готов за Пиренеи. Так же была размещена и общая для всей деревни площадь пахотной земли которая в свою очередь делилась на различные поля так называемые геванны или коны по качеству почвы. Хлодвиг присвоил себе земли бывшего императорского фиска. Его преемники прихватили все свободные земли бывшие достоянием общины.
22002. Франция в XI-XV вв. 269.5 KB
  Серв получал свободу только через отпуск для чего требовалась еще и санкция вышестоящего сеньора или короля. должность графа равно как и прочие бенефиции полученные от короля становилась наследственным достоянием их обладателей. на дворянский отряд осуществлявший в Бовези реквизицию продуктов у крестьян стали осаждать рыцарские замки сжигать или захватывать поместья было разрушено не менее 100 замков или домов уничтожать списки повинностей и требовать истребления всех дворян кроме короля. Города разными путями добивались...
22003. Франция в XVI-XVIII вв. 183 KB
  Во Франции в XVIXVII вв. Парижский бассейн – самая развитая область Франции урожайность – 15 цт с 1 га сам5; на юге – чуть ниже; трехполье; для сравнения – урожайность в Англии составляла 13 цт с 1 га. в некоторых местностях Северной Франции появилась новая форма аграрных отношений – краткосрочная аренда более или менее крупных земельных комплексов. – климат характеризуется потеплением и преобладанием урожайных лет над неурожайными а война велась вне пределов Франции и сопровождалась умеренным ростом налогов.
22004. Україна у складі Російської та Австро-Угорської імперій (кінець ХVІІІ – початок ХХ ст.) 56 KB
  Український суспільно-політичний рух опирався не тільки на внутрішні джерела, а й на зовнішні чинники. Йдеться, зокрема, про відчутний вплив на цей рух Французької революції, зокрема її концепції вільної нації.
22005. Чехия в XI-XV вв. 127.5 KB
  Леса – хвойные Чехии смешанные Словакия. В Чехии со второй четверти XII в. – конец династии Пшемысловичей борьба за престол и утверждение в Чехии Люксембургов 1310 г. Во главе деревни стоял наследственный староста – в Чехии – рижстарж в Польше – солтыс войт.
22006. Швейцария в XVI в. 52.5 KB
  Торговля содействовала развитию кредита так как Цвингли и Кальвин отвергли запрет . Ульрих Цвингли 14841531 сын сельского старосты окончил латинскую школу в Берне в Базельском и Венском университетах связан с Эразмом магистр свободных искусств увлекался гуманистическими штудиями. У Цвингли не было ничего из мистического созерцания Лютера. Цвингли свои взгляды изложил в 67 тезисах 1523 г.
22007. Япония в III-VIII –XII вв. 64 KB
  Заселение овов Японии началось давно. в Японии образовался племенной союз занимавший ов Кюсю или по мнению других южную часть ова Хонсю провинции Ямато Коти Эцу. По синтоизму – японская нация ведет свое происхождение от богиги Солнца Аматэрасу потомком которой был легендарный император Японии Дзиммутэнно 660 г. Особенность исторического развития Японии состоит в том что первобытнообщинный строй трансформировался в феодальный минуя рабовладельческий.
22008. Япония в XIV-XVI вв. 78 KB
  Таким образом появление новой сёгунской династии не означало централизации страны. Вся остальная часть страны находилась в руках местных феодалов. Посевы хлопчатника до этого сеяли эту культуру только в южной части страны появились и в восточной части страны. Встал вопрос об объединении страны.