Точнее простой динамически типизируемый интерпретируемый язык, синтаксисом напоминающий JavaScript (т.к. семантика JavaScript в некоторых моментах весьма оригинальна и повторить ее сложно). Интерпретатор может быть выполнен как интепретатор по AST-дереву, так и в виде виртуальной машины, обрабатывающий типизированные значения (соответствеенно должен быть компилятор в ассемлер такой машины). Требуемая функциональность языка представлена в таблице ниже:
Функциональность | Поддерживается обязательно | Поддерживается по желанию/возможности |
---|---|---|
Типы данных | целые и вещественные числа, строки, Null, Undefined, массивы, хеши (обращение через точку) /* Тип любого выражения вычисляется при интерпритации */ | Функции, как тип данных |
Операции | +, –, *, /, div, mod, >, <, >=, <=, ==, != /* семантика операций может отличаться в зависимости от типов аргументов */ | |
Операторы | if [else], for, while, break, continue | |
Функции | передача параметров по значению | передача параметров по ссылке /* подумать, как реализовать, могут быть сильно разные варианты */ |
Системные функции | некоторый набор системных функций (в том числе ввода/вывода) |