51206

Построение синтаксического дерева

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

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

Включить в синтаксический анализатор из лабораторной работы №.3 построение синтаксического дерева. Использовать атрибутный метод Кнута, т.е. преобразовать КС–грамматику из лабораторной работы № 3 в атрибутную грамматику добавлением атрибутов и правил построения синтаксического дерева. Расширить программу синтаксического анализатора из лабораторной работы...

Русский

2014-02-07

53.35 KB

11 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное  учреждение высшего профессионального образования

«Ижевский государственный технический университет им. М.Т.Калашникова»

Кафедра АСОИУ

ОТЧЕТ

к лабораторной работе №4

по дисциплине «Математическая лингвистика»

на тему «Построение синтаксического дерева»

Вариант №13.

Выполнил:
студент гр. Б04-782-1 Н.А.Сидоров

Руководитель:
ассистент каф.АСОИУ Д.Р.Касимов

Ижевск 2013

1 Постановка задачи

Включить в синтаксический анализатор из лабораторной работы №.3 построение синтаксического дерева. Использовать атрибутный метод Кнута, т.е. преобразовать КС–грамматику из лабораторной работы № 3 в атрибутную грамматику добавлением атрибутов и правил построения синтаксического дерева. Расширить программу синтаксического анализатора из лабораторной работы № 3 введением действий по построению синтаксического дерева. Для визуализации дерева использовать соответствующие визуальные компоненты, такие как TTreeView (Delphi).


2 Атрибутная грамматика с действиями по построению дерева

В таблице 2.1 можно увидеть атрибутную грамматику для указанного ранее варианта.

Таблица 2.1

В таблице <буква> обозначает лексему, состоящую только из букв, а <цифра> - какое-либо цифровое слово.

Для порождения терминала (здесь терминал – цепочка из цифр или букв) строится лист дерева, а для случая, когда из нетерминала порождается нетерминал, строится узел.

Атрибут здесь представлен в качестве , обозначающий родительский узел. Функция  создает узел-наследника для узла  с именем  и возвращает только что созданный узел.  

3 Исходный текст синтаксического анализатора

class SynAnalyzer

{

 private:

  …

  void A(TTreeNode *);

  void S(TTreeNode *);

  

};

//------------------------------------------------------------------------------------

void SynAnalyzer::Parse(const AnsiString &s)

{

 procStr=s;

 try

  {

    GetNextToken(); //получили первый терминал, и идем...!

    S(Form1->TreeView1->Items->Item[0]); // отправляем туда корень

    if (curTkn!=empty) throw curCh; // !!!

  }

 catch(int a)

  {

    SynAnalyzer *err=new SynAnalyzer();

    (*err).Error();

    delete err;

  }

}

//------------------------------------------------------------------------------------

void SynAnalyzer::A(TTreeNode *uzel)

{

 TTreeNode *newUzel;

 newUzel=Form1->TreeView1->Items->AddChild(uzel,'A'); //узел

 if (curTkn==digit)

  {

    //построить бы

    Form1->TreeView1->Items->AddChild(newUzel,"<digit> from A"); //лист

    GetNextToken();

  }

 else

  {

    if (curTkn==letter)

     {

       // построить бы

       Form1->TreeView1->Items->AddChild(newUzel,"<letter> from A"); //лист

       GetNextToken();

       S(newUzel);

       A(newUzel);

     }

    else throw curCh;

  }

}

//---------------------------------------------------------------------------------

void SynAnalyzer::S(TTreeNode *uzel)

{

 TTreeNode *newUzel;

 newUzel=Form1->TreeView1->Items->AddChild(uzel, 'S');

 if (curTkn==letter)

  {

    //построить бы надо

    Form1->TreeView1->Items->AddChild(newUzel,"<letter> from S");

    GetNextToken();

  }

 else

  {

    if (curTkn==digit)

     {

       //построить бы надо

       Form1->TreeView1->Items->AddChild(newUzel,"<digit> from S");

       GetNextToken();

       A(newUzel);

       S(newUzel);

     }

    else throw curCh;

  }

}


4 Результаты тестирования

На рисунке 4.1 можно увидеть разложение в виде дерева для следующей цепочки:

Рисунок 4.1 – Древовидная структура разложения

На следующем рисунке (рисунок 4.2) показано дерево для разложения следующей цепочки:

Рисунок 4.2 – Визуальное представление исходной последовательности лексем

 


 

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

80040. Довкілля – казка чарівна! 55 KB
  Мета: вчити оцінювати негативне і бездумне ставлення до природи; формувати інтерес до навколишнього середовища; поглиблювати знання про довкілля рідного краю; розвивати комунікативні, творчі здібності, вміння робити висновки, відстоювати свою, думку, презентувати свої дослідження...
80041. Край, у якому ти живеш. Україна – наша Батьківщина 417.5 KB
  Мета: збагачувати знання учнів про Україну, а також активний словниковий запас учнів; пробудити інтерес до вивчання рідного краю; розширити знання народні, історичні та культурні символи українського народу; сприяти формування національної свідомості, осмисленню себе як частини...
80042. Н.В.Гоголь и Т.Г.Шевченко: две судьбы, две личности, два пути великих сыновей украинского народа 134.5 KB
  В своих исследованиях, представленных на конференции по заявленной теме, учащиеся проследили, как среда и время определили разницу в судьбах и литературных путях двух великих украинцев Н.Гоголя и Т.Шевченко. Прилагается электронная презентация темы в формате Pover Point.
80043. Декоративна таця 473 KB
  Необхідність таці люди зрозуміли дуже давно, саме тому її почали використовувати як столове приладдя вже в стародавні часи. Перші таці були зроблені не з каменя, як можна було припустити, а з обпаленої глини, оскільки їм не була потрібна міцність. Представляла вона собою напівкулю.
80044. ПІДПРИЄМЛИВІСТЬ – ОСНОВА КОНКУРЕНТНОСПРОМОЖНОСТІ ВИПУСКНИКА 211.5 KB
  З учнями: діагностика: Виявлення характерних рис дитини Виявлення нахилів і здібностей школярів Виявлення спрямованості учнів 811 класів; анкетування: Мої успіхи і невдачі Формування життєвої компетентності особистості Настрій і його зображення Розуміння почуттів іншої людини...
80045. Громадянське виховання як метод правової соціалізації учнів 74 KB
  Виховання адаптованої людини, тобто людини, здатної пристосуватися до вимог суспільства. Прищеплення дітям з раннього віку національних цінностей: патріотизм, людяність, працелюбство, соціальна справедливість, правосвідомість.
80046. Я И МИР ПРОФЕССИЙ 62.5 KB
  Формирование у школьников представлений о мире профессий и о факторах, обуславливающих рациональный выбор профессии; активизация учащихся в профессиональном самоопределении; познакомить учащихся с учебными заведениями города...
80048. Все работы хороши. Защита профессий 58 KB
  Подготовительная работа: Игре предшествуют беседы с родителями экскурсии к ним на работу выпуск газеты Наши родители на работе с фотографиями рисунками краткой информацией о том что они делают чем занимаются на работе какое значение имеет их работа для них самих и для других людей.