- •Життєвий цикл програмного забезпечення. Характеристика стадій життєвого циклу програмного забезпечення.
- •Основні поняття та підрозділи програмування.
- •Підходи щодо потрібних знань для програмування. Класи інструментальних засобів для мов програмування.
- •Платформи програмування. Архітектури обчислювальних систем.
- •Транслятор. Види трансляторів.
- •7. Трансляція програмного коду. Етапи та фази.
- •8. Регулярні вирази: призначення і галузі застосування.
- •9. Методології і парадигми програмування. Моделі, що зумовили розвиток методологій.
- •10. Класифікація методологій програмування.
- •11. Ядра методологій програмування.
- •12. Топологічна специфіка методологій програмування.
- •13. Реалізаційна специфіка методологій програмування.
- •14. Генеалогія мов програмування
- •15. Особливості імперативних та об’єктно-орієнтованих мов програмування.
- •16. Особливості функціональних і логічних мов програмування.
- •17. Шаблонізатори: принцип застосування і призначення при створенні програмного забезпечення.
- •18. Основні поняття технології програмування.
- •19. Класичні технологічні процеси.
- •20 Перелічім, стандартні технологічні процеси створення Пз
- •22 Основні технологічні підходи поділяють на такі групи:
- •23 Технологія асинхронного обміну повідомленнями у клієнт-серверній архітектурі.
- •24 Поняття Стиль в програмуванні
- •25 Колективна розробка пз
- •Тестирование «черного ящика»
- •Тестирование «белого ящика»
- •45. Основні поняття розподілених обчислень.
- •46. Поняття про паралельне програмування.
- •47. Закон Амдала для розподілених систем та його наслідки.
- •48. Класифікація паралельних комп’ютерів і систем. Класифікація Шора
- •49. Принципи побудови паралельних обчислювальних систем. Обчислювальні мережі окремий випадок розподілених систем
- •Мультипроцесорні комп'ютери
- •Багатомашинні системи
- •Обчислювальні мережі
- •50. Концепція Grid.
-
Основні поняття та підрозділи програмування.
Інформатика - наука, що вивчає закони і методи накопичення, передачі та обробки інформації за допомогою комп'ютера.
Програмування - розділ інформатики, що вивчає опис процесів обробки даних. У програмуванні чітко виділяються такі підрозділи.
Теоретичне програмування, об'єктом вивчення якого є математичні абстракції програм. Був запропонований операторний метод програмування, в якому вперше була зроблена формалізація поняття програми і поставлена проблема розробки еквівалентних перетворень програм. В якості об'єктів, на яких можна будувати еквівалентні перетворення, були введені схеми програм, що зберігають керуючу структуру програм і відволікають від детального опису операторів та логічних умов. Окремим напрямком у теорії схем програм стала теорія алгебраїчних моделей програм.
Основи програмування, які включають концепції та навички, які важливі для практики програмування як фундаментальних основ:
• структури даних, їх подання в пам'яті комп'ютера;
• інформаційний пошук, упорядкування лінійних масивів і файлів;
• формальні мови, граматики, автомати й інші абстрактні машини;
• синтаксичний аналіз програм;
• оцінку трудомісткості і теорію складності алгоритмів;
• специфікацію завдань, доказ властивостей програм, автоматичний синтез програм;
• семантику мов програмування.
Методологія програмування, вивчає методи з точки зору основ
побудови. Це об'єднана єдиним філософським підходом сукупність методів, що застосовуються в процесі розробки програмного забезпечення.
Технологія програмування вивчає технологічні процеси та порядок їх проходження (з використанням знань, методів і засобів).
Інструментальний напрямок, що вивчає системи програмування. Сюди входять всі інструменти, що підтримують процес програмування.
-
Підходи щодо потрібних знань для програмування. Класи інструментальних засобів для мов програмування.
-
Платформи програмування. Архітектури обчислювальних систем.
Існує підхід, який називається багаторівневою комп’ютерною організацією. Завдяки побудові ряду рівнів абстракції, кожна з яких надбудовується над абстракцією нижчого рівня, підхід дозволяє вирішити складності, які виникають підчас спілкування з комп’ютером. В результаті, в найпростішому випадку виникає трьохрівнева організація ЕОМ, яка складається з апаратного, операційного та мовного рівнів.
Платформа - видимі програмісту засоби підтримки програмного продукту кожним з цих рівнів абстракції. Визначають такі типи платформ.
Апаратна платформа - тип апаратної архітектури, на якому може бути встановлений програмний продукт. Найбільш відомі апаратні платформи на сімействах процесорів Intel, HP і Power.
Операційна платформа - тип операційної системи і системного інтерфейсу, з яким може працювати програмний продукт. Найбільш відомі операційні платформи: DOS, Windows і Unix. Мережева платформа зазвичай входить до складу операційної платформи і є мережевий інтерфейс операційної платформи. Частиною операційної платформи є бібліотеки, що поставляються з операційною системою, для роботи з якими використовується інтерфейс прикладного програміста.
Мовна платформа - мова програмування і інтерфейс прикладного програмування (бібліотеки), на якому може бути реалізований програмний продукт. Найбільш відомі мовні платформи: C, C + +, Java.
Форма Бекуса-Наура. Призначення та приклади застосування.
Форма Бекуса-Наура (БНФ) була вперше застосована при описі Алголу-60.
БНФ збігається по суті з нотацією КС-граматик, відрізняючись лише позначеннями. Передбачені наступні метасимволи:
<> - Служать для виділення нетерміналів - понять мови.
| - «Або». Розділяє альтернативні праві частини правил.
::= - «Є за визначенням». Замінює стрілку, яка використовується при записі продукції КС-граматик.
Термінальні символи записуються як є, ніяких спеціальних способів їх виділення не передбачено.
Ось приклад визначень на БНФ, узятий із специфікації Алголу-60 «модифікованого повідомлення»:
<простий арифметичний вираз> :: *=
<Терм> | <знак операції типу додавання> <терм> |
<Простий арифметичний вираз>
<Знак операції типу додавання> <терм>
<Знак операції типу додавання> :: = + | -
Як бачимо, для вираження повторень використовується рекурсія, причому повсюдно - ліва.
БНФ використана Н. Віртом при описі мови Паскаль. Хоча в нотацію були додані метадужки {і}, що позначають повторення, застосовані вони лише
в окремих випадках, в той час як, наприклад, граматика виразів ліворекурсивна.
Іншими словами, БНФ призначена формалізувати синтаксис та семантику мов програмування.