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.  

 

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

49859. Расчет мощности электродвигателя и его составляющих 559.5 KB
  Выберем расчетную частоту вращения вала электродвигателя, методом подбора по оптимальному значению передаточного числа. Рекомендуемые пределы значений для соосного двухступенчатого редуктора
49860. Расчет привода электродвигателя АИР132М8 1.01 MB
  Расчёт производим в форме проверки коэффициента запаса прочности, значение которого можно принять. При этом должно выполняться условие, что, где – расчётный коэффициент запаса прочности, и – коэффициенты запаса по нормальным и касательным напряжениям, которые определим ниже.
49861. Автоматика и регулирование РДТТ 578 KB
  Значение основных параметров при регулировании с использованием центрального тела: Конструкция центрального тела Задание на курсовое проектирование Вариант №10. Для РДТТ стартующих в диапазоне температур окружающей среды и имеющего номинальные параметры кН МПа: Определить количество сменных вкладышей если их будет более 4 нужно изменить величину разброса и вычислить каждого вкладыша для определенного диапазона окружающей среды при настройке на Р=const; Построить в натуральную величину профиль обечайки по известным...
49862. Автоматика и регулирование РДТТ. Расчёт сменных сопловых вкладышей 745.5 KB
  Определить количество сменных вкладышей (если их будет более 4, нужно изменить величину разброса) и вычислить каждого вкладыша для определенного диапазона окружающей среды при настройке на Р=const;
49863. Расчет схемы управления и защиты трехфазного асинхронного двигателя 392 KB
  Защита трансформатора от токов короткого замыкания и перегрузки осуществляется автоматическим выключателем Q0. Нижестоящий выключатель Q1 защищает от токов к. Для защиты нагрузок 2 – 7 и соединяющих их линий l2 – l7 от токов короткого замыкания перегрузки и токов утечки ниже установлены автоматические выключатели нагрузки FD2 – FD7. Защита двигателя от токов короткого замыкания осуществляется автоматическим выключателем QF1.
49864. Проектирование технологического процесса сборки и средств технологического оснащения 2.62 MB
  Темой данного курсового проекта является разработка технологического процесса сборки прибора точной электромеханики и средств технологического оснащения. Исследуемым прибором является гиромотор (ГМ), который является трёхфазным асинхронным двигателем обращённого типа.
49865. Расчет электродвигателя и его составляющих 779.29 KB
  Кинематическая схема механизма Выбор электродвигателя Мощность на выходе: кВт Мощность электродвигателя: кВт Принимаем: кВт Определение частоты вращения вала: мин1 Определение частоты вращения электродвигателя: Принимаем двигатель: АИР90L4 мин1 ; р=2. Допускаемые напряжения для расчета на контактную выносливость: За расчетное допускаемое напряжение принимаем меньшее из полученных 7. Коэффициент нагрузки Принимаем Схема передачи 5 с учетом варианта а соотношений термических обработок. Коэффициент...
49866. Ленточный транспортер 563.29 KB
  Для передачи крутящего момента от двигателя использован цилиндрический соосный двухпоточный мотор-редуктор, который состоит из прямозубых зубчатых колес с внешним зацеплением(быстроходная ступень) и внутренним (тихоходная ступень). Чугунный корпус имеет разьем в вертикальной плоскости.
49867. Автоматика и регулирование РДТТ. Расчет параметров двигателя 4.43 MB
  Расчет основных параметров двигательной установки Газовая постоянная продуктов сгорания топлива: Физикохимическая константа топлива: Постоянную топлива: Комплекс Ак: Секундный массовый расход при номинальных условиях окружающей среды: Скорость горения при нормальных условиях: Определим потребную площадь горения: Коэффициент сопла: φс = 098 Коэффициент тепловых потерь: χ = 098 Площадь критического сечения при номинальной температуре заряда: Задаем значение давления на срезе сопла: ра = 01 МПа; Определим значение приведенной скорости:...