TR | RU | KK | BE | EN |

Теорія програмування

теорія програмування бодрик, теорія програмування циклілічних
Теорія програмування — це категоріальний (поняттєвий) аналіз процесу програмування. Поняття визначаються у єдності їх двох моментів: змісту (інтенсіоналу) та обсягу (екстенсіоналу).

Звідси випливає, що для теорії програмування найважливішим є не конкретна програма, а відношення між програмними поняттями (тобто не стільки предметна, екстенсіональна складова, скільки логічна, інтенсіональна). Тому вміння писати конкретні програми ще не означає розуміти теорію програмування. Тут є аналогія з політикою, бо задача політики є не стільки безпосередня робота з пересічною людиною, скільки вибудова суспільних відносин.

Зміст

  • 1 Формалізація простої мови програмування
    • 1.1 Неформальний опис простої мови програмування
    • 1.2 Приклад
    • 1.3 Формальний опис синтаксису мови SIPL
  • 2 Див. також
    • 2.1 Література

Формалізація простої мови програмування

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

Неформальний опис простої мови програмування

Для посилання на певну мову треба надати їй ім’я. Для імені часто використовують абревіатуру короткої характеристики мови. Зважаючи на традиції використання латинських літер у науковій символіці, утворимо абревіатуру SIPL від характеристики SImple Programming Language (Проста Мова Програмування). Цю абревіатуру можна розшифрувати по-іншому, вказуючи на імперативність або структурованість цієї мови: "SIPL"  – Simple Imperative Programming Language, "SIPL"  – Structured Imperative Programming Language. Говорячи неформально, мова SIPL має числа та змінні цілого типу, над якими будуються арифметичні вирази та умови. Основними операторами є присвоєння, послідовне виконання, розгалуження, цикл. Мова SIPL може розглядатися як надзвичайно спрощена традиційна мова програмування, наприклад, Паскаль. У мові SIPL відсутні складні типи даних, оператори вводу-виводу, процедури та багато інших конструкцій традиційних мов програмування. Також немає явної типізації. Разом із тим ця мова є досить потужною, щоб програмувати різні арифметичні функції, більше того, в цій мові можуть бути запрограмовані всі обчислювані функції над цілими числами. Мета розгляду саме такої мови програмування полягає в тому, щоб формалізація та дослідження цієї мови були якомога простішими.

Приклад

Програма GCD знаходження найбільшого спільного дільника чисел M та N за алгоритмом Евкліда: GCD ≡ begin while ¬M=N do if M>N then M:=M–N else N:=N–M end Тут ¬M=N означає M≠N. Оскільки програми призначені для обчислення результатів за вхідними даними, розглянемо неформально процес виконання цієї програми на вхідних даних, у яких M має значення 8, а N – 16. Вважаємо, що дані записуються в пам’ять, а оператори виконуються деяким процесором. Тому розмітимо програму, відмічаючи оператори мітками: 0: begin 1: while ¬M=N do 2: if M>N then 3: M:=M–N else 4: N:=N–M end Процес виконання програми можна подати у вигляді таблиці, кожний рядок якої вказує на номер виконуваного оператора та на нові значення змінних . Для нашого прикладу така таблиця може мати наступний вигляд.

Мітка Значення умови Значення M Значення N
0 8 16
1 ¬M=N – true
2 M>N – false
4 8
1 ¬M=N – false

Програма припиняє роботу із значеннями M та N, рівними 8. Це число і є найбільшим спільним дільником. Аналізуючи цю програму та процес її виконання, відзначаємо два аспекти: • синтаксичний (текст програми); • семантичний (смисл програми – те, що вона робить). У нашому прикладі ні синтаксис, ні семантика не задані точно (формально). Ми маємо лише інтуїтивне розуміння програм мови SIPL.

Формальний опис синтаксису мови SIPL

Для опису синтаксису мов зазвичай використовують БНФ (Форми Бекуса-Наура). Програми (або їх частини) виводяться із метазмінних (нетерміналів), які записуються у кутових дужках. Метазмінні задають синтаксичні класи. У процесі виводу метазмінні замінюються на праві частини правил, що задають ці метазмінні. Праві частини для однієї метазмінної розділяються знаком альтернативи «|». Процес породження припиняється, якщо всі метазмінні замінено на термінальні символи (тобто символи без кутових дужок). Синтаксис мови SIPL можна задати за допомогою наступної БНФ.

Ліва частина правила – метазмінна (дефінієндум) Права частина правила (дефінієнс) Ім’я пра- вила
<програма> ::= begin <оператор> end NP1
<оператор> ::= <оператор> ; <оператор>| if <умова> then <оператор> else <оператор> | while <умова> do <оператор> |begin <оператор> end | NS1-NS6
<вираз> ::= <змінна> | <вираз> + <вираз> | <вираз> – <вираз> | <вираз> * <вираз> | (<вираз>) NA1– NA6
<умова> ::= <вираз> > <вираз> | <умова> ∨ <умова> | ¬ <умова> | (<умова>) NB1– NB5
<змінна> ::= N|... NV...
<число> ::= 0 | 1 | 2 | 3 | . . . NN...

Наведена БНФ задає мову SIPL як набір речень (слів), які виводяться з метазмінної <програма>.

Див. також

  • Мова програмування

Література

  • Зубенко В.В. Програмування : навчальний посібник (гриф МОН України) / В.В. Зубенко, Л.Л. Омельчук. - К. : ВПЦ "Київський університет", 2011. - 623 c.
  • Нікітченко М.С. Теоретичні основи програмування : навчальний посібник / М.С Нікітченко - Ніжин : Видавництво НДУ імені Миколи Гоголя, 2010. - 121с.


Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.

теорія програмування бодрик, теорія програмування масивів, теорія програмування мікроконтролерів, теорія програмування циклілічних


Теорія програмування Інформацію Про

Теорія програмування


  • user icon

    Теорія програмування beatiful post thanks!

    29.10.2014


Теорія програмування
Теорія програмування
Теорія програмування Ви переглядаєте суб єкт.
Теорія програмування що, Теорія програмування хто, Теорія програмування опис

There are excerpts from wikipedia on this article and video

Випадкові Статті

Літера

Літера

Літера, іноді буква (від лат. litera) — графічний знак, який сам, або в поєднанні з іншими знак...
Гриневич

Гриневич

Грине́вич — прізвище Відомі носії: Гриневич Валерій Іванович — полковник Збройних сил Укр...
Верхівцевський навчально-виховний комплекс

Верхівцевський навчально-виховний комплекс

КЗ «Верхівцевський НВК» — загальноосвітня школа в місті Верхівцеве Зміст 1 Історія 11 Приміщен...
Ніл Тейлор

Ніл Тейлор

* Ігри та голи за професіональні клуби враховуються лише в національному чемпіонаті. Інформацію поно...