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.  

 

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

19792. Текстові компоненти Label, Edit, Memo 26.5 KB
  Текстові компоненти Label Edit Memo Компоненти керування стандартні для Windows інтерфейсні елементи такі як головне і спливаюче меню кнопка однорядковий і багаторядковий редактори перемикачі мітки списки і деякі інші компоненти що застосовуються найчастіше. Компонен
19793. Файловий ввід/вивід. Поняття потока. Класс TFileStream 27 KB
  Файловий ввід/вивід. Поняття потока. Класс TFileStream. Файловий вводвивод реалізується по поточним стандартам.Наприклад Мова Сі абстрагує всі файлові операції перетворюючи їх на операції з потоками байтів які можуть бути як потоками введення так і потоками виведе
19794. Требования, предъявляемые к современным вычислительным сетям 17.73 KB
  Требования предъявляемые к современным вычислительным сетям Главным требование обеспечение пользователям потенциальной возможности доступа к разделяемым ресурсам всех компьютеров объединенных в сеть. Все остальные требования производительность надежность сов
19795. Основні методи комутацій. Методи передачі даних 18.59 KB
  Існують три принципово різні схеми комутації абонентів у мережах: комутація каналів circuit switching комутація пакетів packet switching і комутація повідомлень message switching. Мережа з комутацією каналів вид телекомунікаційної мережі у якій між двома вузлами мережі повинне б...
19796. Моделі OSI. Рівень моделі OSI, їх призначення 19.93 KB
  Модель OSI англ. Open Systems Interconnection Reference Model модель взаємодії відкритих систем абстрактна модель для мережних комунікацій і розробки мережевих протоколів. Представляє рівневий підхід до мережі. Кожен рівень обслуговує свою частину процесу взаємодії. Завдяки такій структ
19797. Апаратні та програмні компоненти ЛОМ 15.56 KB
  Весь комплекс програмноапаратних засобів мережі може бути описаний багатошаровою моделлю що складається з шарів:комп'ютери чи комп'ютерні платформи;комунікаційне обладнання;операційні системи;мережеві додатки.Комп'ютериВ основі будьякої мережі лежить апаратний шар
19798. Архітектура, основні поняття і визначення глобальних мереж 19.54 KB
  Комунікаційна мережа система що складається з об'єктів що здійснюють функції генерації перетворення зберігання і споживання продукту званих пунктами вузлами мережі і ліній передачі зв'язків комунікацій з'єднань що здійснюють передачу продукту між пунктами.Відм...
19799. Базові технології локальних мереж 30.5 KB
  Базові технології локальних мереж В локальних мережах як правило використовується середовище передачі даних моноканал що розділяється і основна роль відводиться протоколам фізичного і канального рівнів оскільки ці рівні найбільшою мірою відображають специфік
19800. Засоби доступу до Internet. Адресація в Internet IP –адреси; доменна система DNS 26.5 KB
  1.Засоби доступу до Internet. Адресація в Internet: IP адреси; доменна система DNS Засоби доступу до Інтернету є: Підключення по комутованій телефонній лінії за допомогою модемуПідключення до домашньої мережі підключення будинкамиПідключення із застосуванням супутни...