IPB
ЛогинПароль:

> синтаксический анализ оператора Паскаль
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский
Реальное имя: Даша

Репутация: -  0  +


Произвести синтаксический анализ оператора языка Паскаль WRITELN(согласно условию,оператор может иметь произвольное число пробелов между символами).Записать автоматную грамматику оператора:задать её характеристики, представить дерево синтаксического анализа. По ней построить КА,который будет выполнять роль синтаксического анализатора оператора:начертить его граф-схему и построить таблицу переходов.

Плиз,help!!!


--------------------
<...>
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Все таки сложно поверить, что полную версию записи оператора WriteLn требуется представить в виде автоматной грамматики. Это возможно, но сложно. Рекомендую перепроверить задание и посмотреть примеры выполнения, которые вы наверняка разбирали на лекциях.

Вот я попытался набросать автоматную грамматику упрощённого оператора WriteLn с поддержкой вывода строковых констант и целых числовых в десятичной форме. Без модификаторов вывода вроде "WriteLn(15:3);". Без арифметических выражений. Для удобства восприятия я исключил из терминальных символов заглавные буквы и использовал их для обозначения нетерминальных символов. Комментарии указаны в С++ стиле (//).

Код
S->writeln(A
A->);
A->'B    // начало строки
B->aB
B->bB
B->cB
...      // Перечисляем все буквы
B->zB
B->!B    // Пошли символы
B->''B   // Одинарная кавычка только в экранированном варианте (2 раза подряд)
...      // Все остальные символы
B->',C   // Конец строки с пробелами после запятой
B->',E   // Без пробелов
C->_C    // Под подчёркиванием я имел ввиду пробел
C->_E
A->0D    // Начало числа
A->1D
...      // Все остальные цифры
A->9D
A->-D    // Для отрицательного числа
A->+D    // Можно указывать и +
D->0D
D->1D
...      // Все остальные цифры
D->9D
D->,C    // Конец числа с пробелами
D->,E    // Конец числа без пробелов после запятой
E->'B    // E аналогично A, но не может заканчивать оператор (нет правила E->);)
E->0D
E->1D
...
E->9D
E->-D
E->+D
Надеюсь я нигде не ошибся.

Сильно упрощённый вариант записи оператора и уже такие сложности в грамматике... Устраивает такой вариант?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Дашустрик   синтаксический анализ оператора Паскаль   30.10.2008 14:55
Archon   Так тебе надо сделать синтаксический анализ операт…   3.11.2008 23:51
Дашустрик   Так тебе надо сделать синтаксический анализ опера…   4.11.2008 4:42
Archon   Синтаксический анализ - разбор выражения. Обычно с…   4.11.2008 12:56
Дашустрик   я так думаю,что для общего   4.11.2008 16:04
Archon   Все таки сложно поверить, что [b]полную версию зап…   4.11.2008 17:31
Дашустрик   мож скинуть ещё материальчика по этой теме,если та…   4.11.2008 17:45
Archon   Честно говоря только мой конспект и Википедия. Ищи…   4.11.2008 17:50
Дашустрик   а мож скинуть конспект?? :angel: :blush:   4.11.2008 18:07
Archon   Только если бандеролью, но мне он нужен =)   4.11.2008 18:33
Дашустрик   а по почте никак?   4.11.2008 18:53
Archon   Конспекты я пишу в тетрадях и они мне нужны. Да и …   4.11.2008 18:58
Дашустрик   а отсканить и по e-mail отправить?   4.11.2008 19:20
Дашустрик   только,единственный вопрос,числа предусмотрены,а п…   5.11.2008 19:54
Дашустрик   вот моё решение S->writelnB B->(C C-…   6.11.2008 5:50
Archon   У меня только числа и строки, переменные - нет. В…   7.11.2008 16:24


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.05.2024 0:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name