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.  

 

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

83625. Картограмма нагрузок. Определение условного центра электрических нагрузок 56.37 KB
  Определение условного центра электрических нагрузок. Картограмма нагрузок. Для определения места положения ГПП ТП при проектировании системы электроснабжения на генеральный план промышленного предприятия наносится картограмма нагрузок которая представляет собой размещённые на генеральном плане окружности причём площади ограниченные этими окружностями в выбранном масштабе равны расчётным нагрузкам цехов.
83626. МОЛНИЕЗАЩИТА ПОДСТАНЦИЙ 32.29 KB
  Молниезащита Iкатегории Защита от прямых ударов молнии зданий и сооружений относимых по устройству молниезащиты к I категории должна выполняться отдельно стоящими стержневыми или тросовыми молниеотводами. Защита от прямых ударов молнии зданий и сооружений II категории с неметаллической кровлей должна быть выполнена отдельно стоящими или установленными на защищаемом объекте стержневыми или тросовыми молниеотводами обеспечивающими зону защиты в соответствии с требованиями табл. Установка молниеприемников или наложение молниеприемной сетки не...
83627. Условия и требования норм проектирования по выбору трансформаторов тока (встроенные или отдельно стоящие, 10% погрешность, чувствительность продольной дифференциальной защиты) 39.83 KB
  Трансформаторы тока предназначены для понижения первичного тока до стандартной величины и для отделения цепей измерения и защиты от первичных цепей высокого напряжения. Основные номинальные параметры трансформаторов тока: Номинальное напряжение линейное Uном кВ Номинальный первичный ток I1ном А Номинальный вторичный ток I2ном А 1 или 5 Номинальная вторичная нагрузка с коэффициентом мощности cosφ2=0.8 ВА Номинальный класс точности для измерений Номинальный класс точности для защиты Коэффициент трансформации...
83628. Требования нормами технологического проектирования и САНПИНом к городским подстанциям и электрическим сетям 32.97 KB
  Нормами технологического проектирования к городским ПС и электрическим сетям рассматриваются и регламентируются следующие разделы: 1 Общие положения общие указания обьем и состав проектной документации 2 Расчетные электрические нагрузки расчетные электрические нагрузки жилых зданий электрические нагрузки общественных зданий и промышленных предприятий электрические нагрузки распределительных линий до 1 кВ электрические нагрузки сетей 106 кВ и ЦП укрупненные показатели расхода электроэнергии коммунальнобытовых потребителей 3...
83629. Очерёдность выполнения чертежей «План и разрезы подстанции и плана фундаментов» и что отражено на этих чертежах 28.85 KB
  В рабочие чертежи включают: 1 общие данные по рабочим чертежам; 2 принципиальную схему главных цепей; 3 принципиальные полные схемы релейной защиты управления измерения сигнализации и т.; 4 планы расположения электрооборудования ошиновки и прокладки сетей заземления; 5 планы прокладки электрических сетей; 6 схемы таблицы подключения; 7 кабельный журнал; 8 рабочую документацию задания МЭЗ; 9 эскизные чертежи общего вида НКУ. На схеме указывают: 1 номинальное напряжение сборных шин; 2 типы номинальные токи и сопротивление...
83630. Перечислить основные виды спецификаций и что отражает экспликация на чертеже 30.3 KB
  Описание спецификации дается в ГОСТ 2. Над основной надписью помещаются графы спецификации. В основной надписи спецификации указывают наименование сборочной единицы масштаб ее изображения. Спецификации первого типа чаще используются в конструкторскотехнологических подразделениях а второго на сборочных участках и при работе по заказам.
83631. Перечислить мероприятия предотвращающие электромагнитную наводку на кабели в ОРУ и устройства в ЗРУ 29.45 KB
  Должны выполняться мероприятия исключающие электростатические и электромагнитные наводки на металлических элементах расположенных в помещениях аккумуляторных батарей а также заносы туда высоких потенциалов. Для защиты от электростатической индукции на указанных элементах достаточно надежно присоединить к общему заземляющему устройству электростанций и подстанций гладкие трубы в помещениях аккумуляторных батарей предназначенные для отопления и выдержать расстояния от токоведущих шин до частей здания и других заземленных элементов не менее...
83632. Назначение кабельного журнала и что отражено на листах кабельного журнала 30.27 KB
  В кабельном журнале описывается маркировка каждого кабеля откуда и куда он идет его марка длина кабельной линии и его назначение. Назначение: Всю необходимую информацию о кабелях можно представить непосредственно на схемах: можно указать марку длину способ прокладки кабеля. Однако при построении достаточно большой системы во избежание перегруженности чертежей удобнее вынести эти данные в отдельную таблицу оставив на схемах лишь присвоенные кабелям обозначения. Во время монтажа в кабельный журнал заносятся следующие сведения: номер...
83633. Выполнение чертежей оперативной блокировки на ПС. Что должно быть отражено на чертеже. Какие виды блокировки коммутационных оборудований используются на ПС 30.11 KB
  Основные требования к оперативной блокировке: Блокзамки блокировки должны запирать приводы разъединителей только в крайних положениях включено и отключено; они не должны запирать привод разъединителя в промежуточном положении; Оперативная блокировка не должна давать ложное разрешение на операции с разъединителями при исчезновении напряжения оперативного тока или неисправностях самой оперативной блокировки. Механическая блокировка – это блокировка непосредственного действия которая может быть выполнена на близко...