Загальні поняття програмування. Мови програмування.
Програмування - процес проектування, написання, тестування, зневадження�(рос. отладки) і підтримки компʼютерних програм.
ПРОГРАМУВАННЯ
ІНЖЕНЕРІЯ
ФУНДАМЕНТАЛЬНІ НАУКИ
поєднує в собі елементи
спеціальна галузь інженерії - програмна інженерія (англ. software engineering)
🖉 математика
🖉 мистецтво та інші
У загальному сенсі під програмуванням розуміють створення програми дій або алгоритмів та навчання людей (або пристроїв) діяти за алгоритмами.
це послідовність точно визначених дій, що однозначно призводять до вирішення поставленого завдання.
Термін «алгоритм» походить від імені узбекського математика Аль Хорезмі, який у IX ст. розробив правила арифметичних дій над числами у десятковій системі числення.
Якщо алгоритм призначено для виконання за допомогою комп’ютера, його записують спеціальною мовою, яка має бути йому «зрозумілою». Такий запис називають програмою.
Програми створюють для опрацювання інформаційних даних за допомогою компʼютера.
Говорять, що виконавцем програм є компʼютер.
ПРОЦЕС АЛГОРИТМІЗАЦІЇ
ПЕРЕДУЄ ПРОЦЕСУ ПРОГРАМУВАННЯ.
Компʼютерна програма (англ. Computer program) - набір інструкцій у вигляді слів, цифр, кодів, схем, символів чи у будь-якому іншому вигляді, виражених у формі, придатній для зчитування компʼютером, які приводять його у дію для досягнення певної мети (або результату).
Компʼютерна програма - це алгоритм опрацювання даних, записаний спеціальною мовою та призначений для виконання компʼютером.
По-іншому компʼютерну програму визначають, як низку команд для компʼютера, що становлять запис алгоритму однією з мов програмування.
ВХІДНІ
(ПОЧАТКОВІ) ДАНІ
ПРОМІЖНІ ДАНІ
ВИХІДНІ (РЕЗУЛЬТУЮЧІ) ДАНІ
У процесі своєї роботи програма опрацьовує дані:
потрапляють від певних пристроїв (клавіатура, різні датчики тощо) або від іншої програми, або з іншого джерела (текстовий файл)
нові дані, що утворюються й опрацьовуються під час виконання програми
певні дані, отримання яких є метою виконання програми
Мови програмування відрізняються від природних мов тим, що призначені для передачі команд і даних від людини до компʼютера (в той час, як природні мови використовуються для спілкування людей між собою); це способи передачі команд, наказів, чіткого керівництва до дії, тоді як людські мови служать також для обміну інформацією.
МОВА ПРОГРАМУВАННЯ – це штучна мова, створена для передачі команд машинам (зокрема компʼютерам), формальна знакова система, призначена для запису комп'ютерних програм, набір певних правил, що задають зовнішній вигляд програми і дії, які виконує виконавець (компʼютер) під її управлінням.
Мови програмування
використовуються для створення програм (які контролюють поведінку машин) та запису алгоритмів.
Алфавіт - множина символів, з яких можна утворювати слова і речення мови.
Словник - набір слів, які використовуються в цій мові.
Синтаксис - правила складання і запису мовних конструкцій.
Семантика - встановлене однозначне тлумачення мовних конструкцій, правил їх виконання.
Для того, щоб комп’ютер міг виконувати програму, її потрібно перекласти на машинну мову.
Для цього використовують спеціальні програми - ТРАНСЛЯТОРИ
ТРАНСЛЯТОР – це програма, призначена для перекладу тексту програми з однієї мови програмування на іншу.
Процес такого перекладання називається ТРАНСЛЯЦІЯ.
КОМПІЛЯТОР – це спеціальна програма, яка перекладає створену будь-якою мовою програмування програму на машинну мову та запам’ятовує її.
Процес такого перекладання називається КОМПІЛЯЦІЄЮ. Компілятор створює програму в машинних кодах, яка потім виконується. Для повторного виконання програми компілятор вже не потрібен. Досить завантажити з диска в пам’ять комп’ютера скомпільований раніше варіант і виконати його.
ІНТЕРПРЕТАТОР – це програма, яка призначена для покомандного виконання вихідної програми, програма-перекладач, яка перекладає і виконує програму строчка за строчкою.
Такий процес називається ІНТЕРПРЕТАЦІЄЮ.
ТРАНСЛЯТОР
Віктор Михайлович Глушков (український вчений, піонер компʼютерної техніки, кібернетик, математик) в своїй книзі «Основи безпаперової інформатики», що вийшла друком в 1982 р., писав: «Вже недалеко той день, коли зникне звичайна книга, журнал та газета. Замість цього кожна людина буде носити з собою «електронний» блокнот, що буде представляти собою комбінацію плоского монітору з мініатюрним радіопередавачем.
Набираючи на клавіатурі цього «блокноту» потрібний код, можна буде (знаходячись в будь-якому місці на нашій планеті) визвати з гігантських комп’ютерних баз даних, що пов’язані в мережі, будь-які тексти, зображення (в тому числі і динамічні), які і замінять не тільки сучасні книги, журнали та газети, але і сучасні телевізори.»
«НАПРОРОЧИВ» iPad
Першим запрограмованим пристроєм прийнято вважати жакардовий ткацький верстат, побудований в 1804 р. французьким винахідником Жозефом Марі Жаккар.
Він здійснив революцію в ткацькій промисловості, надавши можливість програмувати візерунки на тканинах за допомогою перфокарт.
Жаккард – це тканина з візерунком, який виконується складним переплетінням великої кількості ниток одного або декількох кольорів.
День комп’ютерника і програміста – неофіційне свято програмістів, що відзначається на 256-й день року. У високосні роки це свято припадає на 12 вересня, у невисокосні – на 13 вересня.
Вибір числа 256 не випадковий – воно виходить від виведення двійки у восьму ступінь (28) – саме таку кількість чисел можна виразити за допомогою одного восьмирозрядного байта.
Програміст – фахівець, що займається програмуванням, виконує розробку програмного забезпечення (в простіших випадках – окремих програм) для програмованих пристроїв, які, як правило містять один процесор чи більше.
1) Постановка задачі (звичайною мовою, можливо, без задіяння ЕОМ).
ЕТАПИ РОЗРОБКИ ПРОГРАМИ
2) Аналіз, формалізований опис задачі, вибір математичної моделі.
3) Вибір або розробка алгоритму розв’язання.
4) Проєктування загальної структури програми з використанням відповідних методологій (наприклад, «зверху-вниз»).
5) Кодування (переведення алгоритму на обрану мову програмування).
6) Налагодження та верифікація (доказ того, що вірогідний факт або твердження є істинними) програми (синтаксичні помилки, як правило, вказує компілятор, логічні помилки потрібно перевіряти на тестових задачах).
7) Одержання результатів, їх інтерпретація і можлива модифікація моделі.
8) Публікація або передача замовнику програми.
9) Супровід програми.
МОВИ
ПРОГРАМУВАННЯ
НИЗЬКОГО РІВНЯ
ВИСОКОГО РІВНЯ
призначені для певного типу ЕОМ (відображають її внутрішній машинний код) і виглядають як послідовність 1 і 0;
їх називають машинно-орієнтованими мовами (бо складно конвертувати для використання на ЕОМ з різними центральними процесорами); їх досить складно вивчати (для цього потрібно добре знати внутрішню структуру ЕОМ, принцип роботи кожного блоку), вони громіздкі і незручні, вимагають від програміста багато часу та підвищеної уваги;
можна легко припуститися помилок, записавши не в тій послідовності 1 або 0.
призначені для задоволення вимог програміста, не залежать від внутрішніх машинних кодів компʼютера будь-якого типу;
їх використовують для вирішення проблем, і тому їх часто називають проблемно-орієнтованими мовами;
кожна команда такої мови еквівалентна кільком командам в машинних кодах, тому програми, написані на мовах високого рівня, більш компактні порівняно з аналогічними програмами в машинних кодах.
класифікацій існує багато, але наукової теорії поки що немає; основні класифікації склалися історично
КЛАСИФІКАЦІЯ МОВ ПРОГРАМУВАННЯ
Класифікацій мов програмування існує багато, але наукової теорії поки що немає. Три основні класифікації склалися історично.
● універсальні мови (у них можна промоделювати, умовно кажучи, будь-який алгоритм)
1) ЗА ФУНКЦІОНАЛЬНОЮ ОЗНАКОЮ
● спеціалізовані мови
(орієнтовані на певні класи задач)
КЛАСИФІКАЦІЯ МОВ ПРОГРАМУВАННЯ
Класифікацій мов програмування існує багато, але наукової теорії поки що немає. Три основні класифікації склалися історично.
● мови програмування для розв’язання задач символьної обробки (Lisp, (розроблена в кін. 1950-х рр. для дослідження проблем штучного інтелекту), Cobol (практично всі банкомати працюють на цій мові, розробленій для потреб бізнесу ще в 1959 р.)
2) ЗА ПРЕДМЕТНОЮ ОРІЄНТАЦІЄЮ
● мови для обробки флеш-кліпів, які можуть включати анімацію, аудіо, відео, текст та обробку подій (АctionScript) тощо
мови для розв’язання певного класу задач
КЛАСИФІКАЦІЯ МОВ ПРОГРАМУВАННЯ
Класифікацій мов програмування існує багато, але наукової теорії поки що немає. Три основні класифікації склалися історично.
● мови низького рівня
(машинно-залежні)
Assembler тощо
3) ЗА РІВНЕМ АБСТРАКЦІЇ
● мови високого рівня
(у яких засоби керування і роботи з даними відображають потреби програміста, а не можливості апаратних засобів)
● алгоритмічні мови,
призначені для опису алгоритму, який треба виконати за допомогою комп’ютера
(Fortran, Ваsic, Раsсаl, С)
МОВИ ПРОГРАМУВАННЯ БАЗ ДАНИХ
БАЗА ДАНИХ (БД) - це файл (або група файлів) у вигляді упорядкованого набору записів, які мають однакову структуру і організованих за єдиним шаблоном (найчастіше у вигляді таблиці).
БД може складатися з декількох таблиць. В БД зручно зберігати різні відомості з довідників, картотек, журналів тощо.
SQL (англ. Structured query language – мова структурованих запитів) – декларативна мова програмування для взаємодії користувача з БД, що застосовується для формування запитів, оновлення і керування БД, створення схеми БД та системи контролю за доступом до БД. Сама по собі SQL не є ані системою керування базами даних, ані окремим програмним продуктом. На відміну від дійсних мов програмування може формувати інтерактивні запити або, в складі прикладні програм, виступати як інструкції для керування даними.
фактичним стандартом стала мова запитів до баз даних SQL
призначені для маніпуляції великими централізованими масивами даних
і отримання з них інформації
(Access, FoxPro, 4GL та ін.)
Надзвичайно поширена мова, розроблена ще в 1995 р., адже 90% компаній, що входять до найбільших корпорацій світу, так чи інакше використовують в своїх розробках Java. До речі, вона використана при розробці операційної системи Android, яка на даний час є найбільшою мобільною платформою в світі.
Хоч назва цієї мови і схожа з назвою мови Java, це зовсім інша мова програмування. Javascript – це найпопулярніша мова програмування серед розробників, яка найчастіше використовується для створення сценаріїв (скриптів) веб-сторінок. Ця мова застосовується як одна з основних технологій для створення інтерактивних сайтів разом з HTML та CSS (адже більшість браузерів використовують саме ці три основні технології). Також, використовуючи її, можна створювати мобільні додатки, ігри та ін.
НАЙПОПУЛЯРНІШІ МОВИ ПРОГРАМУВАННЯ
Java
JavaScript
HTML та CSS – це не зовсім мови програмування, хоча ці технології використовуються практично на кожному сайті.
Це спеціальні мови стилю вебсторінок, що використовуються для опису їх зовнішнього вигляду: саме через них прописується візуальний стиль сайтів, кнопки, іконки та ефекти кожної сторінки. Тому ці мови корисно знати не лише програмістам, але і вебдизайнерам.
РНР є однією з найпоширеніших мов, що використовуються у сфері веб-розробок. Її популярність пов’язана з тим, що вона використовується в найпоширенішій платформі для створення сайтів Wordpress, а 80% найбільш відвідуваних сайтів в світі використовують мову PHP тим чи іншим способом. Вона вважається однією з базових та найпростіших мов програмування, яку має знати кожен, хто називає себе програмістом.
НАЙПОПУЛЯРНІШІ МОВИ ПРОГРАМУВАННЯ
РНР
HTML
CSS
Мова з широким інструментарієм, яку розробили ще 1983 р. і на якій створені Microsoft Windows і Google Chrome. Завдяки широкому набору інструментів C++ легко адаптується для застосування в різноманітних сферах життя (банківська сфера, розробка розважальних програм, відеоігри, торгівля та ін.). Саме на цій мові можна створювати як складні комерційні системи з багатьма елементами, так і розробляти прості застосунки та програми.
НАЙПОПУЛЯРНІШІ МОВИ ПРОГРАМУВАННЯ
C++
C
Універсальна мова програмування загального призначення, розроблена ще у 1972 р. з метою написання нею ОС UNIX.
С є найпопулярнішою у світі мовою програмування за кількістю вже написаного нею ПЗ, доступного під вільними ліцензіями. C здійснила великий вплив на інші мови програмування, особливо на C++, Java та C#.
НАЙПОПУЛЯРНІШІ МОВИ ПРОГРАМУВАННЯ
C#
C# (вимов. Сі-шарп) – удосконалена версія своєї попередниці С++. Сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості .NET (платформи Microsoft для створення як звичайних програм, так і веб-застосунків). Решта мов програмування, хоч і підтримуються, але визнані такими, що мають спадкові прогалини щодо використання .NET.
Python (вимов. «Пайтон») розроблена в 1990 р. Придатна для швидкої розробки програм, а також як засіб поєднування наявних компонентів. Інтерпретатор Python та стандартні бібліотеки доступні як у скомпільованій, так і у вихідній формі на всіх основних платформах.
Python
НАЙПОПУЛЯРНІШІ МОВИ ПРОГРАМУВАННЯ
Pascal
BASIC
Pascal була розроблена як засіб для навчання студентів програмуванню. Проте виявилась настільки вдалою, що швидко стала популярною серед програмістів і перетворилася в потужну сучасну професійну систему програмування, за допомогою якої можна як розробляти відносно прості обчислювальні програми, так і створювати складні системи управління БД. Особлива перевага Pascal – наявність розвинених засобів програмування для багатьох сучасних ОС (досить легко переносити програми, написані на Pascal, до різних ОС).
BASIC було створено у 1963 р. з метою отримання простої в користуванні мови для початківців. Мова набула поширення у 1980 рр. і лишається популярною й досі. BASIC створювався для вирішення проблем, повʼязаних зі складністю старіших мов та призначався для користувачів з простішими задачами (не стільки зацікавлених у швидкості обчислень, скільки в можливості використовувати ПК для вирішення своїх задач).
ПОКОЛІННЯ МОВ
ПРОГРАМУВАННЯ
1 покоління – 1GL
(First Generation Languages)
(поч. 1950-х рр.)
2 покоління – 2GL
(кін. 1950-х – поч. 1960-х рр.)
мови перших комп’ютерів;
перша мова - асемблер - була створена за принципом «одна інструкція – один рядок»;
процес програмування передбачав запис усіх алгоритмів безпосередньо машинною мовою
розроблено символьний асемблер, в якому з’явилося поняття змінної (це перша повноцінна мова програмування);
програми застосовуються для створення драйверів устаткування комп’ютерів
ПОКОЛІННЯ МОВ
ПРОГРАМУВАННЯ
3 покоління – 3GL
1960-ті рр.
4 покоління – 4GL
(поч. 1970-х рр.
і до сьогоднішнього часу)
мови програмування високого рівня: відносно прості, незалежні від конкретного комп’ютера, є можливість використання потужних синтаксичних конструкцій (Fortran, COBOL, ALGOL, Pascal )
наближені до людської мови (декларативні мови);
проблемно-орієнтовані мови, призначені для реалізації крупних проектів, що оперують конкретними поняттями вузької галузі (системи програмування чи засоби, орієнтовані на створення великих програмних комплексів);
мають простий і зручний інтерфейс;
основна сфера їхнього застосування – проектування додатків з використанням баз даних (SQL, SGML (HTML, XML), Prolog (для розробки систем штучного інтелекту)
ПОКОЛІННЯ МОВ
ПРОГРАМУВАННЯ
5 покоління – 5GL
МОВ ПРОГРАМУВАННЯ ПʼЯТОГО ПОКОЛІННЯ ПОКИ ЩО НЕ ІСНУЄ
з середини 1990-х рр. і до теперішнього часу відбувається розробка систем програмування, призначених для перетворення інструкцій на тексти програм універсальною мовою програмування;
за прогнозами мови 5GL витіснять чи суттєво посунуть мови 3GL (наприклад, Java) і 4GL (наприклад, SQL) за рахунок значно збільшеної продуктивності праці програміста (у 10-1000 разів);
вважається, що 5GL буде оперувати метаданими (даними, що характеризують або пояснюють інші дані; метадані – це інформація про дані, тобто інформація про інформацію)
Дякую за увагу!