Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе

Материал из Вики ИТ мехмата ЮФУ
Версия от 21:00, 9 февраля 2012; Admin (обсуждение | вклад) (Тема 2. Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе)

Перейти к: навигация, поиск

К основной странице курса

[Страница_курса_"Методы_построения_компиляторов" К странице курса]

Тема 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 «Синтаксические диаграммы автоматных языков и реализация распознавателей на их основе»

  1. Реализовать программу 2
  2. Реализовать в программе 2 семантические действия по накоплению в строке распознанного целого числа и преобразованию его в целое в конце разбора (при встрече завершающего символа)
  3. Составить синтаксическую диаграмму идентификатора. Реализовать по ней распознаватель.