вводять поняття виразу, які в залежності від операції і операндів можуть бути арифметичними і логічними. <оператор>::=+I-I*I/,…,
Тоді вводять простий арифметичний вираз, поділяючи операції на ранги:
<операція 1 рангу>::=<обчислення ф-ї>;
<операція 2 рангу>::=<піднесення до степеня>;
<арифметичний вираз>::=<простий арифметичний вираз>І<арифметичний вираз >I<…
4. Форми Бекуса-Наура, опис процедур, функцій та операторів.
Форма Бекуса-Наура – це рядок, який складається із метазмінної символа ::=, що за нею слідує і однієї чи декількох послідовностей, утворених із основних символів і мета змінних.
Даний символ читається по визначенню є, або це є. Якщо послідовностей більше як одна, то вони розділяються між собою вертикальною рискою І, яка означає “або”.
Оператори є основними структурними одиницями програми і кожна мова містить свій набір операндів, які ділять на біль широкому понятті на дві групи, а саме:
виконуючі,
невиконуючі.
Виконуючі – це ті, які пов’язані із перетворенням даних їх введенням, перевіркою умов, визначення чергового, що підлягають виконанню оператора тощо.
Невиконуючі – призначені для опису характеристик даних способів їх організації, класифікації програмних одиниць тощо. Як правило вирізняють три типи операторних конструкцій, зокрема:
- слідування (початок S1,S2,…,Sn кін.)
- вибір (якщо вик. то S1 інакше S2)
- повторення (поки Q виконується S).
В кожну з таких операторних конструкцій в свою чергу може бути входити інші конструкції або можуть бути оператором.
Кожен оператор має свій синтаксис. Наприклад <оператор присвоєння>::=<ліва часина><вираз>, де під <лівою змінною> розуміють змінну.
Процедури і функції.
Процедура – це утворений модуль, який складається із сукупності чи одного оператора, ідентифікатори яких визначають формальні параметри та описові частини.
При входження в процедуру формальні параметри отримують відповідні значення фактичних параметрів і тоді такий спосіб називається викликом параметрів по значенню, або отримують значення, тобто залишаються даними аргументами і спосіб називається викликом параметрів по найменування.
Відповідно найкоротший опис процедури такий:
<процедура>::=<загальна процедура> <оператор>
Крім даних конструкцій програма може містити коментарії, тобто певні пояснювальні тексти, які не впливають на програму.
<коментарій >::=<текст> I <порожньо>
Операнди, операції, вирази, оператори, процедури та функції являють собою основи конструкції мови програмування.
5. Вимоги до мов програмування та програмних модулів.
Основними вимогами, які ставляться до мов програмування є:
наточність – використання загальноприйнятих і загальновживаних математичних символів та інших засобів зрозумілих людині
єдність – кількість зображувальних засобів не повинна завеликою. Одні й ті самі засоби повинні застосовуватись при описі однакових або споріднених понять, як одних так різних описах, як алгоритму так і програми.
гнучкість – будь-який метод обчислювальної математики повинен зберігати свій зміст і описуватись без зайвих ускладнень.
багато ступінчастість – можливість опису будь-якого складного алгоритму у вигляді певної сукупності у вигляді біль простих, які у свою чергу можуть описуватись через ще більш прості алгоритми.
однозначність, тобто алгоритм повинен трактувати однозначно, будь-яким виконавцем, для цього повинна бути однозначна відповідність між текстами та змістами.
незалежність від конкретних особливостей ЕОМ для яких створюється програма.
подільність означає розбиття алгоритму чи програми на окремі модулі, які не перетинаються і максимально незалежні однин від одного. Кожен з таких модулів повинен мати чітке призначення і вони містять засоби опрацювання певного типу. При створюванні модулів на них накладаються ряд вимог:
кожен модуль повинен мати один вхід і один вихід. Відповідно не припустимим є звернення тільки до частини модуля.
Модулі по можливості не повинні бути великими.
Чітко повинні бути вказані зв’язки між модулями та основною програмою.
модулі можна організувати так, щоб вони викликали один одного, або створюється так звана управлінська програма, яка забезпечує послідовність виклику модуля.
при зверненні модулів однин до одного кожен із них повинен викликати тільки модулі наступного рівня: тобто небажане звернення до елементів чи модуля більш низького рівня.
внутрішня організація мов, та внутрішнє використання ним інформації формується програмістом і ніяких обмежень не ставиться.
при побудові мов бажано, щоб однин не коригував текст іншого модуля
При організації наступних мов можна організувати зв’язки так, щоб декілька мов використовували елементи інших мов, областей даних, пам’яті, пристроїв тощо.
бажано, щоб зміни в одному модулі як змога менше вимагали змін
інших модулів.
кожен модуль повинен бути самовідновлюваним, тобто результат не повинен залежати від кількості звернень від нього, та способів використання.
6. Загальні правила оформлення програм. Програмні інтерфейси та інструментальні засоби розробки програм.
Загальні правила оформлення програм.
Якщо програма складається із мов, то крім його назви бажано писати коротку характеристику призначення тобто змісту.
Кожний оператор бажано писати з нового рядка.
Кожну внутрішню структуру оператора записувати з однаковим зміщенням, з зсувом.
Якщо оператор не поміщається в одному рядку, тобто продовження в наступному варто починати на рівні його початкового засобу.
Для кожного змістовного оператора варто писати коментарії, якщо коментар не поміщається в одному рядку продовження коментарія не бажано писати (коментатори) інші оператори.
При виборі імен ідентифікатора повинно враховувати синтаксис мови, але продумувати зміст вибраного ідентифікатора.
Між окремими блоками (змістовними частинами) програми бажано залишати порожні рядки.
Супроводження вимагає.
Супровід вимагає:
виправлення помилок, які вимагають в ході експлуатації програми.
удосконалення програми з метою зменшення їх обсягу чи збільшення швидкодії.
організація зв’язку розробленого програмного засобу з іншими програмними засобами.
адаптація програми до іншої обчислювальної системи при її зміні користувачем.
корегування програми з метою полегшення її використання користувачем.
Програмні інтерфейси та інструментальні засоби розробки програм.
При побудові програмних мов використовують таке поняття як інтерфейс модуля, при цьому розрізняють статистичний та динамічний.
Статистичний містить текстуальні властивості модуля, явно описуються мовою програмування і обов’язково присутні у програмному модулі.
Динамічний мітить характеристики поведінки модуля, під час його виконання його не можна явно описати мовою програмування і перевірити за допомогою компілятора. Тому для його модуля використовують позамовні засоби, які дозволяють