Інформатика

Класифікація мов програмування

Мови програмування високого і низького рівнів. Програми для перших ЕОМ складалися машинною мовою, вельми далекою від понять, якими оперує людина.
Алфавіт машинної мови складається тільки з двох символів {0, 1}. Для складання програм на такій мові була потрібна досить висока кваліфікація. Програмісти, зацікавлені в полегшенні своєї праці, і виробники ЕОМ зацікавлені в розширенні ринку, стали шукати вихід. Першим кроком на шляху створення мов, що містять поняття, близькі поняттям людини, стали мови, що перекладають символічні імена в машинні коди (асемблер).
До мов програмування низького рівня належать мови асемблера — машинно-залежні мови, що описують дії в термінах команд процесора. Для кожного типу процесора існує своя мова асемблера, тому для перенесення програми на асемблері на іншу апаратну платформу її потрібно майже повністю переписати.
Пізніше були створені програми, що транслюють арифметичні вирази (автокоди), і, нарешті, у 1958 році вступив у дію транслятор Фортрана — першої мови високого рівня (МВР). Мови високого рівня наближені до природних понять. Ці мови є машинно-незалежними. Із розвитком і поширенням комп’ютерів намітився двоякий процес: поява спеціальних (Пролог) та універсальних (Паскаль, Сі) мов.
Процедурні і непроцедурні мови. Програма, написана процедурною мовою, описує, як розв’язувати, використовуючи при цьому такі основні поняття, як слідування, розгалуження, цикл. Програма, написана непроцедурною мовою, описує, що робити, використовуючи такі поняття, як підстановка, галуження, рекурсія.
Системи програмування. Для зручності створення програм створюються інтегровані середовища програмування — системи, які об’єднують редактор текстів програм, транслятор, налагоджувач (наприклад Turbo Pascal, Turbo С, Turbo Basic). Отримали поширення системи візуального програмування — засоби, за допомогою яких можна швидко створювати програми шляхом візуального проектування макета в графічному вигляді (наприклад, Visual Basic, Visual С, Delphi).

Поняття про мови програмування

Мова — це система знаків (символів, жестів, міміки, положень перемикача і т. д.) для представлення, обміну інформацією. Це загальне визначення включає в себе і природні, і штучні (формальні) мови. До штучних мов належать мови, створені людьми для розв’язання специфічних задач. Це мова математичних формул, нотна грамота, мови програмування тощо.
Алгоритмічна мова — це мова, призначена для представлення алгоритму у вигляді послідовності вказівок для виконання їх виконавцем алгоритму.
Алгоритмічна мова, як і кожна інша, має свій словник. Основу цього словника складають слова, що використовуються для запису команд, які входять у систему команд виконавця.
Мови програмування — це алгоритмічні мови, призначені для опису алгоритмів, що орієнтовані для виконання на комп’ютері, або система позначень для точного опису алгоритму, який треба виконати за допомогою комп’ютера.
Мова програмування, як і будь-яка інша мова, являє собою набір символів (алфавіт), систему правил складання базових конструкцій мови (синтаксис) та правила тлумачення мовних конструкцій (семантика). Ця система позначень і правил призначена для одноманітного і точного запису алгоритму. Алфавіт, синтаксис і семантика — три основні складові мов програмування.
Програма — це алгоритм, записаний мовою програмування.
Трансляція (від англ. translation — переклад) — програма, яка перетворює команди мови програмування на машинну мову. Існує два способи трансляції: інтерпретація та компіляція.
Інтерпретація (від англ. interpretation) — спосіб трансляції, при якому кожна інструкція програми перекладається в машинні коди та виконується, і тільки після виконання одного фрагмента програми процесор переходить до обробки іншого фрагмента. Це гнучка система перекладу, яка реалізовується нескладно. Вона використовується в тих випадках, коли потрібна простота трансляції (Basic), або там, де інший спосіб перекладу дуже складний або навіть неможливий (Lisp).
Компіляція (від англ. compile — збирати) — спосіб трансляції, при якому здійснюється переклад усього тексту програми, збір перед її виконанням та запис у пам’ять комп’ютера.
При перегляді програми компілятор виділяє місце в пам’яті для кожної змінної.

Структурний підхід до проектування алгоритмів

Поняття про структурний підхід. Для розробки алгоритму складних задач використовується принцип структурного проектування алгоритмів.
Структурний підхід до створення алгоритмів — це метод розробки алгоритму, який забезпечує легкість читання алгоритму, простоту перевірки правильності виконання алгоритму, зручність у його модифікації. Цей метод передбачає:
• конструювання алгоритму з використанням трьох базових алгоритмічних структур;
• використання методу покрокової деталізації, тобто подрібнення задачі на більш прості задачі, потім подрібнення цих задач на ще більш прості складові й т. д. (розробка алгоритму «зверху вниз»);
• аналіз алгоритму, тобто контроль правильності кожної структури алгоритму і взаємозв’язків структур.
Перевагою структурного підходу є його модульність. Модуль — це послідовність логічно пов’язаних команд, яка оформлена у вигляді окремого алгоритму. Ці допоміжні алгоритми можна конструювати й аналізувати окремо та незалежно, використовуючи їх потім в основ­ному алгоритмі або інших допоміжних алгоритмах.
Структурний підхід привів до ідеї розподілу роботи серед розробників алгоритмів. Структурний підхід застосовується при використанні процедурних мов програмування.
Метод покрокової деталізації. Для створення алгоритму складної задачі застосовується метод покрокової деталізації («проектування зверху вниз»). При цьому методі складна задача розбивається на декілька простих. Ці задачі, у свою чергу, можуть розбиватися на серію ще простіших і т. д. Процес покрокової деталізації вважається закінченим, коли задачі чергового рівня стають досить простими для незалежного розв’язання. Потім результати проектування простих задач компонуються в загальний алгоритм.
Допоміжні алгоритми. При структуруванні алгоритму виникає необхідність у розв’язанні додаткових завдань. Назвемо алгоритм для виконання основної задачі основним алгоритмом. Тоді алгоритм для розв’язання допоміжної задачі, виділеної в окрему структуру, назвемо допоміжним алгоритмом. Цей алгоритм призначений для досягнення допоміжної мети на шляху розв’язання основної задачі. Один і той самий допоміжний алгоритм може бути використаний і в основному, і в іншому допоміжному алгоритмі.
Кожний допоміжний алгоритм має своє унікальне ім’я, за яким його можна розпізнати серед інших допоміжних алгоритмів і на це ім’я викликати його з іншого алгоритму за допомогою команди виклику допоміжного алгоритму.
Виконання допоміжного алгоритму з по­трібними початковими даними та/або передавання результатів в основний алгоритм здійснюється за допомогою параметрів алгоритму.
Параметри, які необхідно вказати перед початком роботи допоміжного алгоритму, називаються аргументами алгоритму. Ці параметри дають можливість змінити вхідні дані перед початком роботи допоміжного алгоритму.
Параметри, значення яких визначаються внаслідок роботи алгоритму, називаються результатами алгоритму. Допоміжний алгоритм може зовсім не мати параметрів або мати якийсь один тип параметрів. Параметри, які використовуються для опису вхідних і вихідних даних алгоритму, називаються формальними. Формальні параметри складають список формальних параметрів.
При конкретному виконанні допоміжного алгоритму формальні параметри замінюються на фактичні, тобто при виклику допоміжного алгоритму потрібно вказати фактичні параметри алгоритму.
Результатом виконання деякого допоміжного алгоритму може бути одна або декілька результуючих величин, які містяться в списку параметрів, або деяка дія (наприклад виведення звуку) без результуючої величини. Такі допоміжні алгоритми називаються алгоритмами-процедурами.
Алгоритми-функції — це допоміжні алгоритми, які виконують деякі дії, результатом виконання яких є один-єдиний результат, що присвоюється безпосередньо імені функції. Ім’я функції використовується в командах як ім’я звичайної змінної або константи.
Алгоритми-процедури і алгоритми-функції забезпечують можливість практичної реалізації методу структурного програмування.
Виклик допоміжного алгоритму має різний вигляд у разі виклику алгоритму-функції чи алгоритму-процедури:
• виклик допоміжного алгоритму-процедури здійснюється за допомогою спеціальної команди;
• виклик алгоритму-функції здійснюється безпосередньою вказівкою імені функції з фактичними аргументами в деякому виразі.
Виконання цих команд відбувається так:
• формальні аргументи допоміжного алгоритму замінюються фактичними значеннями, указаними в команді виклику алгоритму в списку фактичних параметрів; якщо в списку фактичних аргументів присутні вирази — вони спочатку обчислюються;
• виконуються всі команди допоміжного алгоритму з використанням фактичних аргументів;
• отримані результати присвоюються фактичним іменам результатів (іменам фактичних змінних, які використовуються як фактичні результати в алгоритмах-процедурах або імені самого алгоритму-функції).
Після виконання допоміжного алгоритму виконується команда основного алгоритму, записана після команди виклику допоміжного алгоритму.