Програмування - це мистецтво створювати програмні продукти, які написані на мові програмування.
Мови програмування - це штучні мови з обмеженим числом слів, значення яких зрозумілі транслятору, і дуже строгими правилами запису команд (операторів). За допомогою мов програмування створюється текст програми.
В даний час в світі існує кілька сотень реально використовуваних мов програмування.
Програма - упорядкована послідовність команд, необхідних для управління комп'ютером. Ці команди надходять на процесор як сукупність нулів та одиниць, тобто числами.
Одним з найважливіших ознак класифікації мов програмування є їх приналежність до одного із стилів, основними з яких є наступні: процедурний, функціональний, логічний і об'єктно-орієнтований.
Процедурне (імперативне) програмування є відображенням архітектури традиційних ЕОМ, яка була запропонована Дж. Фон Нейманом в 40-х роках минулого століття.
Програма на процедурному мовою програмування складається з послідовності операторів, які задають процедуру вирішення завдання. Основним є оператор присвоювання, службовець для зміни вмісту областей пам'яті. Концепція пам'яті як сховища значень. вміст якого може оновлюватися операторами програми, є фундаментальною в імперативний програмуванні.
Виконання програми зводиться до послідовного виконання операторів з метою перетворення вихідного стану пам'яті, тобто значень вихідних даних, в заключне, тобто в результати. Таким чином, з точки зору програміста є програма і пам'ять, причому перша послідовно оновлює останню.
Процедурні мови характеризуються такими особливостями:
· Необхідністю явного управління пам'ять, зокрема, описом змінних;
· Малої придатністю для символьних обчислень;
· Відсутністю суворої математичної основи;
· Високою ефективністю реалізації на традиційних ЕОМ.
Одним з найважливіших класифікаційних ознак процедурного мови є його рівень. Рівень мови програмування визначається семантикою (смисловий) ємністю його конструкцій і ступенем його орієнтації на програміста. Чим більше мова орієнтований на людину, тим вище його рівень. Класифікація процедурних мов програмування в порядку зростання їх рівня.
Подвійна мова є безпосередньо машинним мовою. Машинна мова є внутрішнім мовою ЕОМ і являє собою систему інструкцій і даних, які не вимагають трансляції та можуть безпосередньо інтерпретуватися і виконуватися апаратними засобами ЕОМ (див. Рис.7). В даний час такі мови програмістами практично не застосовуються.
![Мови програмування (програмування) Мови програмування](https://images-on-off.com/images/123/yazikiprogrammirovaniya-e2f04a93.png)
Мал. 7 Фрагмент програми в довічних кодах
Наступний рівень складають машинно-орієнтовані мови (асемблери).
![Мови програмування (програмування) Мови програмування](https://images-on-off.com/images/123/yazikiprogrammirovaniya-f7668833.png)
Рис.8 Фрагмент програми на мові Асемблера
Мова макроассемблера є розширенням мови Асемблера шляхом включення в нього макросредств. З їх допомогою в програмі можна описувати послідовності інструкцій з параметрами - макроозначення. Після цього програміст може використовувати забезпечені аргументами макрокоманди, які в процесі ассемблирования програми автоматично заміщуються макророзширенні. Макророзширення є макроозначень підперті замість параметрів аргументами.
Таким чином, мова макроассемблера надає засоби визначення та використання нових, більш потужних команд як послідовності базових інструкцій, що трохи підвищує його рівень
Мови Асемблера і макроассемблера застосовуються системними програмістами з метою використання всіх можливостей устаткування ЕОМ і отримання ефективної за часом виконання і необхідному обсягу пам'яті програми. На цих мовах виконується програмування мікропроцесорів, драйверів, утиліт і т.д.
Мови наступного рівня називаються мовами високо рівня або машинно-незалежними. Вони дають можливість окреслити програму рішення задачі в формі, максимально зручною для сприйняття людиною. Вони імітують природні мови, використовуючи деякі слова розмовної мови і загальноприйняті математичні символи. Мови високого рівня діляться на процедурні, логічні, функціональні, об'єктно-орієнтовані.
Мова програмування С (Сі) був розроблений для реалізації операційної системи UNIX (ядро ОС було написано на С) на початку 70-х років 20 століття. В подальшому придбав популярність серед системних і прикладних програмістів. В даний час він реалізований на більшості ЕОМ.
У Сі поєднуються переваги сучасних високорівневих мов в частині керуючих конструкцій і структур даних з можливостями доступу до апаратних ресурсів ЕОМ на рівні, який зазвичай асоціюється з мовами низького рівня типу Ассемблера.
Мова Basic (Бейсік). BASIC - скорочення від англ. Beginner'sAll-purposeSymbolicInstructionCode - універсальний код символічних інструкцій для початківців. Бейсік був придуманий в 1963 році викладачами Дартмутського коледжу Джоном Кемені і Томасом Куртц і реалізований командою студентів коледжу під їх керівництвом. Бейсік був розроблений як найпростіший мова для безпосереднього спілкування людини з машиною для автоматичного оброблення.
Набув широкого поширення у вигляді різних діалектів, насамперед як мова для домашніх комп'ютерів. До теперішнього моменту зазнав істотних змін, значно відійшовши від характерної для перших версій простоти, що межує з примітивізмом і перетворившись в досить ординарний мову високого рівня з типовим набором можливостей. Найбільшого поширення набула версія QuickBasic 4.5.Іспользуется як самостійна мова для розробки прикладних програм, головним чином, що працюють під управлінням ОС Windows різних версій.
Мова Pascal (Паскаль) - є одним з найбільш популярних серед прикладних програмістів процедурним мовою програмування. Розроблений в 1970 р Ніклаус Віртом, мова названий на честь французького математика Блеза Паскаля. Всупереч розхожій думці, він не був виключно навчальним мовою, а призначався для практичного застосування. Прототипом послужілAlgol. Спочатку мова компілювався в байт-код, подібно язикуJava. У даній мові повністю реалізована концепція структурного програмування. В даний час широко використовуються такі версії мови для ПЕОМ, як BorlandPascal, TurboPascal.
Мова ПЛ / 1 (PL / I, ProgrammingLanguage I - «Мова програмування номер один») - розроблений в1964 годуязик програмування, створений для наукових, інженерних і бізнес-орієнтованих обчислень. Він містить такий широкий набір синтаксичних конструкцій і вбудованих функцій, що, ймовірно, не існує ні одногокомпілятора, що підтримує всі можливості мови ПЛ / 1. ПЛ / 1 поддержіваетрекурсіюіструктурное програмування, широко застосовувався в обробці даних.
Прототипом Об'єктно-орієнтованого програмування послужив ряд засобів, що входять до складу мови SIMULA-67. Але в самостійний стиль воно оформилося з появою мови SMALLTALK, розробленого Аланом Кей в 1972 році і спочатку призначеного для реалізації функцій машинної графіки.
В основі об'єктно-орієнтованого стилю програмування лежить поняття об'єкта, а суть його виражається формулою: «об'єкт - дані + процедури». Кожен об'єкт інтегрує в собі деяку структуру даних і доступні тільки йому процедури обробки цих даних, звані методами. Об'єднання процедур і даних в одному об'єкті називається инкапсуляцией.
Для опису об'єктів служать класи. Клас визначає властивості і методи об'єкта, що належить цьому класу. Відповідно, будь-який об'єкт можна визначити як екземпляр класу. Програмування розглянутого стилю полягає у виборі наявних або створення нових об'єктів і організації взаємодії між ними. При створенні нових об'єктів властивості об'єктів можуть додаватися або успадковуватися від об'єктів-предків. У процесі роботи з об'єктами допускається поліморфізм - можливість використання методів з однаковими іменами для обробки даних різних типів.
До найбільш сучасних об'єктно-орієнтованим мовам програмування відносяться С ++, Delphi, Perl.
Мова С ++ був розроблений на початку 80-х років Б. Страуструпом.
Perl - високоуровневийінтерпретіруемийдінаміческійязик програмування загального призначення, створений Ларрі Уоллом, лінгвістом за освітою. Назва мови є абревіатурою, що розшифровується як PracticalExtractionandReportLanguage- «практичну мову для отримання даних та складання звітів»
Python - високорівнева мова программірованіяобщего призначення, орієнтований на підвищення продуктивності розробника і Новомосковскемості коду. Python підтримує несколькопарадігм програмування, в тому чіслеструктурное, об'єктно-орієнтоване, функціональне, імперативне.
Ruby - інтерпретіруемийвисокоуровневий мову програмування для швидкого і зручного об'єктно-орієнтованого програмування.
Останнім часом програми, особливо об'єктно-орієнтовані, реалізуються як системи візуального програмування. Відмінною особливістю таких систем є потужне середовище розробки програм з готових «будівельних блоків», що дозволяють створювати інтерфейсну частину програмного продукту в діалоговому режимі, практично без кодування програмних операцій. До числа об'єктно-орієнтованих систем візуального програмування відносяться: VisualBasic, Delphi, C ++ Builder, VisualC ++