This is my repo for the 3rd-year subject - Development of translators (programming language processors)
Назва мови програмування складена з початкових літер імені автора. DCh - Denys Churchyn.
Мова є імперативною, тобто програма є послідовним переліком дій, що необхідно виконати комп’ютеру.
За основу мови взята помісь C та Pascal. Розроблена на мові Python.
- 3 типи даних – цілі, дійсні та логічні;
- Чотири основні лівоасоціативні операції: додавання, віднімання, ділення, множення та операція залишку від ділення;
- Правоасоціативна операція піднесення до степеня;
- Унарна операція зміни знаку;
- Логічні оператори порівняння;
- Оператори умовного переходу, повторення, введення та виведення.
for ( <ідентифікатор> = <вираз>; <відношення>; <ідентифікатор> = <вираз> ) {
<список операторів>
}
Розширено для виконання не тільки послідовності, а й одиночного оператора.
if <логічний вираз> then
<оператор>;
Розширено для використання послідовності операторів.
- Виконує перевірку допустимості наявних лексем імітуючи скінченний автомат.
- Перетворює набір символів на таблицю з токенів, виконуючи семантичні процедури.
- Результатом є набір таблиць для наступного модуля, або повідомлення про помилку з вказанням причини та місця.
- Перевірка відповідності вхідої програми синтаксису мови DCh.
- Паралельна трансформація зустрінених команд у форму, яку може виконати система часу виконання.
- Визначення типів даних для оголошених змінних та додавання міток.
- Результатом є доповнений набір отриманих таблиць та програма у постфіксній нотації для наступного модуля, або повідомлення про помилку з вказанням причини та місця.
- Виконання програми, записаної у постфіксній нотації.
- Відображення даних у консолі або зчитування користувацького вводу.
- Повідомлення про помилку та можливу причину у випадку виникнення такої.