АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практическая часть. 2.1.. Исходные данные и общие технические требования

Читайте также:
  1. I ЧАСТЬ
  2. I. ПАСПОРТНАЯ ЧАСТЬ
  3. II часть
  4. II. Основная часть
  5. II. Основная часть
  6. II. Практическая часть
  7. III часть урока. Выставка, анализ и оценка выполненных работ.
  8. III. Творческая часть. Страницы семейной славы: к 75-летию Победы в Великой войне.
  9. III. Творческая часть. Страницы семейной славы: к 75-летию Победы в Великой войне.
  10. IV. ИНФОРМАЦИОННАЯ ЧАСТЬ
  11. Аналитическая часть
  12. Аналитическая часть.

2.1.. Исходные данные и общие технические требования

Целью лабораторной работы является разработка модулей синтаксического анализатора для узкого подмножества языка Паскаль.

Исходные данные для проектирования:

¨ строка лексем, полученная в результате лексического разбора исходного текста программы согласно варианту, заданному в лабораторной работе 1-2;

¨ операционная среда программирования: персональный компьютер модели IBM PC, операционная система MS DOS или Windows 95, система программирования на языке Паскаль или Си;

¨ метод проектирования: нисходящее структурное и модульное программирование.

¨ грамматика подмножества языка ПАСКАЛЬ.

Множество правил грамматики, записанных в форме Бэкуса-Наура, имеет следующий вид:

 

1. <программа>::= РRОGRАМ <имя программы>; VAR <список описаний>

BEGIN <список операторов> END.

2. <имя программы>::=ИМЯ

3. <список описаний>::=<описание>;{<описание>;}

4. <описание>::=<список имён>:<тип>

5. <тип>::= INTEGER | REAL

6. <список имён>::=ИМЯ{,ИМЯ}

7. <список операторов>::=<оператор>;{<оператор>;}

8. <оператор>::=<непомеченный оператор> | <метка>:<непомеченный оператор>

9. <непомеченный оператор>::==<присваивание> | <ввод> | <вывод> | <условный оператор> | <цикл> | <оператор перехода>

10. <присваивание>::=ИМЯ:=<выражение>

11. <выражение>::=<простое выражение> | <простое выражение> = | <>| < | > | <= | >= <простое выражение>

12. <простое выражение>:: =<терм>{+<терм> | -<терм>}

13. <терм>::=<множитель>{*<множитель> |/<множитель>

14.<множитель>::=ИМЯ | ЦЕЛОЕ | ВЕЩЕСТВЕННОЕ | (<простое выражение>)

15. <ввод>::=READ(<список имен>)

16. <вывод>::=WRIТЕ(<список имён>)

17. <условный оператор>::= IF <выражение> THEN <оператор> | IF <выражение> THEN <оператор> ELSE <оператор>

18. <цикл>::= FOR <индексное выражение> DO <тело цикла>

19. <индексное выражение>::=ИМЯ:=<выражение> ТО <выражение>

20. <тело цикла>::=<оператор> | BEGIN <список операторов> END

21. <оператор перехода>::= GOТО <метка>

22. <метка>::=ЦЕЛОЕ

 

В грамматике, помимо общепринятых, используются следующие терминальные символы: ИМЯ - любая последовательность латинских букв и арабских цифр длиной не более восьми символов, начинающаяся с буквы; ЦЕЛОЕ – целая константа; ВЕЩЕСТВЕННОЕ – вещественная константа.

 

2.2. Общие технические требования

1. Программа синтаксического анализатора должна состоять из главной функции и вспомогательных функций, реализующих отдельные этапы грамматического разбора.

2. Входной информацией для программы анализатора является строка кодов лексем, составляющих анализируемую программу.

3. Выходной информацией разрабатываемой программы являются проанализированные строки текста исходной программы, сопровождаемые диагностическими сообщениями о появлении возможных синтаксических ошибок. Эта информация (листинг проанализированного текста) должна выдаваться на экран в ходе анализа. После завершения работы программы должно быть сформировано итоговое сообщение о результатах синтаксического анализа.

4. Программа анализа должна обнаруживать по крайней мере одиночные ошибки в каждой синтаксической конструкции.

5. Все диагностические сообщения должны в полной мере соответствовать характеру обнаруживаемых синтаксических ошибок.

6. В программе анализатора должна быть предусмотрена возможность получения файла с результатами анализа для последующего вывода листинга на принтер.

 

2.3. Порядок выполнения работы

1. Используя грамматику и текст анализируемой программы по варианту, построить дерево грамматического разбора исходной программы.

2. На основании дерева грамматического разбора выполнить проектирование структуры синтаксического анализатора, определив:

¨ структуру основной программы и действия, выполняемые в ней;

¨ состав и назначение вспомогательных функций, структуру их входных и выходных параметров, порядок вызова и взаимодействие друг с другом.

3. Составить блок-схему алгоритма работы и подготовить исходный текст основной программы. Выполнить её отладку с помощью программных средств используемой системы программирования.

4. Составить блок-схемы алгоритмов работы и подготовить исходные тексты для всех вызываемых функций.. Выполнить отладку вызываемых функций с помощью отладочных программ, используя в качестве входных данных фрагменты кодов лексем анализируемой программы. В необходимых случаях разработать тексты диагностических сообщений, которые отражают ошибочные ситуации, возникающие в ходе анализа.

5. Выполнить комплексную отладку программы анализатора с использованием таблицы кодов лексем исходной программы, полученной в лабораторной работе 1 - 2.

6. Провести тестирование программы синтаксического анализа, внося различные изменения в текст исходной программы путем замены кодов лексем различных конструкций языка и контролируя ход процесса анализа по диагностическим сообщениям. Изменения должны охватывать все возможные случаи отклонений от правильного представления синтаксических конструкций исходного текста.

2.4. Содержание отчета по лабораторной работе

В отчете необходимо представить:

1. Дерево грамматического разбора исходной программы.

2. Блок-схемы и исходные тексты основной программы и всех процедур.

3. Результаты отладки и тестирования программы анализатора в виде распечатанных текстов отладочных программ и тестовых примеров.

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)