
Модель компілятора
П
рограма
Лексеми Об’єктний
Абсолютний
Вхідний модуль модуль
модуль
Лексичний аналізатор – програма мовою високого рівня являє собою послідовність символів. (Примітка: кожний символ має свій код. Таблиця кодів для IBM-сумісних ПК називається ASCII (American Standard code International Interchange). До набору символів Turbo і Borland Pascal відноситься майже вся таблиця ASCII (крім кирилиці). Серед символів програми на мові високого рівня лексичний аналізатор розрізняє символи – роздільники (наприклад, пробіл), і з їхньою допомогою виділяє лексеми.
Лексема – мінімально значима одиниці тексту програми.
Приклад For i=1 to n do writeln(i). Питання: Скільки тут лексем?
Синтаксичний аналізатор – на основі правил граматики мови перевіряє коректність запису лексем і речень програми й переводить послідовність лексем у послідовність внутрішніх кодів компілятора (об’єктний модуль).
Генератор коду (редактор зв’язків) – здійснює переклад внутрішнього коду компілятора в машинний код комп’ютера.
У таблицях міститься як постійна для трансляції програм інформація (наприклад, таблиця зарезервованих слів), так і індивідуальна інформація для якої-небудь програми (наприклад, таблиця ідентифікаторів).
Інтегроване середовище програмування
Сучасні мови програмування – це не тільки мова програмування з компілятором. Мови програмування як програмний продукт поставляються на ринок ПЗ разом з повним комплектом інструментів для створення програм. Такий комплект називається інтегрованим середовищем програмування. Він призначений не тільки для полегшення процесу складання програм, але і для професійної розробки програмних додатків.
Означення Середовище програмування – це програма, що має засоби автоматизації процесів підготовки та виконання програм користувача.
До складу інтегрованого середовища програмування входять, як правило, наступні інструменти:
текстовий редактор для набору і редагування програми;
мова програмування з компілятором чи інтерпретатором;
компонувальник;
система усунення синтаксичних помилок, покроковий налагоджувач;
бібліотека готових до використання програмних модулів (процедур та функцій);
довідкова система з питань розробки програм у даному середовищі.
Прикладами інтегрованих середовищ програмування є Turbo Pascal 7.0, Delphi і Visual Basic для Windows. Використання цих середовищ при розробці додатків дозволяє користувачам прикладати набагато менше зусиль, ніж при написанні програм за допомогою мов більш низького рівня.
Створення програми починається зі складання алгоритму, орієнтованого на визначене інтегроване середовище програмування. Алгоритм перекладається на мову програми і вводиться з клавіатури у вікні текстового редактора. Після того, як ви набрали з клавіатури текст і виправили в ньому помилки, потрібно відправити програму на автоматичну перевірку. При цьому автоматично буде запущений ще один засіб зі складу середовища програмування – це налагоджувач (по-англійському – debugger). Налагоджувач перевірить текст із погляду синтаксису, запропонує вам виправити знайдені помилки. Програміст за допомогою налагоджувача може також переглянути і змінити вміст комірок пам’яті комп’ютера.
Налагоджену програму можна запускати на виконання. Перекладом тексту програми на машинну мову займеться відомий уже вам засіб – транслятор. Йому буде допомагати компонувальник (linker), задачею якого є пошук і компонування розрізнених модулів і бібліотек, що необхідні для виконання програми.
Інтегроване середовище програмування забезпечує діалогову взаємодію з користувачем на всіх етапах складання і виконання програми. Середовище програмування сконструйоване таким чином, щоб користувачу були доступні всі можливі інструменти програмування, і він почував себе комфортно.
Алфавіт мови програмування.
У природних мовах тексти будують так:
Алфавіт мови => Слова => Речення => Текст
В алгоритмічних мовах простежується повна аналогія:
Алфавіт => Слова => Команди => Програма
Розглянемо алфавіт мови Паскаль. Алфавіт мови програмування містить майже всі (за деякими винятками) символи, що є на клавіатурі:
латинські символи (великі та малі);
символи кирилиці (великі та малі);
цифри від 0 до 9;
математичні символи (+ –плюс, - – мінус, * – множення, / – ділення, = – дорівнює, < – менше, > – більше);
розділові знаки (пропуск, , – кома, . – крапка, : – двокрапка, ; – крапка з комою, ‘ – апостроф, [] – квадратні дужки, () – круглі дужки, {} – фігурні дужки, # – номер, $ – знак грошової одиниці, @ – комерційне а, ^ – тильда,) та ін.;
комбінації математичних та розділових знаків утворюють складені символи (:= – присвоєння, < > – не дорівнює, <= – менше або дорівнює, >= – більше або дорівнює, . . – діапазон значень).