Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 46: | Строка 46: | ||
# Реализовать в программе 2 семантические действия по накоплению в строке распознанного целого числа и преобразованию его в целое в конце разбора (при встрече завершающего символа) | # Реализовать в программе 2 семантические действия по накоплению в строке распознанного целого числа и преобразованию его в целое в конце разбора (при встрече завершающего символа) | ||
# Составить синтаксическую диаграмму идентификатора. Реализовать по ней распознаватель. | # Составить синтаксическую диаграмму идентификатора. Реализовать по ней распознаватель. | ||
+ | # Составить синтаксическую диаграмму для целого со знаком, начинающегося не с цифры 0. Реализовать распознаватель. Оттестировать. | ||
+ | # Составить синтаксическую диаграмму для чередующихся букв и цифр. Реализовать распознаватель. Оттестировать. | ||
+ | # Составить синтаксическую диаграмму для списка букв, разделенных символом , или ;. Реализовать распознаватель. Оттестировать. | ||
+ | # Составить синтаксическую диаграмму для списка цифр, разделенных одним или несколькими пробелами. Реализовать распознаватель. Оттестировать. | ||
+ | # Составить синтаксическую диаграмму для выражения вида 1+2-3-4+5. Реализовать распознаватель. Оттестировать. | ||
+ | # Составить синтаксическую диаграмму для вещественного с десятичной точкой 123.45678. Реализовать распознаватель. Оттестировать. |
Версия 21:03, 9 февраля 2012
Содержание
Тема 2. Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе
Синтаксическая диаграмма для целого со знаком
Программа 2 распознавания целого со знаком по синтаксической диаграмме
// Разбор целого со знаком с помощью синтаксических диаграмм
var
ch: Char;
pos: integer;
procedure error();
begin
writeln('^':pos);
writeln('Ошибка в символе ',ch);
halt;
end;
procedure NextCh;
begin
read(ch);
pos += 1;
end;
begin
NextCh;
if ch in ['+','-'] then
NextCh;
if ch in ['0'..'9'] then
NextCh
else error;
while ch in ['0'..'9'] do
NextCh;
if ch<>#13 then
error;
writeln('Распознано целое число');
end.
Задания к теме 2 «Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе»
- Реализовать программу 2
- Реализовать в программе 2 семантические действия по накоплению в строке распознанного целого числа и преобразованию его в целое в конце разбора (при встрече завершающего символа)
- Составить синтаксическую диаграмму идентификатора. Реализовать по ней распознаватель.
- Составить синтаксическую диаграмму для целого со знаком, начинающегося не с цифры 0. Реализовать распознаватель. Оттестировать.
- Составить синтаксическую диаграмму для чередующихся букв и цифр. Реализовать распознаватель. Оттестировать.
- Составить синтаксическую диаграмму для списка букв, разделенных символом , или ;. Реализовать распознаватель. Оттестировать.
- Составить синтаксическую диаграмму для списка цифр, разделенных одним или несколькими пробелами. Реализовать распознаватель. Оттестировать.
- Составить синтаксическую диаграмму для выражения вида 1+2-3-4+5. Реализовать распознаватель. Оттестировать.
- Составить синтаксическую диаграмму для вещественного с десятичной точкой 123.45678. Реализовать распознаватель. Оттестировать.