Раскрутка компилятора

Раскрутка компилятора

Раскрутка компилятора (англ. bootstrapping) — метод создания компилятора некоторого языка программирования, позволяющий использовать для написания компилятора сам этот язык (не прибегая к программированию на языке низкого уровня). Раскрутка также используется для переноса компиляторов на новые платформы. Основные идеи раскрутки появились в середине 1950-х годов, а впервые метод был применён для реализации языка Neliac в 1960 году. С помощью этого метода было реализовано большое количество языков, в том числе BASIC, С, Pascal, Haskell, Modula-2, Oberon, OCaml, Common Lisp, Scheme и Nemerle.

Раскрутка компилятора имеет свои преимущества:[1]

  • это своеобразный тест компилируемого языка;
  • разработчику компилятора необходимо знать только язык компилятора;
  • это всесторонняя проверка самосогласованности, так как компилятор должен уметь обработать свой объектный код.

Принцип работы

Создание компилятора языка L для платформы M методом раскрутки подразумевает последовательность некоторых шагов.

  1. На первом шаге из языка L выделяется подмножество L0, которое не требует больших усилий для реализации, но является достаточно богатым для написания компилятора самого себя.
  2. На втором шаге, используя какой-либо существующий для платформы M язык (например, C) программируется компилятор L0—С—M.
  3. Затем на языке L0 для платформы M пишется компилятор самого языка L0, то есть L0—L0—M, который можно скомпилировать с помощью компилятора, полученного на втором шаге. После этого шага у программиста имеется компилятор L0, способный обработать свой исходный код.
  4. Далее начинается постепенное расширение L0 до L: добавляется какая-либо ранее не реализованная возможность языка L, после чего предыдущей версией компилируется новая, а вновь добавленную возможность можно использовать в компиляторе для последующего расширения языка. Именно этот процесс и называют раскруткой.

Примечания

  1. Patrick D. Terry Compilers and Compiler Generators: An Introduction With C++. — International Thomson Computer Press, 1997. — ISBN 1850322988

Литература



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Раскрутка компилятора" в других словарях:

  • Раскрутка — Раскрутка: Раскрутка фирмы Раскрутка сайта Раскрутка компилятора Раскрутка цикла Стимулирование сбыта …   Википедия

  • PyPy — Тип Интерпретатор и компилятор Python Написана на Python Операционная система Кроссплатформенный Последняя версия 1.9 (8 июня 201 …   Википедия

  • UNIX — Генеалогическое древо UNIX систем UNIX (читается юникс) семейство переносимых, многозадачных и многопользовательских …   Википедия

  • UX — Генеалогическое древо UNIX систем UNIX (читается юникс)  группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано …   Википедия

  • Unix — Генеалогическое древо UNIX систем UNIX (читается юникс)  группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано …   Википедия

  • ЮНИКС — Генеалогическое древо UNIX систем UNIX (читается юникс)  группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано …   Википедия

  • Юникс — Генеалогическое древо UNIX систем UNIX (читается юникс)  группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»