Я ищу простой код интерпретатора, написанный на C ++. В идеале это было бы для чего-то не более сложного, чем вычислитель выражений с присвоением переменных (для кода управления памятью).
Я рассуждаю о том, что я работаю над Modern Compiler Design с целью внести свой вклад в интерпретируемые языковые движки, такие как движок JavaScript V8. Однако весь код этой книги до сих пор написан на C, и я хотел бы увидеть в этом контексте методы проектирования, реализованные для C ++, особенно модели управления памятью, а также структуру lexer / parser / etc в целом.
Я знаю, что написано не так много кода, который является базовым, и что C ++ не является традиционно любимым языком для написания интерпретаторов (особенно в мире открытого кода), но я надеюсь, что кто-то работал над этим раньше и может, по крайней мере, указать мне на их личный репозиторий Git.
Я искал подобный код в течение недели, но единственный код, который я могу найти, слишком сложен, чтобы я мог быть пойман на этом этапе.
Я ищу простой код интерпретатора, написанный на C ++. В идеале это было бы для чего-то не более сложного, чем вычислитель выражений с присвоением переменных (для кода управления памятью).
Ты читал Язык программирования C ++?
В главе 6 приведен хороший пример простого парсер рекурсивного спуска. И да, это оценщик выражений с присвоением переменных.
Калейдоскоп LLVM Учебное пособие включает в себя множество основ, которые вам понадобятся: приличный идиоматический C ++ — лексирование и синтаксический анализ, промежуточная обработка представлений и т. д.
В качестве альтернативы, если вы ищете настоящий хардкорный опыт C ++, вы можете взглянуть на Повысьте :: Дух, Есть множество примеров — от простых оценщиков выражений до сложных грамматик.