16526

РАЗРАБОТКА И РЕАЛИЗАЦИЯ АЛГОРИТМА ЛЕКСИЧЕСКОГО АНАЛИЗАТОРА

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3/4 РАЗРАБОТКА И РЕАЛИЗАЦИЯ АЛГОРИТМА ЛЕКСИЧЕСКОГО АНАЛИЗАТОРА 2.1. Введение Цель работы: Ознакомиться с теоретическими и практическими основами построения блока лексического анализа компилятора Глава 1. Общая характеристика процесса ко

Русский

2013-06-22

61.5 KB

17 чел.

Лабораторная работа № 3/4

РАЗРАБОТКА И РЕАЛИЗАЦИЯ АЛГОРИТМА ЛЕКСИЧЕСКОГО АНАЛИЗАТОРА

2.1.  Введение

Цель работы: Ознакомиться с теоретическими и практическими основами построения блока лексического анализа компилятора (Глава 1. Общая характеристика процесса компиляции и Глава 6. Проектирование лексического анализатора). Разработать алгоритм работы лексического анализатора (ЛА) и реализовать его в программе в упрощенном варианте.

Защита работы: Демонстрация работы программы, ответы на заданные теоретические вопросы  и вопросы по организации данных, построению алгоритма и реализации программы.

Литература:    1)  Основы теории построения компиляторов (Уч. пособие № 3236). Гл.1, 6.

  2)  Материалы к практическим занятиям. Тема 4, занятие 13.

2.2.  Задание к лабораторной работе

В соответствии с вариантом определяется условный мини-язык программирования, для которого необходимо создать ЛА. В задании (Таблица 1) дается примерное определение языка – определяются типы данных, операторы и операции, наличие массивов и функций. Обязательно должны быть предусмотрены комментарии. Стиль оформления (Pascal, C, Basic и т.д. или комбинированный) и все остальные детали (вид констант, заголовок программы, операторы объявления переменных, массивов, процедур, функций и т.д.) устанавливаются произвольно,  допустимо использование любых элементов сверх заданных.

Таблица 1.

Вар

Тип данных

Операторы

Операции

Доп. элементы

Реализация

1

integer,  string

Присваивания, if-then-else, goto

+  –  *  /  =  <>  <=   >=  >

массивы

Прямая программная

2

boolean, byte, word   (16-р.конст.)

Присваивания, if-then-else, for-do

+   –    *  /  or and  not

функции

Таблично-управляемая

3

integer, real

Присваивания, if-then, goto, case

+   –   *  /  < > =  <= >=  /=

процедуры

Прямая программная

4

real, string, byte

Присваивания, if-then-else, goto, f, wh orile

+   –   *  /   ^   <  >  =  /=

-

Таблично-управляемая

5

byte, word

  (16-р.конст.)

Присваивания, if-then-else, goto, for

+   –  *  /  **  <  >  =  not  

массивы

Прямая программная

6

integer, byte, word

  (16-р.конст.)

Присваивания, if-then-else, case,  repeat

+  *  /   

=  <>  <  <=   >=  >

-

Таблично-управляемая

7

integer, real, boolean

Присваивания, if-then-else, goto,  with

+   –    *  /  or and  not  < > =

записи

Прямая программная

8

integer, real

Присваивания, if-then-else,

goto, while

+  –  *  /  

=  <  <=   >=  >

массивы

Таблично-управляемая

9

real, string, byte

Присваивания, if-then-else, for

+  *  /   =   /=   <    >

Функции и процедуры

Прямая программная

10

integer, real

Присваивания, if-then-else,

goto, case, for, while

+  *  /  

=  <   >  

массивы

Таблично-управляемая

В  лабораторной работе:

1 часть

  •  должен быть коротко описан язык (так, что бы было ясно, как  на нем писать программы),
  •  даны  1-2  примера программ, включающих все характерные элементы языка,
  •  приведено формальное описание языка с использованием БНФ, РБНФ или СД.
  •  представлен граф распознавания ЛЕ программы ,

2 часть

  •  показаны таблицы ключевых слов и однолитерных разделителей,
  •  представлен интерфейс (схематично) программы,
  •  показан алгоритм (блок-схемы или псевдокод) выполнения лексического анализа.

После выполнения работы должно появиться:

  •  программа лексического анализатора,
  •  результаты работы анализатора (2-3 программы и их внутреннее представление).

2.3.  Примерная форма отчета по работе

 1) Задание к лабораторной работе

Вар

Тип данных

Операторы

Операции

Доп. элементы

Реализация

11

int, char  

Присваивания, if-else, goto

+  –  *  /  =  !=  <   <=  >  ++  – – 

массивы

Прямая программная

  1)  Описания мини-языка программирования

       {  ! ! ! ! ! ! !    ---  т е к с т  ---     ! ! ! ! ! !   }  

  2)  Пример программы.

 program  myPRG1;

  /* моя программа 1 */

  integer i, a, mmm[10];

  real S;

     begin

  S:=0;

  for  i:= 1 to 10 do

    S := S + a[i];

  writln (‘Сумма =’, S)

 end.

2а)  Формальное описания мини-языка программирования

       {  ! ! ! ! ! ! !    ---  т е к с т  ---     ! ! ! ! ! !   }

  3)  Граф распознавания лексических единиц 

       {  ! ! ! ! ! ! !     ---  рисунок  ---      ! ! ! ! ! !   }  

  4)  Таблицы ключевых слов и разделителей

       {  ! ! ! ! ! ! !    ---  таблицы  ---      ! ! ! ! ! !   }  

  5) Программа лексического анализатора

       {  ! ! ! ! ! ! !   ---  программа  ---   ! ! ! ! ! !   }  

  6) Результат работы анализатора

 K.5 program      

I.1 myPRG1

R.4 ;

 com /* моя программа 1 */

 K.4   integer

     I.2 i

R.2 ,

I.3 a

R.2 ,

I.4 mmm

R.7 [

C.1 10

R.8 ]

R.4 ;

    . . .

 R.2 end

R.9 .

         *)  другое возможное представление (построчное)

 program  myPRG1;

K.5  I.1  R.4

 /* моя программа 1 */

 com

 integer i, a, mmm[10];

 K.4  I.2  R.2  I.3  R.2  I.4  R.7  C.1  R.8  R.4

 . . .

 end.

 R.2  R.9

        **)  может быть выбран и иной вариант (например, в  две  колонки), но соответствие ЛЕ должно быть очевидно.

2.4. Контрольные вопросы

Теоретические

  1.  Что такое конечный автомат и как он задается ?.
  2.  Поясните кратко методику построения графа распознавания ЛЕ языка.
  3.  Что такое прямая программная реализация ЛА ?.
  4.  Что такое функциональная (таблично-управляемая) реализация ЛА ?
  5.  Охарактеризуйте кратко различные методы поиска в таблицах.
  6.  Поясните организацию хешированных таблиц.

Практические

  1.  Какие типы ЛЕ обычно выделяют в программе.
  2.  Что такое стандартное (внутреннее) представление программы.
  3.  Чем отличаются таблицы идентификаторов и констант от таблиц ключевых слов и разделителей.
  4.  Как проверить, является ли некоторый символ буквой (цифрой).
  5.  Как проверить, являются ли символы ЛЕ, собранные в буфере, ключевым словом.
  6.  Поясните реализацию фрагмента алгоритма в программе.

___ end ___


 

А также другие работы, которые могут Вас заинтересовать

45377. Исторические предпосылки возникновения права 57.96 KB
  Есть лишь отношения объективно требующие или не требую щие правового опосредования. Лишь в отдельных случаях субъект может не знать что стал участником правового отношения например оказавшись наследником по закону после смерти родственника проживавшего в другом городе. Механизм правового регулирования: понятие структура стадии процесса Право как инструмент социального управления призвано упорядочивать общественные отношения обеспе чивая реализацию позитивных интересов субъектов. Каждый из этапов и юридических элементов правового...
45378. ПОНЯТИЕ, ПРИЗНАКИ И СУЩНОСТЬ ПРАВА 43.74 KB
  Ценность права выражается в том что оно прежде всего выступает средством: − регулирования общественных отношений придаёт действиям людей согласованность упорядоченность уверенность; − защиты существующего общественного строя устанавливает меры юридической ответственности за общественно опасные и вредные деяния; − обновления общества фактором его прогресса содействует развитию тех социальных связей в которых заинтересовано общество; − решения глобальных проблем современности оборонных экологических и т. Эффективность правового...
45379. Социальное регулирование. Понятие, функции и виды социальных норм 64.66 KB
  Место и роль права в системе социального регулирования. Отличие права от других нормативных систем. При обсуждении роли права в системе социального нормативного регулирования значение имеют нормы третьей и четвертой группы в литературе именно их принято квалифицировать как социальные нормы. Именно в этих процессах доминирующие в обществе идеи права и правовые представления переводятся в форму юридических правил норм общего действия.
45380. Соотношение права и морали 51.65 KB
  соотношение права и морали. Единство права и морали заключается в следующем: право и мораль являются универсальными регуляторами поведения людей имеют способность проникать в различные области общественной жизни; право и мораль являются многомерными образованиями имеющими сложную структуру которая состоит из одинаковых и взаимодействующих между собой элементов; право и мораль действуют в едином поле социальных отношений; право и мораль служат общей цели совершенствованию и упорядочению общественной жизни...
45381. Принципы права понятие и классификация 47.7 KB
  принципы права понятие и классификация Принципы права это основные исходные начала положения идеи выражающие сущность права как специфического социального регулятора. Они воплощают закономерности права его природу и социальное назначение представляют собой наиболее общие правила поведения которые либо прямо сформулированы в законе либо выводятся из его смысла.Представляется что принципы права должны отражать и выражать основные ценности на которые ориентируется право. Принципы выступают в качестве своеобразной несущей конструкции...
45382. ТГП в системе общественных наук 45.79 KB
  Теория права и государства имея свой предмет функции и метод занимает специфическое место в системе общественных неюридических наук. Философия и теория права и государства. Что касается теории государства и права то она изучает государство и право мно гогранно обращаясь при этом к передовым достижениям философии и используя философские категории сущность содержание и форма часть и целое возможность и действительность система и структура и др. Теория государства и права вооружает философию материалом позволяющим делать обобщения и...
45383. Место и роль тгп в системе юридических наук. 47.03 KB
  Теория государства и права входит в систему юридических наук объединенных общим названием правоведение. По классификации юридических наук она относится к теоретикоисторическим наукам вместе с историей государства и права и историей политических и правовых учений или учений о праве и государстве. История государства и права изучает процесс исторического развития государственноправовых форм жизни конкретных стран в хронологическом порядке т. Теория государства и права исследует развитие государства и права в обобщеннотеоретическом виде...
45384. Предмет и методология тгп 48.66 KB
  Предмет и методология тгп Теория государства и права система научных знаний об объективных свойствах государства и права их внутренней структуре и логике развития; об основных и общих закономерностях возникновения развития и функционирования государственноправовых явлений. Как и любая другая наука теория государства и права имеет свой предмет и метод. Предмет теории государства и права объективные свойства государства и права основные и общие закономерности возникновения развития и функционирования государственных и правовых...
45385. Социально-исторические предпосылки происхождения государства 72 KB
  юридические факты и фактические составы понятие чиды Юридические факты это определённые жизненные обстоятельства условия ситуации с которыми нормы права связывают возникновение прекращение или изменение правоотношений. Эти факты становятся юридическими не в силу какихто особых внутренних свойств а в результате при знания их таковыми государством законом. Не право порождает подобные факты они возникают и существуют помимо не го но право придает им статус юридических в целях их регуляции и упорядочения общественной и государст...