Файл: Решение б ц # Другие символы 1.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.10.2023

Просмотров: 12

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Вопрос 1. На вход автомата поступает последовательность непустых строк, содержащих группы букв и цифр, при этом цифры есть обязательно. Каждая строка завершается символом «#». Автомат должен распознавать и допускать строки, в которых встречается только четное количество цифр в группах, например, допустимы строки:
а) fhgfhfjf56787979tuytuyyu45cvbcv#

б) 56плорл354356#

в) 6789#
Нарисуйте синтаксическую диаграмму и постройте таблицу конечного автомата.
Решение:






б

ц

#

Другие символы

1

2

3

Е

E

2

2

3

Е

E

3

Е

4

Е

E

4

5

3

К

E

5

5

3

К

E

Автомат не минимален, так как есть совпадающие строки. Удаляем 2-ю и 5-ю строки и заменяем состояния: 2 – на 1, 5 – на 4.




б

ц

#

Другие символы

1

1

3

Е

E

3

Е

4

Е

E

4

4

3

К

E


Вопрос 2. Дана грамматика, описывающая упрощенный вариант сложных выражений С++:
<Сложное выражение>::= <Сложное выражение>, <Выражение> |

<Сложное выражение>+<Выражение> |

<Сложное выражение>-<Выражение> |

<Выражение>

<Выражение>::= <Ид>
Приведите последовательность выполнения грамматического разбора для сентенциальной формы:

<Ид>+<Ид> - <Ид>,<Ид>-<Ид>, <Ид>-<Ид>

левосторонним восходящим методом.

Определите, к какому типу по Хомскому принадлежит грамматика. Почему?

Решение:

Вводим обозначения:

С – сложное выражение;

В – выражение;

Ид – идентификатор.

Тогда правила будут выглядеть так:

а) С ::= С, В | С+В | С-В | В

б) В ::= Ид

Грамматика принадлежит к 3-му типу по Хомскому, так как:

- правила в левой части содержат единственный символ – нетерминал, соответственно это не грамматики 0 и 1 типов;

- в правой части правил отсутствует вложенная рекурсия, соответственно это не грамматика 2 типа.

Основу в сентенциальной форме ищем слева направо, правила подбираем по правой части снизу-вверх и слева-направо (основу отмечаем красным):

1) ид + ид - ид, ид - ид, ид – ид

2) в + ид - ид, ид - ид, ид – ид

3) с + ид - ид, ид - ид, ид – ид

4) с + в - ид, ид - ид, ид – ид

5) с - ид, ид - ид, ид – ид

6) с - в, ид - ид, ид – ид

7) с, ид - ид, ид – ид

8) с, в - ид, ид – ид

8) с - ид, ид – ид

9) с - в, ид – ид

10) с, ид – ид

11) с, в – ид

12) с – ид

13) с – в

14) с Аксиома, конец разбора

....

В РК4 достаточно привести первые 20 строк :-)...

Можно использовать таблицу, как сделано в лекции.





Строка разбора

Основа

Действие

1

ид + ид - ид, ид - ид, ид - ид

ид

Свертка по правилу б1

2

в + ид - ид, ид - ид, ид - ид

в

Свертка по правилу а4

3

с + ид - ид, ид - ид, ид - ид

с

Нет правила, след.основа

4

с + ид - ид, ид - ид, ид - ид

с+

Нет правила, след.основа

5

с + ид - ид, ид - ид, ид - ид

с + ид

Нет правила, след.основа

6

с + ид - ид, ид - ид, ид - ид

+

Нет правила, след.основа

7

с + ид - ид, ид - ид, ид - ид

+ ид

Нет правила, след.основа

8

с + ид - ид, ид - ид, ид - ид

+ ид -

Нет правила, след.основа

9

с + ид - ид, ид - ид, ид - ид

ид

Свертка по правилу б1

10

с + в - ид, ид - ид, ид - ид

с

Нет правила, след.основа

11

с + в - ид, ид - ид, ид - ид

с+

Нет правила, след.основа

12

с + в - ид, ид - ид, ид - ид

с + в

Свертка по правилу а2

13

с - ид, ид - ид, ид - ид

с

Нет правила, след.основа

14

с - ид, ид - ид, ид - ид

с-

Нет правила, след.основа

15

с - ид, ид - ид, ид - ид

с - ид

Нет правила, след.основа

16

с - ид, ид - ид, ид - ид

-

Нет правила, след.основа

17

с - ид, ид - ид, ид - ид

- ид

Нет правила, след.основа

18

с - ид, ид - ид, ид - ид

- ид,

Нет правила, след.основа

19

с - ид, ид - ид, ид - ид

ид

Свертка по правилу б1

20

с - в, ид - ид, ид - ид

с

Нет правила, след.основа

21

с - в, ид - ид, ид - ид

с -

Нет правила, след.основа

22

с - в, ид - ид, ид - ид

с - в

Свертка по правилу а3

23

с, ид - ид, ид - ид

с

Нет правила, след.основа

24

с, ид - ид, ид - ид

с,

Нет правила, след.основа

25

с, ид - ид, ид - ид

с, ид

Нет правила, след.основа

26

с, ид - ид, ид - ид

,

Нет правила, след.основа

27

с, ид - ид, ид - ид

, ид

Нет правила, след.основа

28

с, ид - ид, ид - ид

, ид -

Нет правила, след.основа

29

с, ид - ид, ид - ид

ид

Свертка по правилу б1

30

с, в - ид, ид - ид

с

Нет правила, след.основа

31

с, в - ид, ид - ид

с,

Нет правила, след.основа

32

с, в - ид, ид - ид

с, в

Свертка по правилу а1

33

с - ид, ид - ид

с

Нет правила, след.основа

34

с - ид, ид - ид

с -

Нет правила, след.основа

35

с - ид, ид - ид

с - ид

Нет правила, след.основа

36

с - ид, ид - ид

-

Нет правила, след.основа

37

с - ид, ид - ид

- ид

Нет правила, след.основа

38

с - ид, ид - ид

- ид,

Нет правила, след.основа

39

с - ид, ид - ид

ид

Свертка по правилу б1

40

с - в, ид - ид

с

Нет правила, след.основа

41

с - в, ид - ид

с -

Нет правила, след.основа

42

с - в, ид - ид

с - в

Свертка по правилу а3

43

с, ид - ид

с

Нет правила, след.основа

44

с, ид - ид

с,

Нет правила, след.основа

45

с, ид - ид

с, ид

Нет правила, след.основа

46

с, ид - ид

,

Нет правила, след.основа

47

с, ид - ид

, ид

Нет правила, след.основа

48

с, ид - ид

, ид -

Нет правила, след.основа

49

с, ид - ид

ид

Свертка по правилу б1

50

с, в - ид

с

Нет правила, след.основа

51

с, в - ид

с,

Нет правила, след.основа

52

с, в - ид

с, в

Свертка по правилу а1

53

с - ид

с

Нет правила, след.основа

54

с - ид

с -

Нет правила, след.основа

55

с - ид

с - ид

Нет правила, след.основа

56

с - ид

-

Нет правила, след.основа

57

с - ид

- ид

Нет правила, след.основа

58

с - ид

ид

Свертка по правилу б1

59

с - в

с

Нет правила, след.основа

60

с - в

с -

Нет правила, след.основа

61

с - в

с - в

Свертка по правилу а3

62

с

Конец