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);

}


 

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

40357. Шизофрения, параноидная форма. Парафренный синдром 60.5 KB
  При осмотре кожных покровов: кожа бледно розовая нормальной влажности и температуры пролежней сыпей расчесов участков шелушений нет кровоизлияний сосудистых звездочек нет тургор кожи сохранен. При осмотре видимые слизистые оболочки розовые кровоизлиянийизъязвлений корочек нет. Пальцы и ногти обычной формы барабанных палочек и часовых стекол нет ногти на руках и ногах блестящие ровные исчерченности и ломкости ногтей нет. Питание избыточное подкожножировая клетчатка развита чрезмерно отеков нет.
40358. Среднепроградиентная шизофрения. Синдром Кандинского-Клерамбо 50.5 KB
  после многократных стрессов сокращение штатов на работе смерть отца сестры брата бабушки которые больная переносила очень тяжело. Через 3 дня больная услышала голос духа который успокаивал ее говорил что она является избранником для передачи духовного мира называл ее своим ребенком был ласков. Дух часто заставлял больную совершать ненужные телодвижения показывал ей картины мира зла и добра при общении с посторонними людьми указывал на хороших и злых людей злых людей больная видела с красными глазами. Иногда...
40359. Депрессивный и маниакальный синдромы в анамнезе 41.5 KB
  В это время дома был сын тогда ему было 12 лет. За это время со слов родственников сын старшая сестра неоднократно были эпизоды повышенной активности интенсивной деятельности освоения новой профессии бухгалтерский учет спонтанного ухода с прежнего места работы поиска новой. Последнее время чувствовала себя очень хорошо была полна сил энергией и множеством идей. Последнее время находясь на пенсии работала дизайнером штор но поссорилась с коллективом и уволилась.
40360. Математическая модель узла абсорбции оксидов азота водой в производстве разбавленной азотной кислоты 6.14 MB
  Для реализации данной задачи инженер должен решить две основные задачи: проектирование и создание новых высокоэффективных технологических процессов либо эксплуатация уже существующих производств, их интенсификация и повышение эффективности их функционирования.
40361. Трудовая экспертиза 55 KB
  При стойком снижении или утрате трудоспособности больному определяется одна из трех групп инвалидности. Правительством РФ было принято специальное положение вменявшее решение вопросов инвалидности созданным на основе прежних ВТЭК Бюро медикосоциальной экспертизы МСЭК2. Вновь разработанные критерии определения инвалидности в отличие от прежних ориентированных преимущественно на трудоспособность больного основываются на трех основных признаках: 1 нарушение здоровья со стойким расстройством функций организма обусловленное заболеванием...
40362. Невроз, депрессивно-фобическая форма 35 KB
  Панические атаки неожиданно возникающий и быстро в течение нескольких минут нарастающий симптомокомплекс вегетативных расстройств синдром Da Costa сердцебиение стеснение в груди ощущение удушья нехватки воздуха потливость головокружение сочетающийся с ощущением надвигающейся смерти страхом потери сознания либо потери контроля над собой сумасшествия. Клинический диагноз: на основе характерного симптомокомплекса психопатолгических расстройств можно поставить диагноз невроз депрессивнофобическая форма. Дифференциальный...
40363. Личностные расстройства при стрессе 50 KB
  Клиническая типология ПТСР Удельный вес и значимость соотношения коморбидных симптомов и осевых симптомов ПТСР позволяет выделить несколько типов ПТСР что имеет практическую терапевтическую значимость. Тревожный тип ПТСР наблюдается у 32 больных характеризуется высоким уровнем соматической и психической немотивированной тревоги на гипотимноокрашенном аффективном фоне с переживанием не реже нескольких раз в сутки непроизвольных с оттенком навязчивости представлений отражающих психотравматическую...
40364. Шизофрения, параноидная форма, непрерывно-прогредиентное течение, парафренный синдром 55 KB
  Мышечная система: общее развитие умеренное болезненности при ощупывании нет тонус нормальный дрожания нет. СИСТЕМА ОРГАНОВ ДЫХАНИЯ: Дыхание осуществляется через нос отделяемого из носа нет Грудная клетка обычной формы симметричная без видимых деформаций в акте дыхания участвует активно и симметрично тип дыхания смешанный ЧДД 18. СИСТЕМА ОРГАНОВ КРОВООБРАЩЕНИЯ: В прекардиальной области и в области основания сердца деформаций нет. Аускультативно: тоны чистые ясные пульс симметричный на обеих руках равномерный умеренного...
40365. Классификация наркомании и токсикомании 52 KB
  Наркомания обусловленная злоупотреблением препаратами конопли Злоупотребление седативноснотворными средствами: наркомании вызванные снотворными; токсикомании обусловленные злоупотреблением транквилизаторами Злоупотребление психостимуляторами: амфетаминовая наркомания; злоупотребление кустарными препаратами эфедрина и эфедринсодержащих смесей; кокаиновая наркомания; злоупотребление кофеином. Полинаркомании осложненные наркомании политоксикомании. Клинические проявления и закономерности течения Основой формирования наркомании и...