Я начинаю проект, в котором мне нужно внедрить облегченный переводчик.
Интерпретатор используется для выполнения простых научных алгоритмов.
Язык программирования, который будет использовать этот интерпретатор, должен быть простым, поскольку он предназначен для разработчиков, не являющихся разработчиками программного обеспечения (например, математики).
Переводчик должен поддерживать базовые функции языков программирования:
- Действительные числа, переменные, многомерные массивы
- Двоичные (+, -, *, /,%) и логические (==,! =, <,>, <=,> =) Операции
- Loops (for, while), Условные выражения (if)
- Функции
MathWorks MatLab является хорошим примером того, куда я направляюсь, просто намного проще.
Интерпретатор будет использоваться в качестве среды для демонстрации алгоритмов; простые алгоритмы, такие как нахождение среднего значения набора данных / массива, или немного более сложные алгоритмы, такие как исключение Гаусса или RSA .
Лучший / наиболее практичный ресурс, который я нашел по этому вопросу, - это запись Рона Айюба о проекте кода ( Анализ алгебраических выражений с использованием шаблона интерпретатора ) - прекрасный пример минимизированной версии моей проблемы.
Книга Пурпурного Дракона кажется слишком большой, что-нибудь более практичное?
Интерпретатор будет реализован в виде библиотеки .NET с использованием C #. Тем не менее, ресурсы для любой платформы приветствуются, так как часть этой проблемы является частью архитектуры и дизайна.
Какие-нибудь практические ресурсы?
(пожалуйста, избегайте ответов "это не тривиально" или "зачем изобретать велосипед")