Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая работа5 / Раздел 1

.doc
Скачиваний:
7
Добавлен:
01.05.2014
Размер:
92.16 Кб
Скачать

Курсовая работа. Раздел 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={

  1. S  procedure id A ; B Begin C End;

  2. A  ( D )

  3. A  ε

  4. D  E : F

  5. D  var E : F

  6. D  D ; E : F

  7. D  D ; var E : F

  8. E  id

  9. E  E , id

  10. B  B H

  11. B  ε

  12. H  var I

  13. H  const J

  14. H  type K

  15. I  I E : F ;

  16. I  E : F ;

  17. J  J id = число ;

  18. J  id = число ;

  19. K  K L

  20. K  K M

  21. L  L id = F ;

  22. L  id = F ;

  23. M  M id = array[1..целое число] of F ;

  24. M  id = array[1..целое число] of F ;

  25. C  C op;

  26. C ε

  27. F  id

}

Procedure id;

Var id,id:id;

Begin

Op;

End;

  1. Левый вывод

(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. Правый вывод

(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;

Соседние файлы в папке Курсовая работа5