1
1. Поняття про мови прогр-ння, їх класифікація по відношенню до ЕОМ.
Мовою в теорії програмування наз. сукупність символів і правил, що визначають способи об’єднання даних символів в мовній структурі для організації текстів програм. По степені залежності від електронно –обчислювальних машин мови програмування діляться на машинно-залежні та машинно-незалежні. До групи машинно-залежних відносяться машинні та машинно-орієнтовані. Машинно-орієнтовані в свою чергу поділяються на мнемо коди і автокоди. Машинно-незалежні діляться на процедурно-орієнтовані і проблемно-орієнтовані.
Розглянемо машинно-орієнтовані. Опис алгоритму на мнемокоді подібний до опису на машинній мові і містить буквені позначення для задання операцій і буквено-цифрові позначення для задання адресації. При трансляції в машинну програму один оператор мнемокоду заміняється еквівалентною машинною командою. Тому такі мови називаються мовами рівня 1 до 1-го. Автокоди - це мови рівня першого до багатьох, оскільки поряд з символічними конструкціями машиних команд використовуються мнемокоди або макрокоманди, виконання яких забезпечується декількома машинними командами.
Мова програмування
v v
Машинно-залежні Машинно-незалежні
v v v v
Машинні машинно- процедурно- проблемно-
орієнтовані орієнтовані орієнтовані
v v
мнемокоди автокоди
Група машинно-незалежних мов включає мови програмування, які не орієнтовані на використання на конкретних ЕОМ. Проблемно орієнтовані – це вузький клас мов. Які орієнтовані на реалізацію конкретних задач і використовується вузьким колом спеціалістів. Процедурно-орієнтовані не орієнтовані на архітектуру і принципи роботи конкретних ЕОМ і програми записані на таких мовах можуть бути реалізовані на будь-яких комп’ютерах, на яких можна встановити транслятори з даної мови. Такі мови ще наз. формальними і будуються за принципом створення будь-яких природних мов з урахуванням певної граматики. Тому як і будь які інші мови, вони складаються з 4 структурних елементів, а саме:
1.алфавіт мови; 2. слова; 3.вирази; 4.речення( оператори)
Для опису таких мов потрібно визначити символи алфавіту, сформулювати правила утворення слів та правила опису припустимих у мові виразів, перемістити всі типи і сформулювати правила побудови операторів. Такий опис містить синтаксичні визначення, сематичні пояснення та граматичні форми.
2.Синтаксис, семантика, грамматика та прагматика мови програмування. Форми Бекуса-Наура.
Для опису мов потрібно визначити символи алфавіту, сформулювати привила утворення слів та правила опису припустимих у мові виразів, перемістити всі типи і сформулювати правила побудови операторів. Такий опис містить синтаксичні визначення, семантичні пояснення та граматичні форми.
Синтаксис мови – це су-сть правил побудови допустимих конструкцій, створюваних засобами символів алфавіту.
Семантичні пояснення (семантика мови) – дозволяє надати кожній структурі певного змісту та визначити операції і порядок їх виконання. Відповідно семантика мови задається в казанням:
типу простих значень (наприк. чисел)
способу побудови складених значень із простих
операцій над простими і складеними значеннями
способи задання дій
Практичні форми описують класи операторів та зв’язків між ними.
Крім цих трьох понять говорять ще про прагматику, під якою розуміють методологію опису методів і прийомів, які дозволяють, виходячи із поставленої задачі будувати програми за певною методикою.
Основні синтаксичні конструкції мов програмування
Для задання таких конструкцій найбільш популярними є форми Бекуса-Наура. Основним призначенням таких даних форм є вказання, які саме послідовності символів являються програмами в даній мові програмування, з яких складових частин і яким способом будувати програми. Для позначення таких складових вводяться особливі символи які називаються мета змінними. Вони представляють собою слова чи групи слів, взятих в кутові дужки ([…]).
Задання таких конструкцій вимагає також перелік основних символів мови із яких в основному кінцевому результаті і складається програма.
3.Форми Бекуса-Наура, опис сталих, змінних та виразів.
Форма Бекуса-Наура – це рядок, який складається із метазмінної символа ::=, що за нею слідує і однієї чи декількох послідовностей, утворених із основних символів і мета змінних. Даний символ читається по визначенню є, або це є. Якщо послідовностей більше як одна, то вони розділяються між собою вертикальною рискою І, яка означає “або”. Кожна така форма задає одне або декілька правил утворення можливих значень метазмінної.
<цифра>::=0I1I2I,…,I9I,…,
<цифра>::=1I<цифра>…
В лівій і правій частинах формули можуть стояти одні й ті самі найменування елементів. Крім цього визначення елемента через самого себе дозволяє утворювати форми, які називаються рекурсивними.
Числа аналогічно як логічні значення, літери і посилання відносяться до простих значень. Числові значення в основному діляться на цілі й дійсні і їх діапазон допустимих значень. Логічні значення можуть приймати істина або хибність і служать для того, щоб зафіксувати одне із двох допустимих варіантів чи одне із двох станів деякого об’єкту.
Посилання його значення – це адреси, через які відкривається доступ до деякого другого значення чи об’єкту. Крім позначень, з якими зв’язується конкретне значення мови програмування містять позначення значення яких наперед невідомі. Такі позначення називаються змінними, а в рівні змінних виступають ідентифікатори в ролі яких відображають прості змінні. Крім простих визначаються зміні з індексами. Для позначення останніх можуть використовуватись сталі, змінні чи вирази. Крім цього як правила задаються стандартні сталі такі як число р, число R.
Через форму Бекуса-Наура ідентифікатор можна записати так: <ідентифікатор>::=<буква>І<буква><цифра>І<буква><ідентифікатор >. Змінні з індексами, як правило використовуються для задання масивів, тобто для упорядкованої сукупності елементів, кожен із яких визначається через ім’я і індекс, а для повного задання вказується ще тип.
Під операцією у мові програмування називають дію за допомогою якої одержують певне значення, що називають результатом операції.
Вихідними даними для операції це є операнди (дані). Якщо в операції бере участь один операнд, то операція називається одноміснісноюю. Для того, щоб операнди і операції можна було об’єднувати вводять