- •1) Програма. Комп’ютерна програма. Програма, як система.
- •2) Програмне забезпечення. Життєвий цикл.
- •7) Лексичний рівень інкапсуляції. Алфавіт мови. Лексеми. Лексичний аналіз. Лексичний устрій тексту програм.
- •8)Напередвизначені позначення. Позначення, що визначаються.
- •9) Тип, загальні положення.
- •Класифікація напередвизначених типів
- •12) Прості змінні
- •13) Зміна значень програмних об’єктів
- •Оператор присвоювання
- •14) Вираз
- •15) Блок
- •Нумерація, номер і глибина вкладеності блока
- •Мембранний ефект. Регулювання області дії
- •16) Регулювання періоду існування
- •Глобальне розрізнення видимості позначень (імен)
- •17) Суворо типізована мова
- •17, 18) Зведення типів
- •Явне зведення типів
- •Неявне зведення типів
- •Уникнення суворої типізації
- •21) Стратегія динамічного розподілу пам'яті на основі блока
- •22) Стратегія розподілу пам'яті в купі
- •Реалізація стратегії статичного розподілу пам'яті
- •Динамічний розподіл пам'яті на основі блока
- •Динамічний розподіл пам'яті на основі купи.
- •24) Структурна капсула
- •25) Структурні оператори
- •26) Оператори вибору
- •27) Оператор повторення
- •Форма оператора повторення do
- •Форма оператора повторення while
7) Лексичний рівень інкапсуляції. Алфавіт мови. Лексеми. Лексичний аналіз. Лексичний устрій тексту програм.
Застосовуючи принцип інкапсуляції на рівнях подання структури програми, які відповідають різним ступеням абстракції програмного забезпечення, підходимо до поняття рівня інкапсуляції [64]. Скориставшись цим поняттям, можна з’ясувати типи програмних конструкцій та відповідні методи конструювання програм.
Рівень інкапсуляції |
Інкапсульо-вувані частини програм |
Утворювана капсула (конструктція) |
Метод програмування |
Засоби програмування та механізми |
Лексичний |
Символи алфавіту мови |
Лексема |
Правила утворення лексем (позначень) і виразів із них |
Мова програмування, оператор присвоювання |
Операторний |
Лексеми |
Оператор структурний |
Структурне програмування |
2 GL*, 3GL, операторний базис вибору, повторення та зчленування, блок |
Підпрограмний |
Оператори |
Підпрограма (процедура, функція, макрос) |
Підпрограмне програмування |
3 GL, бібліотеки макросів, процедур та функцій, незалежна компіляція, об’єкт
|
Модульний |
Оператори опису, макроси процедури, функції |
Модуль (пакет) |
Модульне програмування |
3 GL, середовище програмування, механізми, видимості інформації, роздільна компіляція |
Класний |
Оператори опису, макроси процедури, функції |
Клас |
Об’єктно-орієнтоване програмування |
4 GL, класи об’єктів, механізми, успадкування поліфоризму |
Мегамодуль-ний |
Програми, модулі, класи (знання подовження керування) |
Мегамодуль |
Мегапрограму-вання |
5 GL (MPL**), колекції мегамодулів, гетерогенний інтерфейс |
Алфавіт(alphabet) будь-якої мови програмування складається із символів (літер), поданих у спеціальній таблиці American Standard Cod Information Interchange ASCII (Табл. 6.1). Зазвичай алфавіт складається з 52 великих і малих літер, 10 десяткових цифр та спеціальних символів, таких, скажімо як +, -, *, >.
Символи алфавіту не відіграють у мові самостійної ролі, проте вони використовуються для побудови лексем. З одного боку, лексеми (lexeme) – це найпростіші програмні конструкції, що становлять словниковий запас мови. А з другого боку, лексеми – це капсули, що інкапсулюють символи алфавіту.
У лексемі-капсулі можна встановити деякий порядок (послідовність) символів, який дає поняття межі капсули (перший і останній символи капсули) та використовується програмою, що входить до складу транслятора. Цей порядок дає змогу говорити про вхід в капсулу та вихід із неї. Програма транслятора, яка аналізує лексеми, перевіряючи правильність їх написання виконує лексичний аналіз (lexical analisys), і називається лексичним аналізатором (lexical analiser), або сканером (scanner) [35]. Крім аналізу сканер виконує кодування лексем, і вилучає пробільні символи та символи, що належать до коментарів, внесених у програму. Текст програми, що складається з кодів лексем, використовується у процесі синтаксичного аналізу, що виконується слідом за лексичним аналізом, який також здійснює відповідна програма трансляторa.
Із погляду лексичного рівня інкапсуляції текст програми може складатися із таких конструкцій:
пробільні символи;
коментарі;
лексеми.
Пробільні символи (escape symbols) – це символи, використовувані для відокремлення лексем і полегшення читання програми. До пробільних належать такі символи (див. Табл. 6.1): пробіл, табуляція, новий рядок.
Коментарі (comments) – це послідовності символів, що не належать тексту програми (мові), обмежені спеціальними символами й використовуються для опису пояснень у програмі. Наприклад, коментар у мові Pascal – {це коментар у мові Pascal}, коментар у мові С – /*це коментар у мові С*/.