Skip to content

This is my repo for the 3rd-year subject - Development of translators (programming language processors)

Notifications You must be signed in to change notification settings

denitdao/course3_lingv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

course3_lingv

This is my repo for the 3rd-year subject - Development of translators (programming language processors)

Загальна інформація

Назва мови програмування складена з початкових літер імені автора. DCh - Denys Churchyn.

Мова є імперативною, тобто програма є послідовним переліком дій, що необхідно виконати комп’ютеру.

За основу мови взята помісь C та Pascal. Розроблена на мові Python.

Особливості мови

  • 3 типи даних – цілі, дійсні та логічні;
  • Чотири основні лівоасоціативні операції: додавання, віднімання, ділення, множення та операція залишку від ділення;
  • Правоасоціативна операція піднесення до степеня;
  • Унарна операція зміни знаку;
  • Логічні оператори порівняння;
  • Оператори умовного переходу, повторення, введення та виведення.

Оператор циклу

for ( <ідентифікатор> = <вираз>; <відношення>; <ідентифікатор> = <вираз> ) { 
  <список операторів> 
}

Розширено для виконання не тільки послідовності, а й одиночного оператора.

image

image

Умовний оператор

if <логічний вираз> then 
  <оператор>;

Розширено для використання послідовності операторів.

image

image

Структура програмного засобу

image

Лексичний аналізатор

  • Виконує перевірку допустимості наявних лексем імітуючи скінченний автомат.
  • Перетворює набір символів на таблицю з токенів, виконуючи семантичні процедури.
  • Результатом є набір таблиць для наступного модуля, або повідомлення про помилку з вказанням причини та місця.

image

Синтаксичний аналіз та трансляція у ПОЛІЗ

  • Перевірка відповідності вхідої програми синтаксису мови DCh.
  • Паралельна трансформація зустрінених команд у форму, яку може виконати система часу виконання.
  • Визначення типів даних для оголошених змінних та додавання міток.
  • Результатом є доповнений набір отриманих таблиць та програма у постфіксній нотації для наступного модуля, або повідомлення про помилку з вказанням причини та місця.

image

Інтерпретатор

  • Виконання програми, записаної у постфіксній нотації.
  • Відображення даних у консолі або зчитування користувацького вводу.
  • Повідомлення про помилку та можливу причину у випадку виникнення такої.

image

Приклад програми | Example

image

About

This is my repo for the 3rd-year subject - Development of translators (programming language processors)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages