Разработать простой учебный интерпретатор
Необходимо разработать интерпретатор (учебный) несуществующего простого языка программирования.
То есть нужно придумать язык и разработать под него интерпретатор.
Сразу напишу, что жестких требований ни к языку, ни к интерпретатору нет, поэтому я описываю базовые требования, которые могут быть в каких-то пределах изменены, если это ускорит разработку (приоритет разработки – время).
Если у Вас имеется готовый учебный (очень упрощенный, с минимумом операций) интерпретатор, то возможно использовать его.
Интерпретатор желательно разработать на Delphi, но возможно Visual C++ или C#
Интерпретируемый язык программирования – какой-то очень простой язык вроде смеси basic и pascal с набором базовых конструкций, особых требований к синтаксису нет.
Основные требования к языку:
1. Объявление переменных – var
переменные типизированные или нет (как проще)
операция присваивания значения
поддержка целочисленных, вещественных и текстовых значений в переменных
операции математических действий для переменных, содержащих числовые значения: +, -, *, / (в том числе a = a + 1, a = a – 1 и т.п.)
операции конкатенации строка + строка и строка + число
поддержка массивов не требуется
2. Поддержка конструкций ветвления if-then-else, case (в условиях поддержка ==,
поддержка циклических конструкций while, repeat-until, for
3. Математические операции sin, cos, tg, arcsin, arccos, arctg, abs, exp (экспонента), ln, lg, sqrt, pi, idiv (частное целочисленного деления), imod (остаток целочисленного деления), pow (число в степени)
другие операции с числами: random (случайное вещественное число от 0 до n), round (округление)
операции со строками: substr (выделение подстроки), strlen (длина строки), strpos (поиск подстроки), преобразование числа в строку и наоборот
4. Операции ввода с клавиатуры и вывода на экран для текстовых и числовых переменных, вывод на экран текстовой строки и перехода на новую строку
Поддержка функций не требуется
Основные требования к интерпретатору:
1. Консольное приложение для windows
2. загрузка исходного кода из текстового файла
3. вывод результата выполнения программы в консоль
Язык и интерпретатор должен быть простыми, лишние функции, кроме указанных, не желательны (кроме базовых, которые я, возможно, упустил).
Что нужно получить на выходе:
1. Исходный код интерпретатора
2. Краткое описание языка (операторы и синтаксис)
3. краткое описание работы интерпретатора (коротко принцип работы)
4. Пример программы на разработанном языке, задействующий максимум операций языка