22938

Синтаксичний аналіз виразів

Лекция

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

Мова в певному алфавіті основному символів це слова записані за певними синтаксичними правилами. Синтаксичні правила подаються формулами БекусаНаура БНФ вигляду : ::= де позначає синтаксичне поняття а послідовність символів розширеного алфавіту. Вираз [] означає що послідовність символів входить або не входить в конструкцію. Синтаксичний аналізатор це програма що для заданої послідовності символів основного алфавіту розпізнає чи побудована вона у відповідності з синтаксичними правилами для даного поняття.

Русский

2013-08-04

31 KB

1 чел.

ЛАБОРАТОРНА РОБОТА  6

 

ТЕМА:  Синтаксичний аналіз виразів.

Мова в певному алфавіті (основному) символів – це слова, записані за певними синтаксичними правилами. Синтаксичні правила подаються формулами Бекуса-Наура (БНФ) вигляду :  <…> ::= ,  де  <…> - позначає синтаксичне поняття, а  - послідовність символів розширеного алфавіту. Розширений алфавіт – це основний  алфавіт, доповнений  синтаксичними поняттями та метасимволами - ‘|’, ‘[‘, ‘]’, ‘{‘, ‘}’, ‘(‘, ‘)’.  Метасимвол ‘|’ розділяє  альтернативні варіанти поняття. Вираз […] означає,  що послідовність символів входить або не входить  в конструкцію. Вираз {…} – що конструкція може повторюватись довільну кількість  раз (n>=0).  Кожному поняттю відповідає певна індуктивно визначена сукупність синтаксично правильних  слів в основному алфавіті. Означені синтаксичні правила у вигляді формул є не що іншим, як лінійною формою вже згадуваних СД Н.Вірта.  Синтаксичний аналізатор - це програма, що для заданої  послідовності символів основного алфавіту розпізнає, чи побудована вона  у відповідності з синтаксичними правилами для даного поняття. Говорять, що БНФ допускає  LА(1)-аналіз, якщо в кожній її формулі альтернативи  правої  частини розпочинаються з попарно різних символів основного алфавіту. Програма LА(1)-аналізатор  складається з сукупності рекурсивних функцій, що відповідають кожному  синтаксичному правилу і які викликають  одна одну у відповідності до правих частин своїх формул.

  

ЗАВДАННЯ

Побудувати синтаксичний аналізатор  для   поняття <хороший>:

<хороший> :: = x | [<хороший>{+<хороший>}]

Вхідна послідовність символів  вводиться з клавіатури. Основний алфавіт складають чотири символи: x , [], + .  БНФ складається з одного синтаксичного правила.  «Хорошими»  є , нпр., слова :   x (база індукції),  [x], [x+x]  і т.д. (за індуктивним переходом).  «Нехорошими» cловами - xx, [],  x+x  тощо.

/* LA(1)- аналізатор для поняття  <хороший> */

#include <stdio.h>

char ch; /* для читання символів  вхідного слова */

beautiful()

/* УВАГА! Перед викликом аналізатора  змінна ch  завжди містить  черговий  символ вхідного слова  !!! */

{ if (ch == ‘[‘) { ch=getchar();  beautiful();

                          while (ch==’+’) { ch=getchar();  beautiful();}

                            if  (ch != ‘]‘) { Err(1); /* обробка  помилкової ситуації :“Відсутня дужка ‘]’ ” */

                                                     

                                                     exit(1);} 

                                /* Заключна дужка ‘]’  є  і це означає, що   прочитано правильний варіант  альтернативи  */

                                  ch=getchar();  

                          } else  if (ch == ‘x‘)  ch=getchar();

                                                  else { Err(2); /* обробка  помилкової ситуації : Очікування  х  */

}

main ()

{  ch= getchar();

   beautiful();

   if (ch == EOF) printf (“Yes”)  

    else  Err(3); /* обробка  помилкової ситуації : Зайві символи в кінці слова   */

}

Еrr( int i)

{  switch (i) {

                          case 1:  printf (”\n Помилкова ситуація 1  ----   відсутня дужка ‘]’ “); break;

                          case 2:  printf (”\n Помилкова ситуація 2  ----   очікування  х’ ” ); break;

                          case 3:  printf (”\n Помилкова ситуація 3  ----    зайві символи в кінці слова “); break;

                      }

    exit(1);

}


 

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

32647. Контрактная работа над проектом 37 KB
  Контрактная стадия проекта открывает фазу реализации проекта и следует сразу за фазой предынвестиционных исследований за принятием решения о вложении инвестиций в проект. На этой стадии определяются все участники проекта контракторы отношения которых с заказчиком формализуются в контрактах. Определение потребности в ресурсах работах и услугах необходимых для реализации проекта. Определение потенциальных участников проекта контракторов и анализ их возможностей.
32648. Организация и проведение подрядных торгов для заключения контрактов по проектам 35 KB
  Организация и проведение подрядных торгов для заключения контрактов по проектам. Объект торгов производственный или непроизводственный объект к которому относится предмет торгов. Предмет торгов конкретные виды работ и услуг по которым проводятся торги. В качестве предмета торгов могут выступать подряды на: строительство реконструкцию и капитальный ремонт предприятий зданий сооружений производственного и непроизводственного назначения в том числе на условиях под ключ; выполнение комплексов строительных и монтажных работ и их...
32649. Организация работ и выполнение проекта 29 KB
  Организация работ и выполнение проекта. Задачи управления проектом при его выполнении выполнение сводного плана проекта реализация плана проекта путем выполнения включенных в него работ; подтверждение предметной области процесс формальной приемки предметной области проекта. обеспечение качества процесс регулярной оценки выполнения работ проекта для подтверждения того что проект будет удовлетворять принятым стандартам качества. развитие команды освоение индивидуальных и групповых навыков и квалификации для улучшения выполнения...
32650. Контроль и регулирование хода выполнения проекта 37 KB
  Контроль и регулирование хода выполнения проекта. Контроль Основной целью контроля проекта является обеспечение выполнения плановых показателей и повышение общей эффективности функций планирования и контроля проекта. Содержание контроля проекта состоит в определении результатов деятельности на основе оценки и документирования фактических показателей выполнения работ и сравнения их с плановыми показателями. Система контроля проекта представляет собой часть общей системы управления проектом между элементами подсистемами которой имеются...
32651. Коммуникационная система управления проектом 26 KB
  Коммуникации Управление коммуникациями проекта управление взаимодействием информационными связями управленческая функция направленная на обеспечение своевременного сбора генерации распределения и сохранения необходимой проектной информации. Управление коммуникациями обеспечивает поддержку системы связи взаимодействий между участниками проекта передачу управленческой и отчетной информации направленной на обеспечение достижения целей проекта. Каждый участник проекта должен быть подготовлен к взаимодействию в рамках проекта в...
32652. Этапы закрытия проекта 30 KB
  Этапы закрытия проекта. Этапы закрытия Фаза завершения работ по проекту включает следующие этапы: ввод проекта в действие; достижение проектом заданных результатов; прекращение финансирования проекта; работы по закрытию проекта и внесению изменений не предусмотренных первоначальным замыслом; участие в эксплуатации объектов проекта. На практике завершающую фазу объединяют с фазой ликвидации проекта которая предусматривает вывод объектов проекта из эксплуатации ремонт модернизацию реконструкцию объекта проекта. Ввод проекта в действие...
32653. Анализ эффективности реализации и управления проектом 40 KB
  Анализ эффективности реализации проекта Реализация любого проекта направлена на достижение заранее заданных и четко сформулированных целей и связанных с ними конкретных результатов. В свою очередь планируемый результат является объектом целеполагания проекта. Цели и соответственно результаты проекта могут быть экономическими например получение прибыли снижение себестоимости продукции достижение определенного уровня эффективности работ повышение конкурентоспособности продукции социальноэкономическими создание новых рабочих мест рост...
32654. Место и роль управления проектами в современной теории управления. Сущность проектного и процессного подходов 35 KB
  Роль управления проектами в современном мире. Эти средства активно применяются не только для управления федеральными проектами и программами но и для осуществления управленческих функций внутри правительственного аппарата. В России же где организационная система и методы управления гораздо слабее чем на Западе эффект от внедрения УП окажется еще более значительным.
32655. Основные признаки, понятия и характеристики проекта 30 KB
  Основные признаки понятия и характеристики проекта. Но цели проекта ограничены во времени. При успешном завершении проекта целевая установка данная руководителю проекта заказчиком отпадает. Признак изменения Этот признак является наиболее важной характеристикой проекта так как осуществление проекта всегда несет изменения вещественной системы или предметной области в которой реализуется проект.