Історія появи мов програмування

Однією з найбільш революційних ідей, що призвели до створення автоматичних цифрових обчислювальних машин, була висловлена в 20-х роках 19 століття Ч.Беббіджем думка про попередній запис порядку дій машини - програмі. З цього моменту починається історія появи мов програмування.

У 20-х роках 19 століття Ч.Беббіджу прийшла думка про попередній запис порядку дій машини – програмі. З цього моменту починається історія появи мов програмування

Революційним моментом історії появи мов програмування стала поява системи кодування машинних команд з допомогою спеціальних символів, запропонованої Джоном Моучлі, співробітником Пенсільванського університету. Система кодування, запропонована Моучлі, захопила одну із співробітниць його компанії – Грейс Мюррей Хоппер, яка присвятила все своє життя комп'ютерам та програмуванню.

Працюючи на комп'ютері "Марк-1" Р. Хоппер та її групі довелося зіштовхнутися з багатьма проблемами. Зокрема, вони вигадали підпрограми.

На зорі історії мов програмування машинний код був єдиним засобом спілкування людини з комп'ютером. Величезним досягненням творців мов програмування було те, що вони зуміли змусити сам комп'ютер працювати перекладачем з цих мов на машинний код.

Наприкінці 40-х років, до приходу Г. Хоппер у фірму Джона Моучлі, останній створив систему під назвою "Short Code", яка була примітивною мовою програмування високого рівня. У ній програміст записував розв'язуване завдання у вигляді математичних формул, а потім, використовуючи спеціальну таблицю, переводив символ за символом, перетворював ці формули на дволітерні коди. Надалі спеціальна програма комп'ютера перетворювала ці коди на двійковий машинний код. Система, розроблена Дж. Моучлі, була по суті одним із перших примітивних інтерпретаторів.

Вже 1951 р. Хоппер створила перший у світі компілятор і нею ж було запроваджено саме цей термін. Компілятор Хопер здійснював функцію об'єднання команд і в ході трансляції проводив організацію підпрограм, виділення пам'яті комп'ютера, перетворення команд високого рівня (тоді псевдокодів) на машинні команди.

Середина 50-х характеризується стрімким прогресом історії мов програмування. Роль програмування у машинних командах стала зменшуватися. Почали з'являтися мови програмування нового типу, які були у ролі посередника між машинами і програмістами. Першою із найпоширеніших був Фортран, розроблений групою програмістів фірми IBM в 1954 р. (перша версія).

У середині 60-х років співробітники математичного факультету Дартмутського коледжу Томас Курц та Джон Кемені створили спеціалізовану мову програмування, яка складалася з простих слів англійської мови. Нову мову назвали BASIC.

На початку 60-х років усі існуючі мови програмування високого рівня можна було перерахувати на пальцях, проте згодом їхня кількість досягла трьох тисяч. Зрозуміло, переважна частина мов не отримала в історії мов програмування скільки-небудь широкого поширення; у практичній діяльності використовується не більше двох десятків. Розробники орієнтували мови програмування на різні класи завдань, тією чи іншою мірою прив'язували їх до конкретних архітектур ЕОМ, реалізовували особисті уподобання та ідеї. У 60-ті роки в історії мов програмування були спроби подолати цю "різноголосицю" шляхом створення універсальної мови програмування. Першим дітищем цього напряму став PL/I (Programm Language One), 1967 р. Потім на цю роль претендував АЛГОЛ-68 (1968 р.). Передбачалося, що подібні мови розвиватимуться і вдосконалюватимуться та витіснять усі інші. Однак жодна з цих спроб на сьогоднішній день не мала успіху. Всеосяжність мови призводила до невиправданої, з погляду програміста, складності конструкцій, неефективності компіляторів.

Наприкінці 1950-х років в історії мов програмування з'явився Алгол (ALGOL, від ALGOrithmic Language – алгоритмічний мову). Алгол призначений для запису алгоритмів, які будуються у вигляді послідовності процедур, що застосовуються на вирішення поставлених завдань.

Розвиток ідеї Алгола про структуризацію розробки алгоритмів знайшло в історії мов програмування найвище відображення при створенні на початку 70-х років мови Паскаль швейцарським ученим Ніклаусом Віртом. Мова Паскаль спочатку розроблялася як навчальна, і, справді, зараз вона є однією з основних мов навчання програмуванню в школах та вишах.

Період з кінця 60-х і до початку 80-х років характеризується в історії мов програмування бурхливим зростанням кількості різних мов, що супроводжувало, хоч як це не парадоксально, кризу програмного забезпечення. Цю кризу особливо гостро переживало військове відомство США. У січні 1975 р. Пентагон вирішив навести лад у хаосі трансляторів і засновує комітет, якому було наказано розробити одну універсальну мову. Переможну мову назвали АДА.

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

Протягом багатьох років програмне забезпечення будувалося на основі операційних та процедурних мов, таких як Фортран, Бейсік, Паскаль, Ада, Сі. Класичне операційне та/або процедурне програмування вимагає від програміста детального опису, як вирішувати завдання, тобто формулювання алгоритму та його спеціального запису. При цьому очікувані властивості результату зазвичай не вказуються. Основні поняття мов цих груп – оператор та дані. При процедурному підході оператори поєднуються у групи – процедури. Структурне програмування загалом виходить поза рамки цього напряму, воно лише додатково фіксує деякі корисні прийоми технології програмування.

Принципово інший напрямок історії мов програмування пов'язаний з методологіями (іноді кажуть "парадигмами") непроцедурного програмування. До них можна віднести об'єктно-орієнтоване та декларативне програмування. Об'єктно-орієнтована мова створює оточення у вигляді багатьох незалежних об'єктів. Кожен об'єкт поводиться подібно до окремого комп'ютера, їх можна використовувати для вирішення завдань як "чорні ящики", не вникаючи у внутрішні механізми їх функціонування. З мов об'єктного програмування, популярних серед професіоналів, слід назвати насамперед Сі++, для ширшого кола програмістів кращі середовища типу Delphi і Visual Basic.

Інструменти