Курсова робота
з предмету “Системне програмування” (III курс, 5-ий семестр)
на тему “Розробка системних програмних модулів та компонент систем програмування.”
Індивідуальне завдання “Розробка транслятора з вхідної мови програмування”
МЕТА КУРСОВОЇ РОБОТИ
Метою виконання курсової роботи є закріплення теоретичних знань та практичних навичок системного програмування, набутих при вивченні дисципліни “Системне програмування”.
В ході виконання курсової роботи студенти повинні навчитися самостійно працювати з літературою, розробляти типові елементи системних програм, програмуючи роботу з таблицями, словниками, інформаційними базами, виконуючи лексичний та синтаксичний аналіз, а також семантичну обробку, здійснювати їх програмну реалізацію та відлагодження на сучасних обчислювальних системах.
СТРУКТУРА ТА ОБ’ЄМ КУРСОВОЇ РОБОТИ
Обсяг курсової роботи повинен становити не менше 25 сторінок друкованого тексту (без врахування додатків).
Обов’язковими додатками має бути документований текст програми та графічна частина, оформлені у відповідності до стандартів та ЄСКД.
Рекомендується такий склад пояснювальної записки до курсової роботи
Титульна сторінка
Завдання на курсову роботу
Анотація
Зміст
Вступ
Огляд методів та способів проектування трансляторів
Формальний опис вхідної мови програмування
Деталізований опис вхідної мови в термінах розширеної нотації Бекуса-Наура
Термінальні символи та ключові слова
Розробка транслятора вхідної мови програмування
Вибір технології програмування
Проектування таблиць транслятора
Розробка лексичного аналізатора
Розробка синтаксичного та семантичного аналізатора
Розробка генератора коду
Опис програми(в тому числі граф-схем)
Опис інтерфейсу та інструкція користувачеві
Відлагодження та тестування програми
Виявлення лексичних помилок
Виявлення синтаксичних помилок
Виявлення семантичних помилок
Загальна перевірка коректності роботи транслятора
Висновки
Список літератури
Додатки
А. Лістинг програми
Б. Граф-схеми алгоритмів
В. Результати тестування
Завдання на курсову роботу (1 стор.). У завданні вказується тема роботи та перелік конкретних вхідних даних. Завдання на курсову роботу видається студентові керівником курсової роботи індивідуально.
Анотація (1 стор.) В анотації викладаються короткі відомості про курсову роботу.
Зміст (1 стор.). У змісті вказуються номери та назви основних розділів курсової роботи та номери сторінок, де вони починаються. Вступ, висновки по роботі, список літератури та додаток не нумеруються.
Вступ (1 стор.). У вступі здійснюють опис проблеми у загальному вигляді, визначають її актуальність, формулюють мету курсової роботи.
Теоретична частина. Огляд методів та способів проектування трансляторів Цей розділ виконується із використанням літературних джерел і повинен містити опис методів та способів вирішення задачі. Необхідно здійснити порівняння описаних методів та способів.
Формальний опис вхідної мови програмування. В цьому розділі описується тип граматики вхідної мови програмування згідно завдання. При цьому визначається алфавіт мови та набір зарезервованих слів. Рекомендується опис вхідної мови подавати в термінах розширеної нотації Бекуса-Наура або за допомогою синтаксичних діаграм.
Розробка транслятора вхідної мови програмування. В цьому розділі:
- здійснюється вибір технології програмування;
- розробляється структура постійних таблиць для зберігання алфавіту мови, зарезервованих слів, знаків операцій, роздільників тощо та здійснюється вибір для постійних таблиць алгоритму пошуку елементів у впорядкованих таблицях;
- розробляється структура перемінних таблиць для зберігання ідентифікаторів і констант та алгоритми пошуку/вставки лексем і їх атрибутів;
- проектується лексичний аналізатор на основі детермінованих кінцевих автоматів;
- проектується синтаксичний аналізатор на основі дерева граматичного розбору;
- проектується генератор асемблерного коду
Опис програми. Програма повинна бути написана та реалізована на мові програмування C/C++. Текст програми повинен бути документований і написаний згідно вимог структурного програмування. Кожний програмний модуль на початку повинний містити інформацію про тему курсової роботи, прізвище автора та дату створення. Крім того, кожна підпрограма мусить буди також документованою
Опис програми проводиться в такій послідовності: спершу описується граф-схема алгоритму, а пізніше програмна реалізація.
Опис інтерфейсу та інструкція користувачеві В інструкції користувачеві приводять детальну послідовність дій по запуску програми на виконання та описують всі можливі режими керування роботою програми. Для ілюстрації режимів роботи програми бажано навести зображення екранних форм, вікон, меню, блоків діалогу, форм документів і т.п.
Відлагодження та тестування програми. В цьому розділі описуються вибрані технології відлагодження та тестування програми на комп’ютері.
Технологія відлагодження програми -це послідовність дій та засоби виявлення, аналізу та виправлення помилок програми. Описуються використані засоби автоматизованого відлагодження та оптимізації програми (автономні та вбудовані відлагоджувальники, профайлери). Проводиться аналіз помилок, допущених в ході програмування задачі, спосіб їх виявлення та усунення.
Для підтвердження працездатності програмного продукту розробляється система тестів та приводяться результати тестування з їх аналізом.
Висновки (1 стор.) У висновках перераховуються основні результати курсової роботи, вказуються її позитивні сторони та недоліки, даються рекомендації по практичному застосуванню розроблених алгоритмів та програм.
ВИМОГИ ДО ОФОРМЛЕННЯ
Курсова робота є індивідуальною роботою кожного студента і оформляється окремо кожним студентом згідно із виданим завданням.
Курсова робота оформляється на аркушах формату A4, які заповнюються з однієї сторони. Текст повинен бути надрукований на принтері. Використання різних чорнил не дозволяється. Заголовки розділів можуть бути виділені великими літерами або підкресленням. Текст повинен бути набраний без помилок українською мовою.
Текст на сторінці повинен бути розміщений рівномірно з дотриманням відступів: зліва, згори та знизу - 20 мм, зправа - 10 мм. При комп’ютерному наборі необхідно вибрати шрифт Times New Roman Cyr, розмір шрифта - 14, міжрядковий інтервал - 1.5 . Сторінки курсової роботи повинні бути пронумеровані. Титульна сторінка вважається першою і не нумерується. Номери сторінок вказуються у правому верхньому куті.
Кожен розділ повинен мати свій номер, який записується перед його назвою. Після номера розділу ставиться крапка, наприклад: 1.Формулювання задачі. Вступ, висновки, список літератури та додаток не нумеруються. Кожен розділ необхідно розпочинати з нової сторінки. Розділ може складатися з підрозділів. Номер підрозділу записується через крапку після номера розділу, наприклад: 4.2. Призначення програми.
Формули, на які здійснюється посилання, а також всі таблиці та рисунки повинні мати номер. Нумерація може бути наскрізною або прив'язаною до номера розділу.
Номер формули записується після неї у круглих дужках. Номер та назва таблиці вказуються над нею після слова "Таблиця". Номер та назва рисунка вказуються під ним після скорочення "Рис.".
Рисунки та рамки таблиць повинні бути виконані олівцем або чорнилом вибраного кольору. Дозволяється комп'ютерне виконання графічної частини курсової роботи. Графічні схеми алгоритмів виконуються згідно вимог міжнародного стандарту ISO 5807-85 "Обробка інформації. Символи і умовні позначення блок-схем даних, програм та систем, схем програмних мереж і системних ресурсів".
Роздруки текстів програм приводяться у додатку. Кожен окремий документ додатку повинен мати свій номер та назву, які записуються після слова "Додаток", наприклад: Додаток 1. Текст програми на мові С++.
Список літератури виконується згідно вимог стандартів. Література може бути розміщена за алфавітом або в порядку посилання на неї. У списку можна наводити тільки ту літературу, яка була використана при виконанні курсової роботи і на яку є посилання у тесті пояснювальної записки. Посилання здіснюється вказанням номера джерела у квадратних дужках. Список літератури повинен містити не менше 5 джерел.
Пояснювальна записка повинна бути сформована згідно змісту і надійно зшита з лівої довшої сторони листів формату A4. Для зручності зберігання палітурка курсової роботи повинна бути жорсткою (виконана із листа ватману чи картону).
ЗАХИСТ РОБОТИ
Готова курсова робота представляється керівнику для перевірки. При необхідності вона може бути повернута студенту для доопрацювання. До захисту приймається робота, оформлена згідно приведених вище вимог, разом з дискетою. На дискеті розміщуються текстові файли програм, тестових даних та текст пояснювальної записки до курсової роботи. Дискета повинна бути підписана з вказанням номера групи та прізвища студента. Назви файлів повинні бути виконані латинськими літерами та цифрами.
В процесі захисту роботи студент демонструє роботу транслятора на комп'ютері і дає пояснення та відповіді на поставлені питання членами комісії. Захист роботи здійснюється студентом тільки один раз. При незадовільній оцінці студенту видається нове завдання на курсову роботу за дозволом завідувача кафедри та декана.
Література до курсової роботи
Ахо А., Сети Р., Ульман Дж. Компиляторы. Принципы, технологии, инструменты. М.: Изд-во «Вильямс», 2001.–768 с
Хантер Р. Проектирование и конструирование компиляторов. - М.: Финансы и статистика, 1984. - 232 с.
Грис Д. Конструирование компиляторов для цифровых вычислительных машин. - М.: Мир. 1975. - 554 с.
Льюис Ф., Розенкранц Д., Смирну Д. Теоретические основы проектирования компиляторов. - М.: Мир, 1979. - 656 с.
Рейруорд-Смит В. Дж. Теория формальных языков. - М.: Радио и связь, 1988. - 128 с.
Ваймгартен Ф. Трансляция языков программирования. – М.: Мир, 1977.
Бек Л. Введение в системное программирование. – М.: Мир, 1988. – 448 с.
Касьянов В.Н. Оптимизирующие преобразования программ. – М.: Наука, 1988.
Серебряков В.А. Лекции по конструированию компиляторов, Москва 1993.
Варсанофьев Д.В., Дымченко А.Г. Основы компиляции, 1991.
Легалов А.И. Основы проектирования компиляторов, Курс лекций, 2000.
Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование. Основы построения трансляторов. – СПб.: КОРОНА принт, 2004. – 256 с.
Соколов А.П. Системы программирования. Теория, методы, алгоритмы. – М.: Финансы и статистика, 2004. – 320 с.
Костельцев А.В. Построение интерпретаторов и компиляторов. – М.: Наука и техника, 2001. – 224 с.
Завдання на курсову роботу
Цільова мова транслятора асемблер (i86).
Для отримання виконавчого файлу на виході розробленого транслятора скористатися програмами tasm.exe і tlink.exe.
Мова розробки транслятора: ANSI C або C++.
Реалізувати оболонку або інтерфейс командного рядка.
На вхід розробленого транслятора має подаватися текстовий файл, написаний на заданій мові програмування.
На виході розробленого транслятора мають створюватись чотири файли: файл з повідомленнями про помилки (або про їх відсутність), файл на мові асемблера, об’єктний та виконавчий файли. 
Назва вхідної мови програмування утворюється від першої букви у прізвищі студента та номера його варіанту. Саме таке розширення повинні мати текстові файли, написані на цій мові програмування.
Назва виконавчого файлу транслятора утворюється від назви мови програмування додаванням літери “с” (від compiler).
Зауваження. 1) В кожному завданні передбачається блок оголошення змінних;
2) В кожному завданні обов’язковим є оператор присвоєння та оператор типу – блок;
3) Оператори можуть бути довільної вкладеності і в любій послідовності.

з/п
Блок тіла програми
Оператори уводу-виводу
Оператор присвоєння
Оператор
Регістр ключових слів
Регістр іден-тифікаторів
Операції
Типи даних
Коментар








арифметичні
порівняння
логічні



1
program <name>;
var…; begin - end
input
output
>>
if - then [- else] (Паскаль)
Low
Up-Low2 перший символ Up
+; -; *; /; %
eg; ne; lt; gt
!!; &&; ||
int
{ ... }

2
PROGRAM <name>;
VAR…; BEGIN - END
SCAN
PRINT
:=
IF [–ELSE] (СІ)
Up
Low-Up2 перший символ Low
ADD; SUB; MUL; DIV; MOD
EQ; NE; >; <
NOT; AND; OR
LONG INT
!! ...!!

3
Program <name>;
Var…; Begin - End
Get
Put
::=
If - Goto; Goto (Бейсік)
Up-Low перший символ Up
Up2
+; -; Mul; Div; Mod
Eg; Ne; >>; <<
!; And; Or
Int16
/*…

4
program <name>;
begin var…; end
read
write
<<
if - then goto; goto (Бейсік)
Low
Low2
add; sub; *; /; %
==; !=; lt; gt
!; &; |
int32
#* ... *#

5
PROGRAM <name>;
BEGIN VAR…; END
INPUT
OUTPUT
::
WHILE (СІ)
Up
Up-Low4 перший символ Up
+; -; *; DIV; MOD
=; <>; LT; GT
!!; &&; ||
INT_2
{* ... *}

6
Program <name>;
Start Var …; Finish
Scan
Print
->
For (СІ)
Up-Low перший символ Up
Low-Up4 перший символ Low
++; --; **; Div; Mod
Eg; Ne; Le; Ge
Not; And; Or
Int_4
??...

7
program <name>;
var …;start - finish
get
put
<-
do- while (СІ)
Low
Up4
+; -; *; /; %
eg; ne; >=; <=
!; and; or
int16_t
%% ... %%

8
PROGRAM <name>;
VAR …;START - FINISH
READ
WRITE
>>
WHILE - DO (Паскаль)
Up
Low4
ADD; SUB; MUL; DIV; MOD
=; <>; LE; GE
!; &; |
INT32_t
$$ ...

9
Program <name>;
Var …;Start - Finish
Input
Output
:=
For – DownTo (Паскаль)
Up-Low перший символ Up
Up-Low6 перший символ Up
+; -; Mul; Div; Mod
==; !=; Le; Ge
!!; &&; ||
Integer
/* ... */

10
program <name>;
start var …; finish
scan
print
::=
for –to - do(Паскаль)
Low
Low-Up6 перший символ Low
add; sub; *; /; %
=; <>; >; <;
not; and; or
integer16
!! ...

11
# PROGRAM <name>;
START VARIABLE …; STOP
GET
PUT
<<
REPEAT – UNTIL (Паскаль)
Up
Up6
+; -; *; DIV; MOD
=; <>; >=; <=
!; AND; OR
INTEGER32
// ...

12
#Program <name>;
Variable…; Start – Stop
Read
Write
::
For – To – Next (Бейсік)
Up-Low перший символ Up
Low6
++; --; **; Div; Mod
==; !=; >; <
!; &; |
Integer_2
// ... //

13
#program <name>;
start variable…; stop
input
output
->
if - then [- else] (Паскаль)
Low
Up-Low8 перший символ Up
+; -; *; /; %
==; !=; >=; <=
!!; &&; ||
integer_4
## ... ##

14
# PROGRAM <name>;
VARIABLE…; START - STOP
SCAN
PRINT
<-
IF [–ELSE] (СІ)
Up
Low-Up8 перший символ Low
ADD; SUB; MUL; DIV; MOD
==; !=; !>; !<
NOT; AND; OR
INTEGER16_t
\\ ...

15
#Program <name>;
Start Variable…; Stop
Get
Put
>>
If - Then Goto; Goto (Бейсік)
Up-Low перший символ Up
Up8
+; -; Mul; Div; Mod
=; <>; !>; !<
!; And; Or
Integer32_t
@@ ...

16
startprogram
startblok variable…; endblok
read
write
:=
if - goto; goto (Бейсік)
Low
Low8
add; sub; *; /; %
==; <>; >>; <<
!; &; |
longint
## ...

17
STARTPROGRAM
STARTBLOK VARIABLE…;
ENDBLOK
INPUT
OUTPUT
::=
WHILE (СІ)
Up
Up-Low2 перший символ _
+; -; *; DIV; MOD
=, != , <<, >>
!!; &&; ||
INT16
{ ... }

18
StartProgram
StartBlok Variable…; EndBlok
Scan
Print
<<
Do- While (СІ)
Up-Low перший символ Up
Low-Up2 перший символ _
++; --; **; Div; Mod
Eq; Neq; Ls; Gr
Not; And; Or
Int32
!! ...!!

19
startprogram
variable…;startblok - endblok
get
put
::
for (СІ)
Low
Up4 перший символ _
+; -; *; /; %
eq; noteq; less; gr
!; and; or
int_2
/*…

20
STARTPROGRAM
VARIABLE…;STARTBLOK -
ENDBLOK
READ
WRITE
->
WHILE - DO (Паскаль)
Up
Low4 перший символ _
ADD; SUB; MUL; DIV; MOD
EQ; NE; LT; GT
!; &; |
INT_4
#* ... *#

21
MainProgram
Data…; Start - End
Input
Output
<-
Repeat – Until (Паскаль)
Up-Low перший символ Up
Up-Low4 перший символ _
+; -; Mul; Div; Mod
Eg; Ne; >; <
!!; &&; ||
Int16_t
{* ... *}

22
mainprogram
data…; start - end
scan
print
>>
for –to - do(Паскаль)
Low
Low-Up4 перший символ _
add; sub; *; /; %
eg; ne; >>; <<
not; and; or
int32_t
??...

23
MAIMPROGRAM
DATA…; START - END
GET
PUT
:=
FOR – DOWNTO (Паскаль)
Up
Up6 перший символ _
+; -; *; DIV; MOD
==; !=; LT; GT
!!; AND; OR
INTEGER
%% ... %%

24
MainProgram
Start Data…; End
Read
Write
::=
For – To – Next (Бейсік)
Up-Low перший символ Up
Low6 перший символ _
++; --; **; Div; Mod
=; <>; Lt; Et
!; &; |
Integer16
$$ ...

25
mainprogram
start data…; end
input
output
<<
if [–else] (СІ)
Low
Up-Low6 перший символ _
+; -; *; /; %
eg; ne; le; ge
!!; &&; ||
integer32
/* ... */

26
NAME <name>;
BODY DATA…; END
SCAN
PRINT
::
IF - THEN [- ELSE] (Паскаль)
Up
Low-Up6 перший символ _
ADD; SUB; MUL; DIV; MOD
EQ; NE; >=; <=
NOT; AND; OR
INTEGER_2
!! ...

27
Name <name>;
Body Data…; End
Get
Put
->
For (СІ)
Up-Low перший символ Up
Up8 перший символ _
+; -; Mul; Div; Mod
=; <>; Le; Ge
!; And; Or
Integer_4
// ...

28
name <name>;
body data…; end
read
write
<-
repeat – until (Паскаль)
Low
Low8 перший символ _
add; sub; *; /; %
==; !=; le; ge
!; &; |
integer16_t
// ... //

29
NAME <name>;
DATA…;BODY- END
INPUT
OUTPUT
::
FOR –TO – DO (Паскаль)
Up
Up-Low8 перший символ _
+; -; *; DIV; MOD
=; <>; >; <;
NOT; AND; OR
INTEGER32_t
## ... ##

30
Name <name>;
Data…;Body - End
Read
Write
->
Do- While (СІ)
Up-Low перший символ Up
Low-Up8 перший символ _
++; --; **; Div; Mod
=; <>; >=; <=
!!; &&; ||
Longint
\\ ...

31
name <name>;
body data…; end
scan
print
:=
if - goto; goto (Бейсік)
Low
Low-Up8 перший символ _
+; -; *; /; %
==; !=; >; <
!!; &&; ||
integer32_t
\\ ...

32
PROGRAM <name>;
VAR…; BEGIN - END
GET
PUT
::=
WHILE (СІ)
Up
Up-Low2 перший символ Up
ADD; SUB; MUL; DIV; MOD
==; !=; >=; <=
NOT; AND; OR
LONGINT
{ ... }

33
Program <name>;
Begin Var…; End
Read
Write
<<
Do- While (СІ)
Up-Low перший символ Up
Low-Up2 перший символ Low
+; -; Mul; Div; Mod
==; !=; !>; !<
!; And; Or
Int
!! ...!!

34
program <name>;
var…; begin - end
input
output
::
for (СІ)
Low
Up2
add; sub; *; /; %
=; <>; !>; !<
!; &; |
long int
/*…

35
PROGRAM <name>;
BEGIN VAR…; END
SCAN
PRINT
->
WHILE - DO (Паскаль)
Up
Low2
+; -; *; DIV; MOD
==; <>; >>; <<
!!; &&; ||
INT16
#* ... *#

36
Program <name>;
Var…; Begin - End
Get
Put
<-
Repeat – Until (Паскаль)
Up-Low перший символ Up
Up-Low4 перший символ Up
++; --; **; Div; Mod
=, != , <<, >>
Not; And; Or
Int32
{* ... *}

37
program <name>;
start var …; finish
read
write
>>
for –to - do(Паскаль)
Low
Low-Up4 перший символ Low
+; -; *; /; %
eq; neq; ls; gr
!; and; or
int_2
??...

38
PROGRAM <name>;
VAR …; START - FINISH
INPUT
OUTPUT
:=
FOR – DOWNTO (Паскаль)
Up
Up4
ADD; SUB; MUL; DIV; MOD
EQ; NOTEQ; LESS; GR
!; &; |
INT_4
%% ... %%

39
Program <name>;
Start Var …; Finish
Scan
Print
::=
For – To – Next (Бейсік)
Up-Low перший символ Up
Low4
+; -; Mul; Div; Mod
Eq; Ne; Lt; Gt
!!; &&; ||
Int16_t
$$ ...

40
program <name>;
var …; start - finish
get
put
<<
if [–else] (СІ)
Low
Up-Low6 перший символ Up
add; sub; *; /; %
eg; ne; >; <
not; and; or
int32_t
/* ... */

41
PROGRAM <name>;
START VAR …; FINISH
READ
WRITE
::
IF - THEN [- ELSE] (Паскаль)
Up
Low-Up6 перший символ Low
+; -; *; DIV; MOD
EQ; NE; >>; <<
!; AND; OR
INTEGER
!! ...

42
#Program <name>;
Variable…; Start - Stop
Input
Output
->
For (СІ)
Up-Low перший символ Up
Up6
++; --; **; Div; Mod
==; !=; Lt; Gt
!; &; |
Integer16
// ...

43
#program <name>;
start variable…; stop
scan
print
<-
repeat – until (Паскаль)
Low
Low6
+; -; *; /; %
=; <>; lt; gt
!!; &&; ||
integer32
// ... //

44
# PROGRAM <name>;
VARIABLE …; START – STOP
GET
PUT
>>
FOR –TO – DO (Паскаль)
Up
Up-Low8 перший символ Up
ADD; SUB; MUL; DIV; MOD
EQ; NE; LE; GE
NOT; AND; OR
INTEGER _2
## ... ##

45
#Program <name>;
Start Variable…; Stop
Read
Write
:=
Do- While (СІ)
Up-Low перший символ Up
Low-Up8 перший символ Low
+; -; Mul; Div; Mod
Eg; Ne; >=; <=
!; And; Or
Integer_4
\\ ...

46
#program <name>;
variable…; start - stop
input
output
::=
if - then [- else] (Паскаль)
Low
Up8
add; sub; *; /; %
=; <>; le; ge
!; &; |
integer16_t
@@ ...

47
STARTPROGRAM
STARTBLOK VARIABLE…;
ENDBLOK
SCAN
PRINT
<<
IF [–ELSE] (СІ)
Up
Low8
+; -; *; DIV; MOD
==; !=; LE; GE
!!; &&; ||
INTEGER 32_t
## ...

48
Startprogram
variable…; startblok - endblok
Get
Put
::
If - Goto; Goto (Бейсік)
Up-Low перший символ Up
Up-Low2 перший символ _
++; --; **; Div; Mod
=; <>; >; <;
Not; And; Or
Longint
{ ... }

49
startprogram
startblok variable…; endblok
read
write
->
if - then goto; goto (Бейсік)
Low
Low-Up2 перший символ _
+; -; *; /; %
=; <>; >=; <=
!; and; or
int16
!! ...!!

50
STARTPROGRAM
VARIABLE…;STARTBLOK -ENDBLOK
INPUT
OUTPUT
<-
WHILE (СІ)
Up
Up4 перший символ _
ADD; SUB; MUL; DIV; MOD
==; !=; >; <
!; &; |
INT32
/*…

51
Startprogram
startblok variable…; endblok
Scan
Print
>>
For (СІ)
Up-Low перший символ Up
Low4 перший символ _
+; -; Mul; Div; Mod
==; !=; >=; <=
!!; &&; ||
Int_2
#* ... *#

52
mainprogram
data…; start - end
get
put
:=
do- while (СІ)
Low
Up-Low4 перший символ _
add; sub; *; /; %
==; !=; !>; !<
not; and; or
int_4
{* ... *}

53
MAIMPROGRAM
START DATA…; END
READ
WRITE
::=
WHILE - DO (Паскаль)
Up
Low-Up4 перший символ _
+; -; *; DIV; MOD
=; <>; !>; !<
!!; AND; OR
INT16_t
??...

54
MainProgram
Data…; Start – End
Input
Output
<<
For – DownTo (Паскаль)
Up-Low перший символ Up
Up6 перший символ _
++; --; **; Div; Mod
==; <>; >>; <<
!; &; |
Int32_t
%% ... %%

55
mainprogram
start data…; end
scan
print
::
for –to - do(Паскаль)
Low
Low6 перший символ _
+; -; *; /; %
=, != , <<, >>
!!; &&; ||
integer
$$ ...

56
MAIMPROGRAM
DATA…; START - END
GET
PUT
->
REPEAT – UNTIL (Паскаль)
Up
Up-Low6 перший символ _
ADD; SUB; MUL; DIV; MOD
EQ; NEQ; LS; GR
NOT; AND; OR
INTEGER16
/* ... */

57
Name <name>;
Body Data…; End
Read
Write
<-
For – To – Next (Бейсік)
Up-Low перший символ Up
Low-Up6 перший символ _
+; -; Mul; Div; Mod
Eq; NotEq; Less; Gr
!; And; Or
Integer32
!! ...

58
name <name>;
data…; body- end
scan
print
::
if - then [- else] (Паскаль)
Low
Up8 перший символ _
add; sub; *; /; %
eg; ne; lt; gt
!; &; |
intrger_2
// ...

59
NAME <name>;
BODY DATA…; END
GET
PUT
->
IF [–ELSE] (СІ)
Up
Low8 перший символ _
+; -; *; DIV; MOD
EQ; NE; >; <
NOT; AND; OR
INTEGER _4
// ... //

60
Name <name>;
Data…; Body - End
Get
Put
>>
If - Then Goto; Goto (Бейсік)
Up-Low перший символ Up
Up-Low8 перший символ _
++; --; **; Div; Mod
Eg; Ne; >>; <<
!!; &&; ||
Integer16_t
## ... ##

61
name <name>;
body data…; end
get
put
::=
if - then [- else] (Паскаль)
Low
Up-Low8 перший символ _
+; -; *; /; %
==; !=; lt; gt
!!; &&; ||
intrger_2
// ...

62
NAME <name>;
DATA…; BODY - END
READ
WRITE
<<
IF [–ELSE] (СІ)
Up
Low-Up8 перший символ _
ADD; SUB; MUL; DIV; MOD
=; <>; LT; GT
NOT; AND; OR
INTEGER _4
// ... //

63
Program <name>;
Begin Var…; End
Input
Output
::
If - Goto; Goto (Бейсік)
Up-Low перший символ Up
Up-Low2 перший символ Up
+; -; Mul; Div; Mod
Eg; Ne; Le; Ge
!; And; Or
Integer16_t
## ... ##

64
program <name>;
var…; begin - end
scan
print
->
if - then goto; goto (Бейсік)
Low
Low-Up2 перший символ Low
add; sub; *; /; %
eg; ne; >=; <=
!; &; |
intrger32_t
\\ ...

65
PROGRAM <name>;
BEGIN VAR…; END
GET
PUT
<-
WHILE (СІ)
Up
Up2
+; -; *; DIV; MOD
=; <>; LE; GE
!!; &&; ||
LONGINT
{ ... }

66
Program <name>;
Var…; Begin – End
Read
Write
>>
For (СІ)
Up-Low перший символ Up
Low2
++; --; **; Div; Mod
==; !=; Le; Ge
Not; And; Or
Int
!! ...!!

67
program <name>;
begin var…; end
input
output
:=
do- while (СІ)
Low
Up-Low4 перший символ Up
+; -; *; /; %
=; <>; >; <;
!; and; or
Long int
/*…

68
PROGRAM <name>;
VAR…; BEGIN - END
SCAN
PRINT
::=
WHILE - DO (Паскаль)
Up
Low-Up4 перший символ Low
ADD; SUB; MUL; DIV; MOD
=; <>; >=; <=
!; &; |
INT16
#* ... *#

69
Program <name>;
Start Var …; Finish
Get
Put
<<
For – DownTo (Паскаль)
Up-Low перший символ Up
Up4
+; -; Mul; Div; Mod
==; !=; >; <
!!; &&; ||
Int32
{* ... *}

70
program <name>;
var …; start - finish
read
write
::
for –to - do(Паскаль)
Low
Low4
add; sub; *; /; %
==; !=; >=; <=
not; and; or
int_2
??...

71
PROGRAM <name>;
START VAR …; FINISH
INPUT
OUTPUT
->
REPEAT – UNTIL (Паскаль)
Up
Up-Low6 перший символ Up
+; -; *; DIV; MOD
==; !=; !>; !<
!; AND; OR
INT_4
%% ... %%

72
Program <name>;
Var …; Start - Finish
Scan
Print
<-
For – To – Next (Бейсік)
Up-Low перший символ Up
Low-Up6 перший символ Low
++; --; **; Div; Mod
=; <>; !>; !<
!; &; |
Int16_t
$$ ...

73
#program <name>;
start variable…; stop
get
put
>>
if - then [- else] (Паскаль)
Low
Up6
+; -; *; /; %
==; <>; >>; <<
!!; &&; ||
int32_t
/* ... */

74
# PROGRAM <name>;
VARIABLE …; START – STOP
READ
WRITE
:=
IF [–ELSE] (СІ)
Up
Low6
ADD; SUB; MUL; DIV; MOD
=, != , <<, >>
NOT; AND; OR
INTEGER
!! ...

75
#Program <name>;
Start Variable…; Stop
Input
Output
::=
If - Then Goto; Goto (Бейсік)
Up-Low перший символ Up
Up-Low8 перший символ Up
+; -; Mul; Div; Mod
Eq; Neq; Ls; Gr
!; And; Or
Integer16
// ...

76
#program <name>;
variable…; start – stop
scan
print
<<
if - goto; goto (Бейсік)
Low
Low-Up8 перший символ Low
add; sub; *; /; %
eq; noteq; less; gr
!; &; |
integer32
// ... //

77
# PROGRAM <name>;
START VARIABLE …; STOP
GET
PUT
::
WHILE (СІ)
Up
Up8
+; -; *; DIV; MOD
EQ; NE; LT; GT
!!; &&; ||
INTEGER_2
## ... ##

78
StartProgram
Variable…; StartBlok -EndBlok
Read
Write
->
Do- While (СІ)
Up-Low перший символ Up
Low8
++; --; **; Div; Mod
Eg; Ne; >; <
Not; And; Or
Integer_4
\\ ...

79
startprogram
startblok variable…; endblok
input
output
<-
for (СІ)
Low
Up-Low2 перший символ _
+; -; *; /; %
eg; ne; >>; <<
!; and; or
integer16_t
@@ ...

80
STARTPROGRAM
VARIABLE…; STARTBLOK -
ENDBLOK
SCAN
PRINT
>>
WHILE - DO (Паскаль)
Up
Low-Up2 перший символ _
ADD; SUB; MUL; DIV; MOD
==; !=; LT; GT
!; &; |
INTEGER32_t
## ...

81
StartProgram
StartBlok Variable…; EndBlok
Get
Put
:=
Repeat – Until (Паскаль)
Up-Low перший символ Up
Up4 перший символ _
+; -; Mul; Div; Mod
=; <>; Lt; Gt
!!; &&; ||
Longint
{ ... }

82
startprogram
variable…; startblok - endblok
read
write
::=
for –to - do(Паскаль)
Low
Low4 перший символ _
add; sub; *; /; %
eg; ne; le; ge
not; and; or
int16
!! ...!!

83
MAIMPROGRAM
START DATA…; END
INPUT
OUTPUT
<<
FOR – DOWNTO (Паскаль)
Up
Up-Low4 перший символ _
+; -; *; DIV; MOD
EQ; NE; >=; <=
!!; AND; OR
INT32
/*…

84
MainProgram
Data…; Start - End
Scan
Print
::
For – To – Next (Бейсік)
Up-Low перший символ Up
Low-Up4 перший символ _
++; --; **; Div; Mod
=; <>; Le; Ge
!; &; |
Int_2
#* ... *#

85
mainprogram
start data…; end
get
put
->
if [–else] (СІ)
Low
Up6 перший символ _
+; -; *; /; %
==; !=; le; ge
!!; &&; ||
int_4
{* ... *}

86
MAIMPROGRAM
DATA…; START - END
READ
WRITE
<-
IF - THEN [- ELSE] (Паскаль)
Up
Low6 перший символ _
ADD; SUB; MUL; DIV; MOD
=; <>; >; <;
NOT; AND; OR
INT16_t
??...

87
MainProgram
Start Data…; End
Input
Output
::
For (СІ)
Up-Low перший символ Up
Up-Low6 перший символ _
+; -; Mul; Div; Mod
=; <>; >=; <=
!; And; Or
Int32_t
%% ... %%

88
name <name>;
data…; body- end
scan
print
->
repeat – until (Паскаль)
Low
Low-Up6 перший символ _
add; sub; *; /; %
==; !=; >; <
!; &; |
integer
$$ ...

89
NAME <name>;
BODY DATA…; END
GET
PUT
>>
FOR –TO – DO (Паскаль)
Up
Up8 перший символ _
+; -; *; DIV; MOD
==; !=; >=; <=
NOT; AND; OR
INTEGER16
/* ... */

90
Name <name>;
Data…; Body -End
Read
Write
:=
Do- While (СІ)
Up-Low перший символ Up
Low8 перший символ _
++; --; **; Div; Mod
==; !=; !>; !<
!!; &&; ||
Integer32
!! ...

91
name <name>;
body data…; end
read
write
<<
do- while (СІ)
Low
Low8 перший символ _
+; -; *; /; %
=; <>; !>; !<
!!; &&; ||
integer32
!! ...

92
NAME <name>;
DATA…; BODY - END
INPUT
OUTPUT
::
FOR (СІ)
Up
Up-Low8 перший символ _
ADD; SUB; MUL; DIV; MOD
==; <>; >>; <<
NOT; AND; OR
INTEGER_2
// ...

93
Name <name>;
Body Data…; End
Scan
Print
->
While – Do (Паскаль)
Up-Low перший символ Up
Low-Up8 перший символ _
+; -; Mul; Div; Mod
=, != , <<, >>
!; And; Or
Integer_4
// ... //

94
program <name>;
var…; begin - end
get
put
<-
repeat – until (Паскаль)
Low
Up-Low2 перший символ Up
add; sub; *; /; %
eq; neq; ls; gr
!; &; |
integer16_t
## ... ##

95
PROGRAM <name>;
BEGIN VAR…; END
READ
WRITE
>>
FOR –TO – DO (Паскаль)
Up
Low-Up2 перший символ Low
+; -; *; DIV; MOD
EQ; NOTEQ; LESS; GR
!!; &&; ||
INTEGER32_t
\\ ...

96
Program <name>;
Var…; Begin - End
Input
Output
:=
For – Downto (Паскаль)
Up-Low перший символ Up
Up2
++; --; **; Div; Mod
Eg; Ne; Lt; Gt
Not; And; Or
Longint
{ ... }

97
program <name>;
begin var…; end
scan
print
::=
for – to – next (Бейсік)
Low
Low2
+; -; *; /; %
eg; ne; >; <
!; and; or
int
!! ...!!

98
PROGRAM <name>;
VAR…; BEGIN - END
GET
PUT
<<
IF [–ELSE] (СІ)
Up
Up-Low4 перший символ Up
ADD; SUB; MUL; DIV; MOD
EQ; NE; >>; <<
!; &; |
LONG INT
/*…

99
Program <name>;
Start Var …; Finish
Read
Write
::
If - Then [- Else] (Паскаль)
Up-Low перший символ Up
Low-Up4 перший символ Low
+; -; Mul; Div; Mod
==; !=; Lt; Gt
!!; &&; ||
Int16
#* ... *#

100
program <name>;
var …; start - finish
input
output
->
for (СІ)
Low
Up4
add; sub; *; /; %
=; <>; lt; gt
not; and; or
int32
{* ... *}

101
PROGRAM <name>;
START VAR …; FINISH
SCAN
PRINT
<-
REPEAT – UNTIL (Паскаль)
Up
Low4
+; -; *; DIV; MOD
EQ; NE; LE; GR
!; AND; OR
INT_2
??...

102
Program <name>;
Var …; Start - Finish
Get
Put
>>
For –To – Do (Паскаль)
Up-Low перший символ Up
Up-Low6 перший символ Up
++; --; **; Div; Mod
Eg; Ne; >=; <=
!; &; |
Int_4
%% ... %%

103
program <name>;
start var …; finish
read
write
:=
do- while (СІ)
Low
Low-Up6 перший символ Low
+; -; *; /; %
=; <>; le; ge
!!; &&; ||
int16_t
$$ ...

104
#PROGRAM <name>;
VARIABLE …; START – STOP
INPUT
OUTPUT
::=
IF - THEN [- ELSE] (Паскаль)
Up
Up6
ADD; SUB; MUL; DIV; MOD
==; !=; LE; GE
NOT; AND; OR
INT32_t
/* ... */

105
#Program <name>;
Start Variable…; Stop
Scan
Print
<<
If [–Else] (СІ)
Up-Low перший символ Up
Low6
+; -; Mul; Div; Mod
=; <>; >; <;
!; And; Or
Integer
!! ...

106
#program <name>;
variable…; start – stop
get
put
::
if - goto; goto (Бейсік)
Low
Up-Low8 перший символ Up
add; sub; *; /; %
=; <>; >=; <=
!; &; |
integer16
// ...

107
# PROGRAM <name>;
START VARIABLE…; STOP
READ
WRITE
->
IF - THEN GOTO; GOTO (Бейсік)
Up
Low-Up8 перший символ Low
+; -; *; DIV; MOD
==; !=; >; <
!!; &&; ||
INTEGER32
// ... //

108
#Program <name>;
Variable…; Start - Stop
Input
Output
<-
While (СІ)
Up-Low перший символ Up
Up8
++; --; **; Div; Mod
==; !=; >=; <=
Not; And; Or
Integer_2
## ... ##

109
startprogram
startblok variable…; endblok
scan
print
>>
for (СІ)
Low
Low8
+; -; *; /; %
==; !=; !>; !<
!; and; or
integer_4
\\ ...

110
STARTPROGRAM
VARIABLE…;STARTBLOK -
ENDBLOK
GET
PUT
:=
DO- WHILE (СІ)
Up
Up-Low2 перший символ _
ADD; SUB; MUL; DIV; MOD
=; <>; !>; !<
!; &; |
INTEGER16_t
@@ ...

111
StartProgram
StartBlok Variable…; EndBlok
Read
Write
::=
While – Do (Паскаль)
Up-Low перший символ Up
Low-Up2 перший символ _
+; -; Mul; Div; Mod
==; <>; >>; <<
!!; &&; ||
Integer32_t
## ...

112
startprogram
variable…; startblok - endblok
input
output
<<
for – downto (Паскаль)
Low
Up4 перший символ _
add; sub; *; /; %
=, != , <<, >>
not; and; or
longint
{ ... }

113
STARTPROGRAM
STARTBLOK VARIABLE…;
ENDBLOK
SCAN
PRINT
::
FOR –TO – DO(Паскаль)
Up
Low4 перший символ _
+; -; *; DIV; MOD
EQ; NEQ; LS; GR
!!; AND; OR
INT16
!! ...!!

114
MainProgram
Data…; Start - End
Get
Put
->
Repeat – Until (Паскаль)
Up-Low перший символ Up
Up-Low4 перший символ _
++; --; **; Div; Mod
Eq; NotEq; Less; Gr
!; &; |
Int32
/*…

115
mainprogram
start data…; end
read
write
<-
for – to – next (Бейсік)
Low
Low-Up4 перший символ _
+; -; *; /; %
eg; ne; lt; gt
!!; &&; ||
int_2
#* ... *#

116
MAIMPROGRAM
DATA…; START - END
INPUT
OUTPUT
::
IF - THEN [- ELSE] (Паскаль)
Up
Up6 перший символ _
ADD; SUB; MUL; DIV; MOD
EQ; NE; >; <
NOT; AND; OR
INT_4
{* ... *}

117
MainProgram
Start Data…; End
Scan
Print
->
If [–Else] (СІ)
Up-Low перший символ Up
Low6 перший символ _
+; -; Mul; Div; Mod
Eq; Ne; >>; <<
!; And; Or
Int16_t
??...

118
mainprogram
data…; start - end
get
put
>>
if - then goto; goto (Бейсік)
Low
Up-Low6 перший символ _
add; sub; *; /; %
==; !=; lt; gt
!; &; |
int32_t
%% ... %%

119
NAME <name>;
BODY DATA…; END
READ
WRITE
:=
IF - GOTO; GOTO (Бейсік)
Up
Low-Up6 перший символ _
+; -; *; DIV; MOD
=; <>; LT; GT
NOT; AND; OR
INTEGER
$$ ...

120
Name <name>;
Data…; Body -End
Input
Output
::=
While (СІ)
Up-Low перший символ Up
Up8 перший символ _
++; --; **; Div; Mod
Eg; Ne; Le; Ge
!!; &&; ||
Integer16
/* ... */

121
name <name>;
body data…; end
scan
print
::
while – do (Паскаль)
Low
Up8 перший символ _
+; -; *; /; %
eg; ne; >=; <=
!!; &&; ||
integer32
$$ ...

122
NAME <name>;
DATA…; BODY - END
GET
PUT
->
FOR – DOWNTO (Паскаль)
Up
Low8 перший символ _
ADD; SUB; MUL; DIV; MOD
=; <>; LE; GE
NOT; AND; OR
INT_4
/* ... */

123
Program <name>;
Begin Var…; End
Read
Write
<-
For –To – Do(Паскаль)
Up-Low перший символ Up
Up-Low8 перший символ _
+; -; Mul; Div; Mod
==; !=; Le; Ge
!; And; Or
Integer32
!! ...

124
program <name>;
var…; begin - end
input
output
>>
repeat – until (Паскаль)
Low
Low-Up8 перший символ _
add; sub; *; /; %
=; <>; >; <;
!; &; |
integer_2
// ...

125
PROGRAM <name>;
BEGIN VAR…; END
SCAN
PRINT
:=
FOR – TO – NEXT (Бейсік)
Up
Up-Low2 перший символ Up
+; -; *; DIV; MOD
=; <>; >=; <=
!!; &&; ||
INTEGER_4
// ... //

126
Program <name>;
Var…; Begin – End
Get
Put
::=
If - Then [- Else] (Паскаль)
Up-Low перший символ Up
Low-Up2 перший символ Low
++; --; **; Div; Mod
==; !=; >; <
Not; And; Or
Integer16_t
## ... ##

127
program <name>;
begin var…; end
read
write
<<
if [–else] (СІ)
Low
Up2
+; -; *; /; %
==; !=; >=; <=
!; and; or
integer32_t
\\ ...

128
PROGRAM <name>;
VAR …; START - FINISH
INPUT
OUTPUT
::
IF - THEN GOTO; GOTO (Бейсік)
Up
Low2
ADD; SUB; MUL; DIV; MOD
==; !=; !>; !<
!; &; |
LONGINT
{ ... }

129
Program <name>;
Start Var …; Finish
Scan
Print
->
If - Goto; Goto (Бейсік)
Up-Low перший символ Up
Up-Low4 перший символ Up
+; -; Mul; Div; Mod
=; <>; !>; !<
!!; &&; ||
Int
!! ...!!

130
program <name>;
var …; start - finish
get
put
<-
while (СІ)
Low
Low-Up4 перший символ Low
add; sub; *; /; %
==; <>; >>; <<
not; and; or
long int
/*…

131
PROGRAM <name>;
START VAR …; FINISH
READ
WRITE
>>
DO- WHILE (СІ)
Up
Up4
+; -; *; DIV; MOD
=, != , <<, >>
!; AND; OR
INT16
#* ... *#

132
Program <name>;
Var …; Start - Finish
Input
Output
:=
For (СІ)
Up-Low перший символ Up
Low4
++; --; **; Div; Mod
Eq; Neq; Ls; Gr
!; &; |
Int32
{* ... *}

133
#program <name>;
start variable…; stop
scan
print
::=
while – do (Паскаль)
Low
Up-Low6 перший символ Up
+; -; *; /; %
eq; noteq; less; gr
!!; &&; ||
int_2
??...

134
# PROGRAM <name>;
VARIABLE …; START – STOP
GET
PUT
<<
REPEAT – UNTIL (Паскаль)
Up
Low-Up6 перший символ Low
ADD; SUB; MUL; DIV; MOD
EQ; NE; LT; GT
NOT; AND; OR
INT_4
%% ... %%

135
#Program <name>;
Start Variable…; Stop
Read
Write
::
For –To – Do (Паскаль)
Up-Low перший символ Up
Up6
+; -; Mul; Div; Mod
Eg; Ne; >; <
!; And; Or
Int16_t
$$ ...

136
#program <name>;
variable…; start – stop
input
output
->
for – downto (Паскаль)
Low
Low6
add; sub; *; /; %
eg; ne; >>; <<
!; &; |
int32_t
/* ... */

137
# PROGRAM <name>;
START VARIABLE …; STOP
SCAN
PRINT
<-
FOR – TO – NEXT (Бейсік)
Up
Up-Low8 перший символ Up
+; -; *; DIV; MOD
==; !=; LT; GT
!!; &&; ||
INTEGER
!! ...

138
StartProgram
Variable…;StartBlok - EndBlok
Get
Put
>>
If [–Else] (СІ)
Up-Low перший символ Up
Low-Up8 перший символ Low
++; --; **; Div; Mod
=; <>; Lt; Gt
Not; And; Or
Integer16
// ...

139
startprogram
startblok variable…; endblok
read
write
:=
if – then [- else] (Паскаль)
Low
Up8
+; -; *; /; %
eg; ne; le; ge
!; and; or
integer32
// ... //

140
STARTPROGRAM
VARIABLE…; STARTBLOK -
ENDBLOK
INPUT
OUTPUT
::=
FOR (СІ)
Up
Low8
ADD; SUB; MUL; DIV; MOD
EQ; NE; >=; <=
!; &; |
INTEGER_2
## ... ##

141
StartProgram
StartBlok Variable…; EndBlok
Scan
Print
<<
Repeat – Until (Паскаль)
Up-Low перший символ Up
Up-Low2 перший символ _
+; -; Mul; Div; Mod
=; <>; Le; Ge
!!; &&; ||
Integer_4
\\ ...

142
startprogram
variable…; startblok - endblok
get
put
::
for –to – do (Паскаль)
Low
Low-Up2 перший символ _
add; sub; *; /; %
==; !=; le; ge
not; and; or
integer16_t
@@ ...

143
MAIMPROGRAM
START DATA…; END
READ
WRITE
->
DO- WHILE (СІ)
Up
Up4 перший символ _
+; -; *; DIV; MOD
=; <>; >; <;
!!; AND; OR
INTEGER32_t
## ...

144
MainProgram
Data…; Start - End
Input
Output
<-
If - Then [- Else] (Паскаль)
Up-Low перший символ Up
Low4 перший символ _
++; --; **; Div; Mod
=; <>; >=; <=
!; &; |
Longint
{ ... }

145
mainprogram
start data…; end
scan
print
>>
if [–else] (СІ)
Low
Up-Low4 перший символ _
+; -; *; /; %
==; !=; >; <
!!; &&; ||
int16
!! ...!!

146
MAIMPROGRAM
DATA…; START – END
GET
PUT
:=
IF - GOTO; GOTO (Бейсік)
Up
Low-Up4 перший символ _
ADD; SUB; MUL; DIV; MOD
==; !=; >=; <=
NOT; AND; OR
INT32
/*…

147
MainProgram
Start Data…; End
Read
Write
::=
If - Then Goto; Goto (Бейсік)
Up-Low перший символ Up
Up6 перший символ _
+; -; Mul; Div; Mod
==; !=; !>; !<
!; And; Or
Int_2
#* ... *#

148
name <name>;
data…; body- end
input
output
<<
while (СІ)
Low
Low6 перший символ _
add; sub; *; /; %
=; <>; !>; !<
!; &; |
int_4
{* ... *}

149
NAME <name>;
BODY DATA…; END
SCAN
PRINT
::
FOR (СІ)
Up
Up-Low6 перший символ _
+; -; *; DIV; MOD
==; <>; >>; <<
NOT; AND; OR
INT16_t
??...

150
Name <name>;
Data…; Body - End
Get
Put
->
Do- While (СІ)
Up-Low перший символ Up
Low-Up6 перший символ _
++; --; **; Div; Mod
Eg; Ne; Le; Ge
!!; &&; ||
Int32_t
%% ... %%