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.  

 

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

56164. Мама, тато, я – спортивна сім`я 87 KB
  Завдання: активізувати спортивно-масову роботу серед учнів та їх батьків; зміцнювати здоров`я дітей та їх батьків засобами фізичної культури; розвивати спритність, кмітливість, організованість за допомогою рухливих ігор та естафет...
56165. Папа, мама, я – спортивная семья 42 KB
  Мы видим здесь приветливые лица Спортивный дух мы чувствуем вокруг У каждого здесь сердце олимпийца Здесь каждый спорту и искусству рад. Учащийся 2: Тот победит в соревнование Кто меток ловок и силен Покажет все свое уменье Кто духом телом закален.
56166. Малі Олімпійські ігри 67.5 KB
  Мета. Забезпечити відповідну рухову активність дггей; закріпити навички бігу, метання у ціль; вміння вести м'яч, вміння вести шайбу клюшкою; вчити дотримуватись правил гри у іграх - естафетах. Розвивати інтерес до фізичної культури та спорту...
56167. Веселе спортивне свято здоров’я 44.5 KB
  діти стають в дві шеренги. Нас діти запросили на спортивне свято. Ні зарядку я ніколи не робив Гартуватись теж боюся бо вода така холодна аж мороз по шкірі йде Може знаєте ви діти Які є на світі ліки Щоб сміливим дужим стати Та від інших не відстати.
56168. О СПОРТ! ТЫ – МИР! 55.5 KB
  Украинский флаг гимн Украины флагшток секундомер мячи скакалки свисток. А сейчас возьмем мы в руки мяч Мастерство оценим передач. Мяч капитану. У капитана в руках мяч.
56169. ТАТО, МАМА, Я – СПОРТИВНА СІМ’Я 42 KB
  Доброго дня, шановні друзі. Сьогодні у нас за планом мали відбутися спортивні змагання. Але учасники змагань потрапили в невелику халепу. Вони зненацька опинилися на безлюдному острові. І тепер їм доведеться пройти випробування, щоб повернутися назад у нашу школу.
56170. Тато, мама і я – спортивна сімя 40 KB
  Мета: розвивати руховий апарат, фізичні уміння на навички учнів, удосконалювати уміння і навички основних рухових елементів; зміцнювати здоров’я; виховувати любов до фізкультури та спорту, почуття дружби, колективізму...
56171. ДЕНЬ ЗДОРОВ’Я ТА СПОРТУ 88 KB
  Наша мета визначити яка спеціальність вище швидше й сильніше. 1 ведучий: Спортом займатися - здоровя набиратися. Спорт помічник Спорт здоровя Спорт-гра Всім учасникам фізкульт УРА 2 ведучий: Усіх вас любимо й Усіх поважаємо На свято сьогодні Ми всіх запрошуємо Удачі успіхів веселощів бажаємо.
56172. Sport. My favourite sport 455 KB
  Objectives: - 1) To practice words and word combinations in pls’ speech; to practise and check pls’ skills of listening comprehension for specific information; to practice pls’ reading skills for getting useful information...