Алгоритмічна мова

Алгоритмі́чна мо́ва ― формальна мова для запису алгоритмів, штучна система мовних засобів, що надає достатні виразні можливості для того, щоб з їхньою допомогою можна було задати будь-який алгоритм, виконання якого веде від визначених у певних обмеженнях вихідних даних до шуканого результату.

Історична довідка

У систематичне вживання термін «алгоритмічна мова» уведено в 1958 Г. Боттенбрухом (нар. 1928; Німеччина). Історично поняття алгоритмічної мови сформувалося в 1950-х у процесі становлення комп’ютерного програмування як самостійної наукової дисципліни. Однак витоки цього поняття є в роботах 1930-х С. Кліні, Е. Поста, А. Тюрінга, А. Чорча, А. Маркова щодо уточнення загального математичного поняття алгоритму.

Характеристика

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

«Практичні» алгоритмічні мови ― це мови програмування для комп’ютерів. На ранній стадії розвитку програмування вживалися мови «низького рівня», що враховували структуру або навіть характеристики конкретних обчислювальних машин (систему команд, особливості архітектури та ін.). Потім на зміну їм прийшли «проблемно-орієнтовані» алгоритмічні мови (мови «високого рівня»), які звільнили користувача від необхідності орієнтуватися на машини певного типу і тим самим спрощували розробку програм та підвищували продуктивність праці програмістів. Подальшим розвитком ідеї алгоритмічної мови стала поява мови програмування загальнішого, не обов’язково алгоритмічного характеру. Як і алгоритмічні мови, такі мови також націлені на отримання машинних програм, але в багатьох випадках їхні тексти допускають певну свободу у виконанні і, зазвичай, дають лише матеріал для синтезу шуканих алгоритмів, а не самі ці алгоритми.

Непроцедурні (декларативні) мови дають змогу сконцентрувати увагу розробника на описі цілей і правил, а не на послідовності дій з їхньої реалізації (тобто описано «що робити» замість «як робити»). Розроблено низку графічних та текстових мов для специфікації алгоритмічної та інтерфейсної складових програм та мови специфікації процесів розробки автоматизованих систем. Під специфікацією розуміють точне формальне визначення системи або її частини, під описом ― неформальну специфікацію, що ілюструє той чи той аспект системи. Описи використовують на ранніх етапах розробки системи або для її документування, специфікації ― на стадії детального проектування, і за ними виконують автоматичну генерацію програмного коду.

«Теоретичні» алгоритмічні мови (такі, як мова машин Тюрінга або нормальні алгоритми Маркова) лежать в основі загальної теорії алгоритмів.

Література

  1. Дейкстра Э. Дисциплина программирования. Москва : Мир, 1978. 277 с.
  2. Енциклопедія кібернетики : в 2 т. / Відпов. ред. В. М. Глушков. Київ : Головна редакція української радянської енциклопедії, 1973.
  3. Хопкрофт Д., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. Москва : Вильямс, 2002. 528 с.
  4. Кнут Д. Э. Искусство программирования : в 4 т. Москва : Вильямс, 2002–2013.
  5. Орлов С. А. Теория и практика языков программирования. Санкт-Петербург : Питер, 2013. 688 с.

Автор ВУЕ

Покликання на цю статтю

Покликання на цю статтю: Бойко Б. І. Алгоритмічна мова // Велика українська енциклопедія. URL: https://vue.gov.ua/Алгоритмічна мова (дата звернення: 30.11.2021).

Офіційний телеграм-канал ВУЕОфіційний телеграм-канал ВУЕ