Реферат: Розробка системних програмних модулів систем програмування

- Функція ParseComments() перевіряє чи 2 символ теж $, то всі символи до кінця рядка вважає коментарем

- Функція ParseString() шукає символ завершення рядка і всі символи між початком і кінцем рядка вважає рядковою константою

- Функція ParseNoLex() шукає розділювач і вважає що всі символи, які вона виділила є нерозпізнаною лексемою


3.4.Розробка синтаксичного аналізатора

Синтаксичний розбір (розпізнавання) є першим етапом синтаксичного аналізу. Саме при його виконанні здійснюється підтвердження того, що вхідний ланцюжок символів є програмою, а окремі підланцюжки складають синтаксично правильні програмні об'єкти. Вслід за розпізнаванням окремих підланцюжків здійснюється аналіз їх семантичної коректності на основі накопиченої інформації. Потім проводиться додавання нових об'єктів в об'єктну модель програми або в проміжне представлення.

Розбір призначений для доказу того, що аналізований вхідний ланцюжок, записаний на вхідній стрічці, належить або не належить безлічі ланцюжків породжуваних граматикою даної мови. Виконання синтаксичного розбору здійснюється розпізнавачами, тому даний процес також називається розпізнаванням вхідного ланцюжка. Мета доказу в тому, щоб відповісти на питання: чи належить аналізований ланцюжок безлічі правильних ланцюжків заданої мови. Відповідь «так» дається, якщо така приналежність встановлена. Інакше дається відповідь «ні». Отримання відповіді «ні» пов'язано з поняттям відмови. Єдина відмова на будь-якому рівні веде до загальної відмови.

Щоб одержати відповідь «так» щодо всього ланцюжка, треба його одержати для кожного правила, що забезпечує розбір окремого підланцюжка. Аналізатор вибирає перший символ з сукупності лексем аналізуючи його визначає, яку функцію треба запустити щоб виконати перевірку заданого підланцюжка. Цей метод називається методом рекурсивного спуску, аналіз проводиться від кореня до листків.

Основним завданням семантичного аналізатора є перевірка типів. Також семантичний аналізатор повинен знаходити вирази, що використовуються без присвоєння та видавати попередження.

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

3.4.1 . Розробка дерева граматичного розбору

Дерево граматичного розбору розроблено згідно правил, даних у формі розширеної нотації Бекуса-Наура, та оформлено згідно правил ЄСКД.

3.4.2 Розробка граф-схеми алгоритму

Рис 2 .Граф-схема роботи синтаксичного аналізатора

Блок 1 – Початок синтаксичного аналізатора

Блок 2 – Основна функція аналізатора

Блок 3 – Перевіряє чи наступний символ Var

Блок 4 – Виконання функції ParseVAR()

Блок 5 - Перевіряє чи наступний символ INT32_t

Блок 6 - Виконання функції ParseDeclar_i()

Блок 7 - Виконання функції ParseVAR()

Блок 8 - Перевіряє чи наступний символ BOOLEAN

Блок 9 - Виконання функції ParseDeclar_b()

Блок 10 - Виконання функції ParseVAR()

Блок 11 - Перевіряє чи наступний символ START

Блок 12 - Перевіряє чи наступний символ WRITE

Блок 13 - Виконання функції ParseWRITE()

К-во Просмотров: 470
Бесплатно скачать Реферат: Розробка системних програмних модулів систем програмування