Відмінності між версіями «Мови програмування»
(не показано 12 проміжних версій цього учасника) | |||
Рядок 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
Інколи розрізняють п'ять поколінь мов програмування, щоправда даний поділ є спірним:
Зміст
Перше покоління
Початок 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-ть раз. Нажаль, ці мови є мовами командного рядка і не є мовами програмування.
Посилання
Пятое поколение - языки программирования
ЭВОЛЮЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ