Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska_-_31_1 (1).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
536.65 Кб
Скачать
  1. Формальний опис вхідної мови програмування

    1. Деталізований опис вхідної мови в термінах розширеної нотації Бекуса-Наура(Backus/NaurForm - bnf).

<program>

::= STARTPROGRAM VARIABLE <declaration>; STARTBLOK<block>ENDBLOK

< block>

::= < operator > | [{< operator>}]

<declaration>

::= <ident> [ {,<ident>} ] <type>

<type>

::= INTEGER16_T

<is>

::= :=

<ident>

::= “_<h_letter>[<l _letter>|<l_letter>]

<leter>

::=< h_letter >|<l_letter>

<h_letter>

::= A|B|C|D|E|F|G|H|I|J|K|L|N|M|O|P|Q|R|S|T|U|V|W|X|Y|Z

<l_letter>

::=a|b|c|d|e|f|g|h|i|j|k|l|n|m|o|p|q|r|s|t|u|v|w|x|y|z

<number>

::= 0|1|2|3|4|5|6|7|8|9

<const>

::= [“-”]<number>[{number}] ;

<name_const>

::=”{<letter >|<number> [{<letter>}]|[{<number>}]}”

<operator>

::= <equation >| <print>|<scan>|<branching>|<operator_block>

<equation>

::= <ident><is><expression>

<expression>

::= [(] <operand> [)] [{ [)]<operation>[(]<operand> [)] }]

<operand>

::= <ident>|<const> |<ident>

<operation>

::= <arifmetic>|<logic>

<arifmetic>

::=<arifmetic>+<harifmetic>|<arifmetic>-<harifmetic> | harifmetic

<harifmetic>

::=< harifmetic>*<farifmetic>|< harifmetic>DIV<farifmetic>|

< harifmetic>%<farifmetic>|<farifmetic>

<farifmetic>

::=<operand>|(<arifmetic>)

<logic>

::=<egual>|[<egual>]|<logic_b>

<logic_b>

::=<logic_b>AND<logic_h>|<logic_h>

<logic_h>

::= NOT< logic_h>| <logic_bh>

<logic_bh>

::=(<logic>)OR<egual>

<egual>

::= (< operand ><eg_op><operand>)

<eg_op>

::= ==, <>, >>, <<

<branching >

IF(<expression >) THEN STARTBLOCK <operator>;|[{<operator>;}] | [{<branching >}] ENDBLOK;

[ ELSE STARTBLOCK <operator>;|[{<operator>;}] | [{<branching >}] ENDBLOK;]

<scan>

::= SCANDATA(<ident>);

< print>

::= PRINTDATA(<ident>);

<operator_block>

::= STARTBLOK < operator > | [{< operator>}] ENDBLOK

Отже, вхідну мову можна описати за допомогою 14 виразів.

2.2.Термінальні символи та ключові слова

Визначимо окремі термінальні символи та нерозривні набори термінальних символів (ключові слова):

STARTPROGRAM

VARIABLE

;

STARTBLOK

ENDBLOK

SCANDATA

PRINTDATA

:=

(

)

,

IF

THEN

ELSE

+

-

*

DIV

%

==

<>

>>

<<

NOT

AND

OR

INTEGER16_T

@@

До термінальних символів віднесемо також усі цифри (0-9), латинські букви (a-z,A-Z), символ підкреслення, символи табуляції, символ переходу на нову стрічку та пробілу. Отже, всього: 28 + 10 + 52 + 4 = 94 термінальних виразів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]