WikiDer > Мета-круговой оценщик
В вычисление, а мета-круговой оценщик (MCE) или мета-круговой интерпретатор (MCI) является переводчик который определяет каждую особенность интерпретируемого языка с использованием аналогичных возможностей основного языка интерпретатора. Например, интерпретация лямбда-приложения может быть реализована с использованием приложения-функции.[1] Мета-круговая оценка наиболее заметна в контексте Лисп.[1] А переводчик-самоучитель представляет собой мета-круговой интерпретатор, в котором интерпретируемый язык почти идентичен исходному языку; эти два термина часто используются как синонимы.[2]
История
Диссертация Коррадо Бём[3] описывает дизайн самостоятельный хостинг компилятор.[4] Из-за сложности составления функции высшего порядкавместо этого многие языки были определены через интерпретаторы, в первую очередь Лисп.[1][5] Сам термин был придуман Джон С. Рейнольдс,[1] и популяризируется благодаря использованию в книге Структура и интерпретация компьютерных программ.[2][6]
Самостоятельные переводчики
Самоинтерпретатор - это мета-круговой интерпретатор, в котором основной язык также является языком, который интерпретируется.[7] Самоинтерпретатор отображает универсальная функция для рассматриваемого языка и может быть полезен при изучении определенных аспектов языка.[8] Самостоятельный переводчик предоставит циркуляр, пустой определение большинства языковых конструкций и, таким образом, дает мало информации о семантике интерпретируемого языка, например стратегия оценки. Решение этих проблем дает более общее понятие «дефиниционный интерпретатор».[1]
Использует
В сочетании с существующей реализацией языка мета-циклические интерпретаторы предоставляют базовую систему для расширения языка, либо вверх, добавляя дополнительные функции, либо вниз, скомпилировав функции, а не интерпретируя их.[9] Они также полезны для написания инструментов, тесно интегрированных с языком программирования, таких как сложные отладчики.[нужна цитата] Язык, разработанный с учетом мета-круговой реализации, часто больше подходит для создания языков в целом, даже тех, которые полностью отличаются от основного языка.[нужна цитата]
Примеры
Эта секция нужны дополнительные цитаты для проверка. (Сентябрь 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Многие языки имеют одну или несколько мета-циклических реализаций. Вот неполный список.
Некоторые языки с мета-круговой реализацией, разработанной снизу вверх в сгруппированном хронологическом порядке:
- Лисп, 1958
- Схема, 1975
- Пико, 1997[10]
- ActorScript, 2009?
- Clojure, 2007
- Схема, 1975
- Четвертый, 1968
- PostScript, 1982
- Пролог, 1972
- TeX, на основе девственного TeX, 1978 г.
- Болтовня, 1980
- Ребол, 1997
- Красный, 2011
- Фактор, 2003
Некоторые языки с мета-циклической реализацией через третьих лиц:
- Ява через Jikes RVM, Пронзительный крик или Максин
- Scala через Метаскала
- JavaScript через Нарцисс или JS-интерпретатор
- Унция через Глинду
- Python через PyPy
- Рубин через Рубиниус
- Lua через Metalua
Смотрите также
использованная литература
- ^ а б c d е Рейнольдс, Джон С. (август 1972 г.). "Определительные интерпретаторы языков программирования высшего порядка" (PDF). Вычисление высшего порядка и символическое вычисление. 11 (4): 363–397. Дои:10.1023 / А: 1010027404223. Получено 14 апреля 2017.
- ^ а б «Метациркулярный оценщик». Структура и интерпретация компьютерных программ. Массачусетский технологический институт.
- ^ К. Бём, Цифровые калькуляторы. Du déchiffrage des formules logico-mathématiques par la machine même dans la concept du program, Анна. Мат. Pura Appl. (4) 37 (1954) 1-51
- ^ Кнут, Дональд Э.; Пардо, Луис Трабб (август 1976 г.). Раннее развитие языков программирования. п. 36.
- ^ Маккарти, Джон (1961). «Универсальная функция LISP» (PDF). Руководство программиста на Лисп 1.5. п. 10.
- ^ Харви, Брайан. «Почему важны структура и интерпретация компьютерных программ». people.eecs.berkeley.edu. Получено 14 апреля 2017.
- ^ Брейтуэйт, Реджинальд (22 ноября 2006 г.). «Значение мета-кругового интерпретатора». Получено 2011-01-22.
- ^ Рейнольдс, Джон С. (1998). "Возвращение к дефинитивным переводчикам" (PDF). Вычисление высшего порядка и символическое вычисление. 11 (4): 356–7. Дои:10.1023 / А: 1010075320153. Получено 14 апреля 2017.
- ^ Ориоль, Мануэль; Мейер, Бертран (2009-06-29). Объекты, компоненты, модели и паттерны: 47-я международная конференция, TOOLS EUROPE 2009, Цюрих, Швейцария, 29 июня - 3 июля 2009 г., Материалы. Springer Science & Business Media. п. 330. ISBN 9783642025716. Получено 14 апреля 2017.
- ^ Мета-круговая реализация языка программирования Pico
внешние ссылки
- Структура и интерпретация компьютерных программ (SICP), онлайн-версия полной книги, дата обращения 18.01.2009.
- Метаскала