процес складання впорядкованої послідовності дій (програми (Див. Програма)) для ЕОМ; наукова дисципліна, що вивчає програми для ЕОМ і способи їх складання, перевірки і поліпшення.
Кожна ЕОМ є автоматом, що складається з пам'яті, утвореною зовнішнім і оперативним пристроями, що запам'ятовують, пристрої управління (УУ) і арифметичні пристрої (АУ), в якому можуть виконуватися деякі дії або операції. Пам'ять має вигляд занумерованих послідовності осередків, у кожній з яких зберігається порція двійкової інформації у вигляді серії нулів і одиниць. Автоматична робота ЕОМ, керована програмою, складається з послідовності тактів. На кожному такті УУ вибирає з запропонованої йому елементу пам'яті порцію інформації. Ця порція трактується як команда, т. Е. Припис АУ виконати деяку операцію. Зазвичай в ЕОМ виконання операції полягає в тому, щоб з певних осередків пам'яті взяти зберігається там інформацію, передати її в АУ для виконання над нею потрібного дії, результат якого відправити в зазначену осередок пам'яті, і повідомити УУ номер осередку наступної команди. Окремі дії, що здійснюються ЕОМ, дуже прості - це арифметичні і логічні операції, операції порівняння, переписування порції інформації і т.п. Т. о. скласти програму для ЕОМ - це значить уявити спосіб вирішення завдання у вигляді такої сукупності машинних команд (програми), щоб вони, будучи розміщеними в пам'яті, по черзі виконуючись і викликаючи одна іншу, реалізували потрібні обчислення.
Ідея П. виникає ще в школі при складанні «плану рішення» арифметичної задачі у вигляді серії запитань. Істотна відмінність реального П. від шкільного досвіду полягає в тому, що програма, як правило, задає не одну, а кілька послідовностей дій (розгалужень), вибір між якими залежить від значення проміжних результатів рішення задачі; виконує деякі групи команд багаторазово, автоматично визначаючи необхідну кількість повторень; може запропонованим чином сама себе міняти або частково формувати в процесі свого виконання.
Додатковою особливістю П. є його трудність: розміри багатьох реальних програм обчислюються тисячами команд, а кількість виконуваних ними дій - десятками мільйонів. Такі обсяги в поєднанні з елементарним характером машинних команд роблять П. одночасно і дуже складним, і дуже монотонним процесом.
Для подолання цього протиріччя П. доданий характер багатоетапного процесу, кожен етап якого є поступова конкретизація і деталізація плану рішення задачі, отриманого на попередньому етапі. Крім того, якщо правила опису плану рішення задачі на деякому етапі будуть точними, формальними і універсальними, т. Е. Які застосовуються до будь-якого завдання, то тоді можна говорити про існування деякої мови П. використовуваного при складанні програми.
Мови програмування (Див. Мова програмування) як спосіб точного формулювання завдання на різних етапах підготовки її до рішення на ЕОМ зіграли фундаментальну роль в розвитку П. Зокрема, вони дозволяють трактувати П. як процес переведення завдання для ЕОМ, вираженого в деякій мові, на іншу мову - «мову машини». Якщо знайти і описати точні правила такого переведення, то ці правила, в свою чергу, можна запрограмувати на ЕОМ. Отримані програми, що автоматизують процес П. називають трансляторами.
Процес П. зазвичай складається з наступних етапів:
Вихідна формулювання. Треба знайти коріння 50 квадратних рівнянь виду ax 2 + bx + c = 0, коефіцієнти яких задані у вигляді трьох таблиць Ai. Bi і Ci (i = 1. 50).
Алгоритмічне опис завдання виходить в результаті повного математичного дослідження її постановки, вибору стандартних або пошуку нових алгоритмів виконання всіх потрібних обчислень, а також уточнення, які вихідні дані треба ввести в ЕОМ і які результати треба отримати. В даному випадку алгоритмічний опис може мати такий вигляд: ввести в ЕОМ таблиці коефіцієнтів Ai. Bi і Ci. вирішити кожне рівняння по загальній формулі
з дослідженням дискримінанту b 2 - 4ac для визначення випадку комплексних коренів; для одноманітності кожен корінь рівняння видавати як комплексне число x = u + iv. вважаючи в разі речових коренів уявну частину рівною нулю.
Мова П. високого рівня - головний засіб складання програм для ЕОМ. Загальна особливість цих мов - їх незалежність від системи команд конкретних ЕОМ і фразова структура, що в поєднанні з використанням т. Н. службових слів наближає їх до природних мов. Фрази розділяються зазвичай крапкою з комою; підпорядкованість фраз вказується за допомогою «операторних дужок» почало і кінець; фрази діляться на два типи - оператори та опису. Оператор є одиницею дії в мові. Розрізняють такі їх типи: оператори присвоювання, що виробляють підрахунок за вказаною формулою і привласнюють обчислене значення заданої змінної величини; умовні оператори, які в залежності від результату перевірки заданого умови виробляють вибір одного або іншої гілки обчислень; оператори циклу, що забезпечують повторне виконання групи операторів. В описах вказуються властивості змінних величин і інших позначень, які використовуються в програмі. Важливою властивістю є «процедурний» характер мови: для будь-якої вже складеної програми, вирішальної деяку приватну завдання, можна ввести символічне функціональне позначення. Текст цієї програми разом з її позначенням називається описом процедури або підпрограмою. Тоді при складанні нової програми усюди, де може знадобитися використання цієї описаної процедури, досить згадати її функціональне позначення у вигляді оператора процедури замість переписування повного тексту підпрограми.
У 70-х рр. 20 в. існує ціле сімейство таких мов П. алгол-60, фортран для вирішення інженерних і наукових завдань, кобол для економічних розрахунків, симула для П. математичних моделей, потужніші мови алгол-68 і ПЛ / 1, що охоплюють всі види застосувань ЕОМ. Для всіх з них існують транслятори, що забезпечують автоматичне побудова машинних програм для завдань, виражених в цих мовах.
Програма вирішення квадратного рівняння, записана на мові алгол-60 (адаптованому):
початок речові масиви А, В, С [1: 50];
для i: = крок 1 до 50 цикл
початок υ 1: = корінь
Машинно-орієнтована мова представляє програми в термінах команд ЕОМ, але виражених в зручнішою для вживання символіці, ніж пряме двійкове подання. Він використовується на проміжному етапі процесу автоматичної трансляції з мови більш високого рівня або ж як мова П. коли програма по суті відразу повинна бути сконструйована в термінах машинних команд. В останньому випадку роль мови високого рівня часто грає мову блок-схем, коли структура програми, т. Е. Послідовність виконання її «блоків», наявність розгалуження і повторюваних ділянок показуються в графічній формі, а функції кожного блоку записуються в довільній текстовій формі. Нижче слідує приклад блок-схеми рішення квадратного рівняння:
Після складання програми невід'ємним етапом П. є «налагодження» програми, т. Е. Виявлення і виправлення помилок, що допускаються при П. Основний засіб налагодження - т. Зв. налагоджувальні запуски, коли в програму додаються додаткові «вимірювальні» дії, що дозволяють по ходу виконання програми на ЕОМ видавати «протокол» її роботи (порядок виконання команд, значення проміжних результатів і т.п.). Дослідження протоколу дозволяє судити про те, в якій мірі програма відповідає задуму програміста.
Розвиток П. як науки почалося з 1947 в роботах американських математиків Дж. Неймана, А. Беркса і Г. Голдстайна, які описали принципи ЕОМ, керованої програмою, що зберігається в пам'яті. Вони ж ввели у вжиток блок-схеми програми. Поняття підпрограми і методики її використання було введено в 1951 англійськими вченими М. Уилксом, Дж. Уілер і С. Гиллом. Радянський математик А. А. Ляпунов, першим в СРСР що прочитав в МГУ в 1952 курс П. визначив П. як багатоетапний процес і ввів в П. апарат символічних позначень, що з'явився передвісником мов П. високого рівня. Ідея автоматизації програмування (Див. Автоматизація програмування) шляхом трансляції програми, записаної на мові П. була реалізована в США Дж. У. Бейкусом (мова фортран) і Г. Хоппер і в СРСР С. С. Каминіним, Е. З. Любимським, М. Р. Шура-Бурою і А. П. Єршовим (1954-56). До 1960 в США була розроблена мова кобол і міжнародна мова П. алгол-60 (групою вчених з 6 країн). У 60-і рр. розвиток П. йшов по шляху вдосконалення і універсалізації мов П. знайшли своє втілення в мовах алгол-68, ПЛ / 1 і симула, розробки методів формального і строгого опису мов П. розвитку теорії і техніки побудови трансляторів, створення бібліотек стандартних підпрограм. Особливий розвиток отримали машинно-орієнтовані мови П. в напрямку об'єднання низки ознак мов високого рівня (процедурность, фразова структура) з адаптованість до особливостей конкретної ЕОМ. Для деяких класів задач зроблені успішні спроби розширити сферу застосування автоматизації П. шляхом формалізації способів алгоритмічного опису завдання або навіть її вихідної формулювання. Це призвело до понять проблемно-орієнтованих мов П. неалгоритмічних мов П. і т.п.
Літ .: Лавров С. С. Введення в програмування, М. 1973: його ж, Універсальна мова програмування. (АЛГОЛ 60), 3 вид. М. 1972; Жоголєв Е. А. Трифонов Н. П. Курс програмування, 3 вид. М. 1971; Джермейн К. Б. Програмування на 1ВМ / 360, пров. з англ. 2 изд. М. 1973; Стеблі Д. Логічне програмування в системі 360, пер. з англ. М. 1974.
Мал. до ст. Програмування.
Велика Радянська Енциклопедія. - М. Радянська енциклопедія. 1969-1978.
Дивитися що таке "Програмування" в інших словниках:
Програмування - процес підготовки завдань для їх вирішення за допомогою комп'ютера; ітераційний процес складання програм. За англійськи: Programming Див. Також: Програмування Життєвий цикл програмного забезпечення Комп'ютерні програми Фінансовий словник Фінам ... Фінансовий словник
ПРОГРАМУВАННЯ - програмування, див. КОМПЬЮТЕРНОЕ програмування ... Науково-технічний енциклопедичний словник
ПРОГРАМУВАННЯ - 1) процес складання програми, плану дій. 2) Розділ інформатики, що вивчає методи і прийоми складання програм. З часткою умовності П. як дисципліна поділяється на: теоретичне, що вивчає матем. абстракції програм (як об'єктів з ... ... Фізична енциклопедія
програмування - кодування (на (машинному, мишачі) мовою) Словник російських синонімів. програмування ім. кол під синонімів: 9 • автопрограмування (1) ... Словник синонімів
програмування - я, порівн. programmer.1. Розділ обчислювальної математики і техніки, пов'язаний з експлуатацією електронних машин, з автоматичним програмним управлінням; складанням програм 10. БАС 1. 2. Дія по знач. гл. програмувати. Програмування ... ... Історичний словник галліцізмов російської мови
ПРОГРАМУВАННЯ - Процес і мистецтво створення комп'ютерних програм і / або програмного забезпечення за допомогою мов програмування. Програмування поєднує в собі елементи мистецтва, фундаментальних наук (перш за все інформатика і математика), інженерії, ... ... Словник бізнес-термінів
ПРОГРАМУВАННЯ - програмування, 1) процес підготовки програми електронної обчислювальної машини (розробка програми відповідно до алгоритму розв'язання задачі, її написання на мові програмування і налагодження). Здійснюється програмістом або ... ... Сучасна енциклопедія
ПРОГРАМУВАННЯ - процес підготовки завдань для вирішення їх на ЕОМ, що складається з наступних етапів: складання плану виконання завдання у вигляді набору операцій (алгоритмічний опис завдання); опис плану рішення на мові програмування (складання програми); ... ... Великий Енциклопедичний словник
ПРОГРАМУВАННЯ - особлива форма організації проблемного мислення і діяльності, що передбачає складання програми; П. форма зв'язування ідеальної і соціокультурної дійсностей, своєрідний спосіб переходу з однієї в іншу. Оскільки програма повинна ... ... Новітній філософський словник