Для каких реальных языков программирования легко писать интерпретаторы?

StackOverflow https://stackoverflow.com/questions/1236077

  •  22-07-2019
  •  | 
  •  

Вопрос

Для каких реальных языков программирования легко писать интерпретаторы?

"Настоящие" языки для меня - это языки, на которых вы действительно можете написать небольшой проект, а не один из простых Эзотерические языки программирования.

(Я спрашиваю, потому что хочу заняться каким-нибудь хобби-проектом.)

Это было полезно?

Решение

Метациркулярный оценщик в SICP - это упражнение по написанию интерпретатора схемы в Scheme.Это обычный CS-проект для первокурсников.

Другие советы

Написать интерпретатор для программирования очень просто язык Вперед (как только вы узнаете, как - но это хорошо задокументировано ).Forth используется для решения реальных задач более 40 лет.

Возможно, это слишком просто, но в процессе вы многому научитесь.

Беззаботное (онлайн) введение находится в глава 9 из книги Лео Броуди "Начинаем дальше".

Оригинальный язык Pascal Вирта является хорошим кандидатом и часто используется в качестве демонстрации в генераторах синтаксических анализаторов.Его грамматика LL(1), а в остальном довольно строгая, поэтому ее легко разобрать.С точки зрения функциональности это также довольно ограничено.

Однако, возможно, вам захочется немного повозиться с этим - напримервозможно, вы захотите игнорировать указатели, но поддерживать первоклассные строки.

Далее.Хорошо, сейчас я набираю это только потому, что мне нужно не менее 15 символов в ответе, но наименьшие реализации Forth составляют пару КБ.Трудно представить себе какой-либо другой язык, который мог бы иметь такое маленькое ядро.Возможно, оригинальный Лисп McCarthy 1958, где функции были скомпилированы вручную.

Схема или любой вариант lisp.

На занятиях по операционным системам в моем колледже мы написали интерпретатор для Db (D-flat).Это было очень просто и четко определено.

Я бы подумал, что это язык синтаксиса разметки, Liran.Синтаксическая структура облегчает синтаксический анализ, поскольку блоки кода четко разграничены между тегами begin и end.Теоретически вы могли бы легко создать интерпретатор уровня 1, который анализирует и запускает код напрямую.

Тем не менее, не существует никаких языков разметки, которые делали бы значимые вещи в том контексте, к которому, как мне кажется, вы стремитесь (возможно, вы захотите написать свой собственный).Следующим лучшим выбором, вероятно, будут языки с минимальной функциональностью и предпочтительно не поддерживающие процедурное программирование.Для такого языка, как BASIC, должно быть легко создать интерпретатор 1-го уровня.

Следующая лучшая вещь, возможно, - это ранние скриптовые языки, которые не предлагали много синтаксических элементов и были довольно короткими по сложности.Однако мне ничего не приходит в голову.

Но, возможно, лучший вариант из всех - это для вас разработать свой собственный язык.Создавать интерпретатор становится проще, потому что вы обладаете глубокими знаниями синтаксиса языка и можете управлять своей собственной языковой структурой и семантикой в интерпретаторе.

...

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top