Теми рефератів
> Реферати > Дипломні проекти > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти Партнери проекту
Реклама
Реферати, твори, дипломи, практика » Новые рефераты » Синтаксичний аналізатор

Реферат Синтаксичний аналізатор



2 квітня = 2 квітня id 2 лютого; 1 квітня write 11 Січень ( 9 квітня id 2 червня) 10 Квітня ; 1 квітня end 12 січня. 13 квітня Таблиці ключових слів і роздільників - статичні, таблиці ідентифікаторів і констант заповнюються в процесі лексичного і синтаксичного аналізу.


Статичні таблиці лексем

1. Таблиця ключових слов4. Таблиця разделителей1program1;2const2=3var3,4integer4:5char5[6string6]7begin7:=8repeat8<=9until9(10read10)11write11*12end12+13and13.14label14<15type15>16readln16>=17writeln17<>18goto18/19if19.20then21else22length23concat24replace25pos26StrChar27copy28Same29or30not

4. Синтаксичний аналізатор


На етапі синтаксичного аналізу виконується перевірка синтаксичної коректності вихідної програми, представленої у вигляді потоку токенів і сукупності таблиць, і перетворення її в деяку внутрішню форму, зручну в подальшому для генерації об'єктного коду.

Опишемо порядок дій, виконуваних при розробці синтаксичного аналізатора.


.1 Побудова КС-граматики вхідної мови


Для побудови КС-граматики вхідної мови необхідно:

1. Замінити металінгвістіческая змінні БНФ позначеннями нетермінальних символів, використовуючи короткі імена;

2. В якості термінальних символів використовувати токени;

. Металингвистический символ «: =» замінити символом «? »;

. Замінити одну металінгвістіческая формулу з n альтернативами на n правил граматики з однаковим символом в лівій частині правила виводу;

. Виключити металінгвістіческая символи [] і {} , включивши в правила граматики e-правила і рекурсивні правила.

Отримана граматика повинна бути граматикою простого передування.

Граматика простого передування

Синтаксичний аналіз, заснований на простому передування, використовує для виділення основи правовиводімой ланцюжка?? w три відносини передування (<), (=) і (>) наступним чином:

· якщо?- Основа, то між усіма суміжними символами ланцюжка? виконується або відношення (<), або (=);

· між останнім символом ланцюжка? і першим символом ланцюжка? виконується відношення (<);

· між суміжними символами основи виконується відношення (=);

· між останнім символом ланцюжка? і першим символом ланцюжка w виконується відношення (>).

Очевидно, що правий кінець основи правовиводімой ланцюжка граматики простого передування можна виділити, переглядаючи цей ланцюжок зліва направо до тих пір, поки вперше не зустрінеться відношення (>). Для знаходження лівого кінця основи треба переглянути її назад, поки не зустрінеться відношення (<). Ланцюжок, укладена між відносинами (<) і (>), буде основою. Якщо граматика є оборотною, тобто не містить правил з однаковою правою частиною, то основу можна однозначно згорнути. Цей процес продовжується до тих пір, поки вхідна ланцюжок не зг...


Назад | сторінка 9 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Побудова функції передування по заданій КС-граматики
  • Реферат на тему: Основні закони Російської імперії 23 квітня 1906р, їх роль в історико-право ...
  • Реферат на тему: Конвертер програми з підмножини мови Сі в Паскаль з використанням LL (1) ме ...
  • Реферат на тему: Розробка алгоритму роботи синтаксичного аналізатора тексту, а також бази да ...
  • Реферат на тему: Розробка алгоритму синтаксичного аналізу оператора виведення printf мови C ...
  • Скачать с сайта: