Курсовая работа5 / Раздел 1
.docКурсовая работа. Раздел 1.
Вариант 19
Формулировка задания:
Описать синтаксис описания процедур в языке Pascal при условии, что операторы, составляющие тело процедуры описывать не нужно.
Описание синтаксиса входного языка:
<Процедура> ::= procedure id <Список параметров> ;
<Раздел описаний>
Begin
<Раздел операторов>
End;
<Список параметров> ::= (<Список>) | ε
<Список> ::= <Параметры> : <тип> |
var <Параметры> : <тип> |
<Список> ; <Параметры > : <тип> |
<Список>; var <Параметры > : <тип>
<Параметры> ::= id | <Параметры> , id
<Раздел описаний> ::= <Раздел описаний> <Описание> | ε
<Описание> ::= var <Описание переменных> |
const <Описание констант> |
type <Описание типов>
<Описание переменных> ::= <Описание переменных> <Параметры> : <тип> ; |
<Параметры> : <тип> ;
<Описание констант> ::= <Описание констант> id = число ; |
id = число ;
<Описание типов> ::= <Описание типов> <Типы> | <Описание типов> <Массивы типов>
<Типы> ::= <Типы> id = <тип> ; |
id = <тип> ;
<Массивы типов> ::= <Массивы типов> id = array[1..целое число] of <тип> ; |
id = array[1..целое число] of <тип> ;
<Раздел операторов> ::= <Раздел операторов> op; | ε
<Тип> ::= id
G= <T,N,S,R>
S - <Процедура>
T={procedure, begin, end, id, var, const, type, array, of, op, число, целое число, =, , , ; , : , (, ), [ , ], 1}
N={S, A, B, C, D, E, F, H, I, L, M, N}
R={
-
S procedure id A ; B Begin C End;
-
A ( D )
-
A ε
-
D E : F
-
D var E : F
-
D D ; E : F
-
D D ; var E : F
-
E id
-
E E , id
-
B B H
-
B ε
-
H var I
-
H const J
-
H type K
-
I I E : F ;
-
I E : F ;
-
J J id = число ;
-
J id = число ;
-
K K L
-
K K M
-
L L id = F ;
-
L id = F ;
-
M M id = array[1..целое число] of F ;
-
M id = array[1..целое число] of F ;
-
C C op;
-
C ε
-
F id
}
Procedure id;
Var id,id:id;
Begin
Op;
End;
-
Левый вывод
(1) (3) (10)
S procedure id A ; B Begin C End; procedure id; B Begin C End; procedure id; B H
(11) (12) (16)
Begin C End; procedure id; H Begin C End; procedure id; var I Begin C End; procedure
(9) (8)
id; var E : F ; Begin C End; procedure id; var E , id : F ; Begin C End; procedure id; var id,
(27) (25)
id: F ; Begin C End; procedure id; var id, id: id; Begin C End; procedure id; var id, id: id;
(26)
Begin C op; End; procedure id; var id, id: id; Begin op; End;
-
Правый вывод
(1) (25) (26)
S procedure id A ; B Begin C End; procedure id A ; B Begin C op; End; procedure id A ;
(10) (12)
B Begin op; End; procedure id A ; B H Begin op; End; procedure id A ; B var I Begin op;
(16) (27)
End; procedure id A ; B var E : F ; Begin op; End; procedure id A ; B var E :id; Begin op;
(9) (8)
End; procedure id A ; B var E ,id:id; Begin op; End; procedure id A ; B var id,id:id; Begin
(11) (3)
op; End; procedure id A ; var id, id: id; Begin op; End; procedure id; var id, id:id; Begin op; End;