Реферат: Робота в системі програмування

len := 3.14 * r;

складається з наступних токенів

Ідентифікатор len

Символ присвоєння :=

Числова стала 3.14

Знак множення *

Ідентифікатор r

Роздільник операторів ;

Синтаксичний розбір

Послідовність машинних символів, що утворюють токен, називають лексемою токена. Токени мають тип (наприклад, ідентифікатор, числова стала - це типи токенів). Деякі токени мають лексичне значення (наприклад, значення числової чи рядкової константи утвореної з лексеми токена). Задача лексичного аналізатора – виокремити лексеми токенів і повідомити синтаксичний аналізатор про тип токена та його лексичне значення.

Ієрархічний аналіз називається розбором (parsing) чи синтаксичним аналізом, у ході якого відбувається групування токенів програми. В синтаксичному аналізі символом називають токени(термінали) та групи токенів об'єднаних у логічне ціле в процесі аналізу (нетермінали).

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

Програма є послідовністю терміналів, яку можна вивести зі стартового символу послідовно застосовуючи правила виводу (продукції). Продукція – це заміна послідовності символів S1 на послідовність символів S2 (Позначається. S1 : S2 або S1 -> S2). Продукція називається контесктно-незалежною, якщо S1 – один символ. Звичайно розглядаються лише контесктно-незалежні продукції.

Задача синтаксичного аналізатора – встановити шлях, яким вхідна програма виводиться з стартового символа.

Наприклад, наступна граматика із трьох продукцій описує вирази (expression), що можуть складатись з ідентифікаторів (identifier), чисел (number), та знаку додавання +

expression : identifier

expression : number

expression : expression + expression

Перший рядок означає що будь-який ідентифікатор є виразом. Другий рядок означає що будь-яке число є виразом. Третій рядок означає що будь-яка послідовність з двох виразів розділених знаком додавання теж є виразом.

В цій граматиці символами є expression, number, identifier та +. Expression є стартовим символом і нетерміналом, решта символів є терміналами.

Класифікація компіляторів

Відомі компілятори

GCC

Генератори аналізаторів

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

В Unix поширені генератор лексичних аналізаторів (F)Lex, та генератори синтаксичних аналізаторів Bison та Yacc.

Інтерпретатор (interpreter) - програма чи технічні засоби, необхідні для виконання інших програм; вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).

Інтерпретатори можуть працювати як з вихідним кодом програми, написаним на мові програмування, так і з байт-кодом (інтерпретатори байт-коду).


Список використаної літератури

1. Абрамов С.А., Зима Е.В. Начала информатики. – М.: Наука, 1989. – 256 с.

2. Інформатика: Комп’ютерна техніка. Комп’ютерні технології. Посіб./ За ред. О.І.

3. Информатика. Базовый курс / Под ред. Симоновича С.В. – СПб., 1998.

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