Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Види і типи сучасних мов програмування

4.2.1. Універсальні й спеціалізовані мови

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

З часу створення перших програмованих машин людство придумало вже більше восьми з половиною тисяч мов програмування. Кожного року їх число поповнюється новими. Деякими мовами вміє користуватися тільки невелике число їхніх власних розробників, інші стають відомі мільйонам людей. Професійні програмісти іноді застосовують у своїй роботі більше десятка різноманітних мов програмування.

Творці мов по-різному тлумачать поняття мови програмування. До найбільш поширених тверджень, визнаних більшістю розробників, належать такі:

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

Завдання: мова програмування відрізняється від природних мов тим, що призначена для передачі команд і даних від людини до комп'ютера, в той час, як природні мови використовуються для спілкування людей між собою. В принципі, можна узагальнити визначення "мов програмування" - це спосіб передачі команд, наказів, чіткого керівництва до дії, тоді як людські мови служать також для обміну інформацією.

Виконання: мова програмування може використовувати спеціальні конструкції для визначення та маніпулювання структурами даних і управління процесом обчислень.

Усі популярні мови можна поділити на універсальні й спеціалізовані. Універсальні мови використовуються для вирішення різних завдань. Спеціалізовані мови призначені для вирішення завдань одного, максимум кількох, видів завдань. Наприклад, роботи з базами даних, web-програмування або написання скриптів для адміністрування операційних систем.

Види спеціалізованих мов:

  1. Мови для роботи з базами даних:
    • а) мови, що входять до складу промислових клієнт-серверних систем управління базами даних (PL-SQL в СУБД Oracle, Transact-SQL у Microsoft SQL Server);
    • б) мови є частиною інших видів СУБД (Visual FoxPro, Microsoft Access, Paradox і т.п.).
  2. Мови призначені для web-програмування:
    • а) мова, яка виконується на сервері, що підтримує Web-сайт (РНР, Perl, VBScript);
    • б) мова, яка виконується на браузері (програмі перегляду) клієнта JavaScript, JScript, VBScript.
  3. Мови для математичних розрахунків.
  4. Мови для автоматизації роботи певних програмних продуктів (VBA в Microsoft Office).
  5. Спеціалізовані мови інших видів.

До універсальних мов можна віднести мови Visual C++, Visual C++.Net, Visual C #.Net, Visual J#.Net, Java, Delphi, Borland C #, Borland C++ Builder.

Хоча найчастіше спеціалізовані мови походять від універсальних мов, наприклад, PHP, Perl і JаvаScript походять від мови С++, VBScript і VBA походять від мови Visual Bаsic, відмінності між спеціалізованими і універсальними мовами дуже значні.

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

Основна відмінність спеціальних мов від універсальних:

  1. у них менше об'єктно-орієнтованих засобів і засобів доступу технологій COM, DCOM, CORBA до функцій API операційних систем;
  2. менше засобів багатопотокового програмування і розподіленого програмування;
  3. використовуються тільки динамічні типи (тобто тип змінної визначається в залежності від її значення, а не при оголошення змінної), а не статичні. Єдиний виняток: у версії 9 мови Visual FoxPro можна використовувати і статичні типи змінних.

4.2.2. Класифікація мов програмування за типами завдань

Мова програмування - набір ключових слів (словник) і система правил (граматичних і синтаксичних) для конструювання операторів, що складаються з груп або рядків чисел, літер, знаків пунктуації та інших символів, за допомогою яких люди можуть повідомляти комп'ютеру набір команд.

З моменту створення комп'ютера створено більше 1000 мов, що відрізняються своїм призначенням і можливостями. Найбільш значимими, що залишили свій внесок у минулому, і що продовжують розвиватися та використовуватися сьогодні, є:

Машинно-орієнтовані мови - мови, орієнтовані на певний набір команд процесора - Асемблери. До недоліків відносяться мала переносимість і важка читабельність, мала функціональна можливість. До переваг - швидкість і розмір, використання "недокументованих" можливостей процесора.

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

Універсальні процедурні мови - Бейсік, Паскаль, С, РL/1, Ада. Універсальні мови відрізняються високою функціональністю й формальністю (відходом від машинної логіки). Вони все більше наближені до природних мов. На них можна створювати будь-який клас задач - ігрові, навчальні, прикладні, системні додатки тощо.

Об'єктно-орієнтовані мови - мови, що прийшли на зміну процедурним мовам - С++, Оbject Раsсаl. Підтримуючи традиції й можливості процедурних мов, об'єктно-орієнтовані мови додають новий, полегшуючий процес створення великих і професійних програм.

Декларативні мови програмування - Lisp, Рrolog - мови створення програм зі штучним інтелектом - експертні системи, інформаційні системи, розпізнавання образів тощо.

Мови розробки й підтримки баз даних - FохРго, FохВаsе, Dbase. Ці мови побудовані на універсальних алгоритмічних мовах.

Мови програмування для мережі Internet - Java, РНР, Регl, НТМL. Основне призначення мов - швидка і якісна організація інтерфейсу користувача, доступу до інформації, забезпечення безпеки роботи в мережі.

Макромови - вузькоспеціалізовані мови, створювані в рамках конкретних додатків для їхньої автоматизації - VВА, 1С тощо.

Завдання штучного інтелекту: Lisp, Prolog, Multilisp, Commonlisp, Planner, QA4, FRL, KRL, QLisp.

Паралельні обчислення: Fun, Apl, Alfl, PARAlfl, ML, SML, PL/1, Hope, Miranda, Occam, PFOR, Glypnir, Actus, паралельний Cobol.

Завдання обчислювальної математики і фізики: Occam, PFOR, Glypnir, Actus, паралельний Cobol, ОВС-Ляпіс, ОВС-мнемокод, ОВС-Алгол, ОВС-Фортран, PA (1), PA (G).

Розробка інтерфейсу: Forth, C++, Асемблер, макроассемблер, Simula-67, OAK, Smalltalk, Java, РПГ.

Оформлення документів, обробка великих текстових файлів, організація віртуальних тривимірних інтерфейсів в Інтернеті, розробка баз даних HTML, Perl, Tcl / Tk, VRML, SQL, PL / SCL, Informix 4GL, Natural, DDL, DSDL, SEQUEL, QBE, ISBL

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

Мова - технологія:

Процедурне програмування - головним елементом алгоритму є підпрограма. Програма розглядається як набір підпрограм, що приєднуються. Створені підпрограми об'єднуються в бібліотеки й використовуються іншими програмістами як нові оператори мови. До мов процедурного програмування відносять Сі, Паскаль, Бейсік.

Об'єктно-оріентоване програмування - головним елементом алгоритму є класи - нові типи даних, що розширюють можливості мови. Використання класів дозволяє сховати від програміста більшість чорнової роботи, тому що змінні й підпрограми ховаються в класах і викликаються невидимо для програміста. Це дозволило писати великі й складні програми, тому що в процедурних мовах з ростом програми різко збільшувалося число помилок. Проте, усередині класи пишуться, як і звичайні процедурні програми. Класи збираються в бібліотеки - МFС, VСL.

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

Технологія-мова:

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

В основі модульного програмування лежить ідея Дейкстри про те, що складність розуміння програми зростає з ростом її розміру. Наприклад, якщо за 1 прийняти складність програми розміром в 10 рядків і припустити, що складність програми подвоюється через кожні 10 рядків, то програма в 60 рядків буде мати складність 32. Якщо її розділити на дві частини по 30 рядків, то її складність дорівнює 2*4=8 + складність стикування частин.

Візуальне програмування - полягає в тому, що розроблювачеві надається ряд готових об'єктів (наприклад, елементи керування), керування якими бере на себе система. Від розроблювача потрібно інтерактивно зазначити використовувані компоненти, їхні властивості й правила обробки - Delphi, Visual С++.

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

СОМ технологія - еволюційний розвиток ООП. Припускає створення об'єктів, використання яких можливе у будь-яких мовах програмування.

4.3. Рейтинг мов програмування, перспективи їхнього розвитку та використання

Існує близько 8500 мов програмування (не дивуйтеся, дані не перебільшені), але, незважаючи на таку розмаїтість, кількість мов, на яких пише більшість, насилу перевалює за десяток. Причин, чому та чи інша мова не стала популярною, нітрохи не менше, ніж самих мов. Це і чвари між їхніми авторами, і погано організований процес продажу, і поява нових технологій, і просто відверта "кривизна".

Щорічно компанія TIOBE Software проводить рейтинг найпопулярніших мов програмування [61]. Індекс мов програмування оновлюється один раз на місяць (рис. 3). Рейтинги розраховуються за даними кількості кваліфікованих інженерів по всьому світу, проведених курсів, статистичних даних від багатьох сторонніх постачальників, програмного забезпечення, а також на основі інших даних від популярних ресурсів MSN, Blogger, Yahoo!, Google, YouTube і Wikipedia. 2010 року лідером визнано мову програмування JAVA (для інформації: лідер 2009 року мова GO, 2008 - C, 2007 - Python, 2006 - Ruby, 2005 - Java, 2004 - PHP, 2003 - C++). Мова Java і платформа Java, що постійно розвивається, революціонізували процес програмування. Java найчастіше використовують для написання аплетів, додатків і серверного програмного забезпечення. Програми на Java можуть бути трансльовані в байт-код, що виконується на віртуальній машині JVM - програмі, що обробляє байтовий код, який на відміну від тексту обробляється значно швидше. Популярність цієї мови відзначено в java-іграх в мобільних телефонах. Але все ж таки ця мова де в чому поступається мові сімейства С.


Рис. 3 Рейтинг мов програмування (березень 2010) за даними TIOBE

У професійному програмуванні царюють такі мови як Java, C, C++, C#, Visual Basic, PHP, Java Script

Більшість програм системного характеру пишуться на мовах С, С++. Більшість програмних комплексів для підприємств створюються за допомогою С Builder і баз даних. С підтримує різні парадигми програмування: процедурну, узагальнену, функціональну. Програмістів, які знають мову С, беруть на роботу скрізь. Якщо ви успішно освоїли цю мову, вивчити інші мови об'єктно-орієнтованого програмування не складе великих труднощів. Поки працюють стандартні програми Windows, не зникне з арени Visual Basic, який обійшов за популярністю Perl. На сьогоднішній день адміністратори з усього світу використовують Perl для автоматизації своїх повсякденних завдань. PHP, як і раніше зберігає позиції в галузі створення динамічних веб-сторінок, звичайних GUI-додатків і взаємодіє з базами даних.

У наведеній нижче таблиці (Табл. 1) деякі довгострокові тенденції перераховані за категоріями мов.

Таблиця 1

Рейтинг мов програмування за категоріями (листопад 2010)

Категорії мов програмування Рейтинг за березень 2011 Порівняно з березнем 2010
Об'єктно-орієнтовані 58,7% +5,3%
Процедурні 36,4% -5,6%
Функціональні 3,6% +0,5%
Логічні 1,2% -0,3%
Статичні 64,2% +4,2%
Динамічні 35,8% -4,2%

Мови програмування, які відрізняються статичної типізацією, як не дивно, йдуть попереду мов із динамічною типізацією. Об'єктно-орієнтовані мови програмування співвідносяться до мов процедурного орієнтування як 58,7 до 36,4 відсотків. Функціональні мови програмування обганяють логічні.

Мови програмування, які відрізняються статичної типізацією, як не дивно, йдуть попереду мов зіз динамічною типізацією. Об'єктно-орієнтовані мови програмування співвідносяться до мов процедурного орієнтування як 56,7 до 38,0 відсотків. Функціональні мови програмування обганяють логічні.

Різниці між розподілом досвіду роботи між респондентами з України і за її межами особливої немає, а ось у використанні мов - є, що демонструють дані таблиці 2:

Таблиця 2

Рейтинг мов програмування в Україні

Назва Індекс Частка ринку, % Робоча мова Як додаткова Хобі Прихильність, %
С#   22.77       82.91
Java   22.33       82.97
PHP   16.31       52.57
C/C++   14.99       78.76
Python   6.86       79.36
Ruby   3.71       82.14
Objective-C   2.87       78.46
Delphi   2.39       37.03
JavaScript   1.9       58.13
Perl   1.72       58.98
1C   1.19       51.85
Groovy   1.06 -      
DBase            
Basic            
Lisp            
Scala            
Lua            
Haskell            
Asm            
Fortran            

Дані TIOBE, звичайно, не збігаються з нашими, але дають схожі кластери для перших 5-ти мов, у "хвості" ж бачимо вже досить велику різницю - мова про яку говорять це не обов'язково та, яка використовується. Наприклад рейтинг Erlang (39) або Scala (44) у TIOBE помітно нижчий, ніж у Фортран (34), але у відповідності з нашими даними, з використанням справа йде навпаки.

Найбільш масові мови програмування: C#, Java, C/C++, PHP. Pythоn близький до того, щоб стати наступним мейнстрімом у веб-програмуванні; Scala розглядається як серйозний претендент на роль наступної основної мови в інфраструктурі JVM.

Популярність мов програмування багато в чому залежить від існуючої ІТ-моди. Раніше це були мови ООП, зараз - Інтернет скрипти та мови СУБД. Що буде завтра, можна тільки здогадуватися.

Будь-які задачі обробки даних і найскладніші запити програміста здатна задовольнити мова візуального програмування Delphi, прабатьком якого є мова Pascal. Освоєння азів програмування зазвичай починається з Pascal. Завдяки надзвичайній гнучкості й зручності мови Pascal були створені численні його діалекти, що знайшли своє втілення у програмному забезпеченні ЕОМ, що також сприяло його популяризації.

Працюючи з операційною системою Linux, знадобляться знання мови програмування Python, якої ще кілька років тому не було у рейтингу широко використовуваних мов.

Особливу увагу слід приділити базам даних. За статистикою найвищу зарплату отримують програмісти, які працюють з реляційними базами даних. Найбільш популярними серед них є Oracle, SyBase. MySQL - відносно невелика і швидка реляційна СУБД, заснована на традиціях Hughes Technologies Mini SQL (mSQL). Для неї характерна легкість в управлінні таблицями, зв'язками, багатопоточність, підтримка декількох одночасних запитів.

Американська компанія Oracle стрімко нарощує свій вплив в усіх сферах, в яких зацікавлений середній і великий бізнес: засоби розробки бізнес-додатків, засоби автоматизації тощо. СУБД Oracle Database поставляється в чотирьох різних редакціях, орієнтованих на різні сценарії розробки і розгортання додатків. За СУБД Oracle слід СУБД Sybase, яка спеціалізується на розробці реляційних баз даних, а також інших продуктів, пов'язаних зі збором, обробкою і зберіганням даних. Вона стала еталоном таких СУБД як Ingres (Computer Associates), Informix (IBM) і NonStop SQL (Tandem), а також для більшості сьогоднішніх SQL-систем. Знання однієї мови програмування сьогодні не вважається прогресом. Тепер роботодавець, приймаючи на роботу програміста, вимагає знання декількох мов програмування плюс досвід роботи з базами даних.

Світ ІТ сильно змінився за останні роки, з'явилися нові пріоритети і технології - разом з цим сильно змінився процес розробки. Сьогоднішні засоби розробки це зовсім не ті продукти, які були років десять тому, вони побудовані на новітніх технологіях, інтегруються із засобами групової розробки, планування та управління проектами, засобами оцінки ризиків, управління життєвим циклом додатків і дозволяють створювати справжню середовище для індустріального програмування.

На даний час інтерес до створення нових мов програмування знизився (і у світі, і в країнах СНД), а коло використовуваних мов стабілізувалося. Настав момент для аналізу використання сучасних мов програмування. Результати дослідження серед розробників ПЗ країн СНД дозволяють зробити припущення, що мови програмування, орієнтовані на Інтернет та інтеграцію додатків, домінують у середовищі розробників.

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

 

<== предыдущая лекция | следующая лекция ==>
Кросплатформність | Види навчання
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 11845; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.03 сек.