Что процесс создания является интерпретируемым языком? [дубликат]

5
задан Federico klez Culloca 27 May 2010 в 17:19
поделиться

4 ответа

Вам нужно реализовать как синтаксический анализатор, так и интерпретатор.

Есть отличный бесплатный учебник под названием "Языки программирования: Применение и интерпретация", в котором используется схема для создания все более сложных интерпретаторов. Она также служит отличным введением в особенности языков программирования.

Посмотрите ее здесь: http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/

Если Scheme вам не по душе, возможно, стоит обратить внимание на следующие книги.

4
ответ дан 14 December 2019 в 13:28
поделиться

Взгляните на парсер LL "spirit" библиотеки ускорений.

0
ответ дан 14 December 2019 в 13:28
поделиться

Несколько шагов:

Во-первых, создайте лексер и парсер. Это очень легко сделать с помощью обычных инструментов, таких как lex и yacc, или используя более современный фреймворк, такой как Antlr (именно его я и рекомендую). Эти инструменты генерируют исходный код для вашего целевого языка, который вы можете затем скомпилировать и включить в свой проект.

Лексер и синтаксический анализатор создадут внутреннее представление исходного файла. Существует несколько различных подходов к этому:

  1. В модели байткода исходный файл компилируется в низкоуровневый внутренний язык, для которого вы пишете интерпретатор байткода, непосредственно выполняющий операции. Так работают, например, языки Perl и .NET.
  2. В модели дерева объектов исходный файл компилируется в дерево объектов, в котором каждый объект знает, как выполнить сам себя. После завершения разбора вы просто вызываете Exec() на корневом объекте (который в свою очередь вызывает Exec() на своих дочерних объектах и т.д.). По сути, это метод, который я использую для своего интерпретируемого доменно-специфического языка Phonix.
2
ответ дан 14 December 2019 в 13:28
поделиться

Чтобы создать интерпретируемый язык, вам нужно создать две вещи:

  • Формальное определение грамматики языка
  • Синтаксический анализатор, который может читать и интерпретировать язык

Как только вы определили сам язык, существует несколько инструментов, помогающих создать синтаксический анализатор языка. Классическими инструментами являются lex и yacc , а также их версии с открытым исходным кодом flex и bison .

0
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: