Задать вопрос

Как делаются скриптовые языки программирования?

Чисто из любопытства возник вопрос ,как делаются скриптовые языки программирования? Например php ,то что он на C написано это все знают, но как? Я чисто для себя хочу написать свой язык с всего лишь пару функциями, но со своим компилятором. И можно ли это реализовать на C# ? :)
  • Вопрос задан
  • 2491 просмотр
Подписаться 7 Оценить Комментировать
Ответ пользователя dponyatov К ответам на вопрос (7)
@dponyatov
Для написания интерпретатора очень важно понять самый главный принцип: интерпретация структур данных

Программа представляется в виде структуры данных, чаще всего это дерево (или граф) объектов, в каждом узле находится объект, представляющий различные элементы языка: константа, функция, цикл и т.п.
Каждый элемент обязательно должен иметь возможность содержать в себе
(а) элементы адресуемые по имени (ассоцифтивный массив) и
(б) вложенные элементы причем в контролируемом порядке (массив или список).
Интерпретатор бегает по дереву/графу программы, и выполняет действия через вызовы методом объектов.
Например у class Operator -> Plus задается метод add() { return nest[0].add( nest[1] }
nest это список вложенных элементов (операнды)

Некоторые объекты умеют создавать новые исполняемые структуры данных в памяти интерпретатора, реализация и хранение переменных делается через атрибуты любого объекта (ассойиативный массив), например объект global хранит в своих атрибутах глобальные переменные.

кое-что есть здесь в глубокой преальфе (интерпретатор на питоне) https://github.com/ponyatov/hico/releases/latest
Ответ написан
Комментировать