Відмінності між версіями «Мови програмування»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показано 13 проміжних версій цього учасника)
Рядок 1: Рядок 1:
[[Файл:B1.jpg]]
+
[[Файл:B1.jpg|thumb|right|250px|Зображення «Вавилонської вежі» з обкладинки книги Джін Семміт «Мови програмування» (1969 р.), яка містила огляд мов програмування того часу]]
 +
 
 +
 
 +
Інколи розрізняють п'ять поколінь мов програмування, щоправда даний поділ є спірним:
 +
 
 +
=== Перше покоління ===
 +
Початок 1950-х років — мови перших комп'ютерів. Перша мова [http://uk.wikipedia.org/wiki/%D0%90%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80  асемблер]а, створена за принципом «одна інструкція — один рядок».
 +
 
 +
Основна відмінна риса: орієнтування на конкретний [http://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%E2%80%99%D1%8E%D1%82%D0%B5%D1%80  комп’ютер].
 +
 
 +
=== Друге покоління ===
 +
Кінець 1950-х — початок 1960-х р.р. Розроблено символьний асемблер, в якому з'явилося поняття змінної. Це перша повноцінна мова програмування.
 +
 
 +
Основна відмінна риса: орієнтування на абстрактний комп'ютер з такою ж системою команд.
 +
 
 +
=== Третє покоління ===
 +
1960-ті р.р. — мови програмування високого рівня. Їхні характеристики:
 +
* відносна простота;
 +
* незалежність від конкретного комп'ютера;
 +
* можливість використання потужних синтаксичних конструкцій.
 +
Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами.
 +
 
 +
Основна відмінна риса мови третього покоління: орієнтування на алгоритм (алгоритмічні мови).
 +
 
 +
Приклади: Сі, Паскаль, Джава, Бейсік, та багато інших.
 +
 
 +
Всього у світі існує близько 200 популярних мов програмування третього рівня.
 +
 
 +
=== Четверте покоління ===
 +
Початок 1970-х р.р. до сьогоднішнього часу. Створюються мови, призначені для реалізації великих проектів. Проблемно-орієнтовані мови, що оперують конкретними поняттями вузької галузі. Як правило, в такі мови вбудовують потужні оператори, що дозволяють одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні чи навіть тисячі рядків початкового коду.
 +
 
 +
Часто відносять: [http://uk.wikipedia.org/wiki/SQL  SQL], [http://uk.wikipedia.org/wiki/SGML  SGML] ([http://uk.wikipedia.org/wiki/HTML  HTML], [http://uk.wikipedia.org/wiki/XML  XML]), [http://uk.wikipedia.org/wiki/Prolog  Prolog], та багато інших вузькоспеціалізованих декларативних мов. Щоправда ряд мов, які відносять до четвертого покоління, не є мовами програмування як такими. Наприклад SQL є мовою запитів до баз даних, HTML  є мовою розмітки гіпертексту, а не повноцінними мовами програмування, скоріше вони виступають своєрідними спеціалізованими доповненнями до мов програмування. Теж саме стосується XML.
 +
 
 +
Основна відмінна риса мови четвертого покоління: наближення до людської мови (декларативні мови).
 +
 
 +
Деякі мови мають риси одночасно і третього і четвертого поколінь.
 +
 
 +
 
 +
=== П'яте покоління ===
 +
П'ятого покоління мов програмування поки що '''не існує'''.
 +
 
 +
Виробники пропроієтарних програмних продуктів часто намагаються приписати своїм продуктам якісь маркетингові особливості, і деколи вказують що їхній продукт — це «мова п'ятого покоління». Насправді, всі ці продукти — це просто середовища для прискореного створення продуктів (Rapid Application Development — RAD), і використовують мови третього та четвертого поколінь.
 +
 
 +
Мова п'ятого покоління витіснить чи суттєво потіснить мови третього (напр. Java) і четвертого покоління (напр. SQL) за рахунок значно збільшеної продуктивності праці програміста — в 10-1000 раз. За прогнозами, 5GL буде оперувати мета-мета-даними.
 +
 
 +
Наразі існує єдина мова, яка працює з мета-мета-даними, — це мова команд менеджерів пакетів чи менеджерів залежностей, таких як apt, yum, smart, maven, cpan та інші. Вони оперують над метаданими про метадані про дані у пакетах. Використання apt-get, yum та smart дійсно надзвичайно підвищило продуктивність системних адміністраторів — приблизно в 1000-у раз. Використання менеджерів залежностей, таких як maven, cpan, rakudo, pim, easy_install, дійсно значно підвищило продуктивність програмістів, приблизно в 10-ть раз. Нажаль, ці мови є мовами командного рядка і не є мовами програмування.
 +
 
 +
 
 +
----
 +
==Посилання==
 +
[http://www.pcweek.ru/themes/detail.php?ID=40584  Пятое поколение - языки программирования]
 +
 
 +
[http://www.ait.org.ua/p/pub_evolution.html  ЭВОЛЮЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ]
 +
 
 
----
 
----
 
[[Розвиток систем кодування]]
 
[[Розвиток систем кодування]]

Поточна версія на 10:08, 23 жовтня 2011

Зображення «Вавилонської вежі» з обкладинки книги Джін Семміт «Мови програмування» (1969 р.), яка містила огляд мов програмування того часу


Інколи розрізняють п'ять поколінь мов програмування, щоправда даний поділ є спірним:

Перше покоління

Початок 1950-х років — мови перших комп'ютерів. Перша мова асемблера, створена за принципом «одна інструкція — один рядок».

Основна відмінна риса: орієнтування на конкретний комп’ютер.

Друге покоління

Кінець 1950-х — початок 1960-х р.р. Розроблено символьний асемблер, в якому з'явилося поняття змінної. Це перша повноцінна мова програмування.

Основна відмінна риса: орієнтування на абстрактний комп'ютер з такою ж системою команд.

Третє покоління

1960-ті р.р. — мови програмування високого рівня. Їхні характеристики:

  • відносна простота;
  • незалежність від конкретного комп'ютера;
  • можливість використання потужних синтаксичних конструкцій.

Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами.

Основна відмінна риса мови третього покоління: орієнтування на алгоритм (алгоритмічні мови).

Приклади: Сі, Паскаль, Джава, Бейсік, та багато інших.

Всього у світі існує близько 200 популярних мов програмування третього рівня.

Четверте покоління

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

Часто відносять: SQL, SGML (HTML, XML), Prolog, та багато інших вузькоспеціалізованих декларативних мов. Щоправда ряд мов, які відносять до четвертого покоління, не є мовами програмування як такими. Наприклад SQL є мовою запитів до баз даних, HTML є мовою розмітки гіпертексту, а не повноцінними мовами програмування, скоріше вони виступають своєрідними спеціалізованими доповненнями до мов програмування. Теж саме стосується XML.

Основна відмінна риса мови четвертого покоління: наближення до людської мови (декларативні мови).

Деякі мови мають риси одночасно і третього і четвертого поколінь.


П'яте покоління

П'ятого покоління мов програмування поки що не існує.

Виробники пропроієтарних програмних продуктів часто намагаються приписати своїм продуктам якісь маркетингові особливості, і деколи вказують що їхній продукт — це «мова п'ятого покоління». Насправді, всі ці продукти — це просто середовища для прискореного створення продуктів (Rapid Application Development — RAD), і використовують мови третього та четвертого поколінь.

Мова п'ятого покоління витіснить чи суттєво потіснить мови третього (напр. Java) і четвертого покоління (напр. SQL) за рахунок значно збільшеної продуктивності праці програміста — в 10-1000 раз. За прогнозами, 5GL буде оперувати мета-мета-даними.

Наразі існує єдина мова, яка працює з мета-мета-даними, — це мова команд менеджерів пакетів чи менеджерів залежностей, таких як apt, yum, smart, maven, cpan та інші. Вони оперують над метаданими про метадані про дані у пакетах. Використання apt-get, yum та smart дійсно надзвичайно підвищило продуктивність системних адміністраторів — приблизно в 1000-у раз. Використання менеджерів залежностей, таких як maven, cpan, rakudo, pim, easy_install, дійсно значно підвищило продуктивність програмістів, приблизно в 10-ть раз. Нажаль, ці мови є мовами командного рядка і не є мовами програмування.



Посилання

Пятое поколение - языки программирования

ЭВОЛЮЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ


Розвиток систем кодування