Файл: Классификация языков программирования высокого уровня (Классификация языков программирования высокого уровня).pdf
Добавлен: 18.05.2023
Просмотров: 304
Скачиваний: 3
СОДЕРЖАНИЕ
1. ОСНОВНЫЕ ПОНЯТИЯ, СОСТАВНЫЕ ЭЛЕМЕНТЫ И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Языки программирования высокого уровня
1.2. Классификация языков программирования высокого уровня
3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ САМЫХ ВОСТРЕБОВАННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
3.1. Рейтинг популярных языков программирования в России и США
Несмотря на долгую историю, Паскаль является динамично развивающимся языком программирования высокого уровня. Современные версии компилятора ликвидировали большинство перечисленных выше недостатков.
Программы на Паскале начинаются с ключевого слова program и следующего за ним имени программы строчкой с запятой (в некоторых диалектах является необязательным), за именем может в скобках следовать список внешних файловых дескрипторов в качестве параметров; за ним следует тело программы, состоящее из секций описания переменных, типов и констант, объявлений процедур и функций и следующего за ними облака операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения.
Таким образом, простейшая программа на Паскале будет выглядеть следующим образом:
program p;
begin
end.
Программа не выполняет никаких действий и содержит пустой блок операторов.
Пример программы, выводящей строку «Hello, world!»:
program HelloWorld(output);
begin
writeln('Hello, World!') { оператор вывода строки }
end.
Паскаль, в его первоначальном виде, представляет собою чисто процедурный язык и включает в себя множество алголоподобных структур и конструкций с зарезервированными словами наподобие if, then, while, for, и т.д.[29]
Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций, которые отсутствуют в изначальном Алголе-60, такие как определение типов, записи, указатели, перечисления, и множества. Эти конструкции были частично унаследованы или инспирированы от языков Симула-67, Алого-68, созданного Никлаусом Виртом AlgolW и предложены Хоаром.
В современных диалектах (Free Pascal) доступны такие операции, как перегрузка операторов и функций.[30]
д) язык Лисп (Lisp). Считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP – язык для разработки надстроек в продуктах компании AutoDesk.
Пример Куайн (программы, выводящей свой исходный код) на Лиспе:
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Данная программа должна работать на большинстве диалектов Лиспа, в том числе и на числаФибоначчи с использованием макроса Loop:
(defun fibonacci (n)
(loop repeat n
for a = 1 then b
and b = 1 then (+ a b)
finally (return a)))
Первые области применения Лиспа были связанны с символьной обработкой данных и процессами принятия решений
Наиболее популярный на сегодня диалект Лисп является универсальным языком программирования. Он широко используется в самых разных проектах: Интернет- серверы и службы, серверы приложений и клиенты, взаимодействующие с реляционными и объектными данными, научные расчеты и игровые программы.
Одно из направлений использования Lisp- его использование в качестве скриптового языка, автоматизирующего работу в ряде прикладных программ.
Лисп используется как язык сценариев в САПР AutoLISP .
Лисп является одним из базовых средств текстового редактора EmacsLISР. По сути большая часть Emacs написана на EmacsLISP, что дает неограниченные возможности расширения функциональности.
В оконном менеджере Rep, который в значительной степени повторяет диалект Лиспа от Emacs.
Диалект Gimp.
Диалект GOAL используется для высокодинамичных трёхмерных игр.
Лисп может использоваться для написания скриптов в аудиоредакторе
Интересные факты
Существует расшифровка названия LISP в виде рекурсивного акронимаLISP is ProcessingLanguage.[31]
е) язык Пролог (Prolog). Используется для реализации систем искусственного интеллекта, а также и интеллектуальных систем баз данных.
Написание программ на языке Пролог существенно отличается от использования других языков программирования. Программа на Прологе не является реализацией некоторого алгоритма, а представляет собой запись на языке формальной логики . Таким образом, данный язык относится к описательным языкам программирования.
Таким образом, сферой применения данного языка является решение логических задач. Для создания вычислительных, графически задач, реализации пользовательского интерфейса данный язык не предназначен.
Большинство объектно-ориентированных языков являются версиями процедурно-ориентированных и проблемно-ориентированных.
Пример:
Вычисление наибольшего общего делителя нескольких чисел:
% Как запускать.
%
% Проверено с GNU Prolog 1.3.1
%
% # gplc --no-top-level gcd.pro
% # ./gcd 22 33 44 121
% Первое число, второе число, НОД
% Верно, что НОД (A, 0) = A
gcd2(A, 0, A).
% Верно, что НОД(A, B) = G,
% когда A>0, B>0 и НОД(B, A % B) = G (% - остаток от деления)
gcd2(A, B, G) :- A>0, B>0, N is mod(A, B), gcd2(B, N, G).
gcdn(A, [], A).
gcdn(A, [B|Bs], G) :- gcd2(A, B, N), gcdn(N, Bs, G).
gcdn([A|As], G) :- gcdn(A, As, G).
:- initialization(main).
str2int([], []).
str2int([S|St], [N|Nt]) :- number_atom(N, S), str2int(St, Nt).
main :-
argument_list(Args),
str2int(Args, Numbers),
gcdn(Numbers, G),
write(G), nl.
Программа на Прологе описывает отношения, определяемые с помощью предложений. Как и в любом другом языке, ориентированном на символьные вычисления, предложения выстраиваются из термов, которые в свою очередь подразделяются на атомы, числа, переменные и структуры. Атом записывается со строчной буквы или заключается в кавычки, когда требуется запись с прописной буквы.
atom
'Atom'
Переменные, записывающиеся с прописной буквы, отличаются от переменных в процедурных языках программирования, они не связанны с конкретной ячейкой памяти, а скорее ближе к математической переменной.
X is 2 + 2.
Структуры представляют собой совокупности термов, заключенные в круглые скобки, в том числе и другие структуры. Структура обозначается именем (функтором), которое располагается перед круглыми скобками.
book('Название', '2009', 'Спб', authors('Первый автор', 'Второй автор')).
Еще одной конструкцией является списки, элементы которых заключаются в квадратные скобки. В основе списков в Пролог лежат связные списки.
List = [a, b, [c, d], e].
В чистом Прологе предложения ограничиваются Дизъюнктами Хорна
Вывод :- Условие.
И читаются как: Заголовок ИСТИНА, если Тело ИСТИНА. Тело правила содержит ссылки на предикаты, которые называются целями правила. Встроенные предикаты, /2, означающий оператор с двумя аргументами, определяющий конъюнкцию целей и ;/2 определяющий дизъюнкцию.[32]
В настоящий момент наиболее активно используются и развиваются следующие среды программирования:
а) Delphi (Lazarus некоммерческая – версия для ОС семейства Linux) – основана на Object Pascal;
б) C++, С# (~ C);
в) Visual Basic (~ Basic);
г) Visual Fortran (~ Fortran);
д) Prolog++ (~ Prolog).
Новой тенденцией является появление ЯП еще более высокого уровня (ультравысокоуровневых). Такого рода языки характеризуются наличием дополнительных структур и объектов, ориентированных на прикладное использование. Прикладные объекты требуют минимальной настройки в виде параметров и моментально готовы к использованию. Использование ультравысокоуровневых ЯП снижает временные затраты на разработку программного обеспечения и повышает качество конечного продукта за счет уменьшения объема и исходных кодов.
Пример: Application XML
3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ САМЫХ ВОСТРЕБОВАННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
3.1. Рейтинг популярных языков программирования в России и США
Новостной ресурс Quartz представил свою обработку масштабного исследования рынка труда в США, выбрав оттуда работы для программистов. Им было интересно узнать, какие языки программирования сейчас котируются на рынке – то есть, кто из программистов зарабатывает больше. На гистограмме представлены отсортированные данные по средней зарплате в отрасли в зависимости от ЯП за май 2017 года.
Рейтинг популярности языков программирования в США
Очень востребованы программисты Java, а также разработчики, использующие иные технологии, например, ASP.NET, SharePoint. Кроме того, на рынке труда также ценятся профессионалы в сфере автоматизации бизнеса и производства на базе систем SAP и др. Особый спрос идет на программистов высокого уровня.[33]
TIOBE-индекс, продемонстрировал популярность языков программирования в России за определенный промежуток времени. Его система основана на количестве поисковых запросов руководств по конкретному языку программирования. Ссылаясь на эти запросы, можно увидеть, рейтинг популярности ЯП в России за май 2017 года, а так же проследить изменение спроса по сравнению с 2016 годом.
Таблица 2. Рейтинг популярности языков программирования в России
|
Май 2017 |
Май 2016 |
Язык программирования |
Рейтинг |
Изменение % |
|---|---|---|---|---|
|
1 |
1 |
Java |
17.278% |
-4.19% |
|
2 |
2 |
C |
9.349% |
-6.69% |
|
3 |
3 |
C++ С++ |
6.301% |
-0.61% |
|
4 |
4 |
C# |
4.039% |
-0.67% |
|
5 |
5 |
Python |
3.465% |
-0.39% |
|
6 |
7 |
Visual Basic .NET |
2.960% |
+0.38% |
|
7 |
8 |
JavaScript |
2.850% |
+0.29% |
|
8 |
11 |
Perl |
2.750% |
+0.91% |
|
9 |
9 |
Assembly language |
2.701% |
+0.61% |
|
10 |
6 |
PHP |
2.564% |
-0.14% |
|
11 |
12 |
Delphi/Object Pascal |
2.561% |
+0.78% |
|
12 |
10 |
Ruby |
2.546% |
+0.50% |
|
13 |
54 |
Go |
2.325% |
+2.16% |
|
14 |
14 |
Swift |
1.932% |
+0.57% |
|
15 |
13 |
Visual Basic |
1.912% |
+0.23% |
|
16 |
19 |
R |
1.787% |
+0.73% |
Продолжение таблицы 2
|
Май 2017 |
Май 2016 |
Язык программирования |
Рейтинг |
Изменение % |
|---|---|---|---|---|
|
17 |
26 |
Dart |
1.720% |
+0.95% |
|
18 |
18 |
Objective-C |
1.617% |
+0.54% |
|
19 |
15 |
MATLAB |
1.578% |
+0.35% |
|
20 |
20 |
PL/SQL |
1.539% |
+0.52% |
В 2016 г. самым популярным языком программирования был признан Go, разработанный Google. Данный язык программирования набрал 2,16% за год и уверенно обогнал своих ближайших конкурентов- Dart (+ 0,95%) и Perl (+ 0,91%).[34]
ЗАКЛЮЧЕНИЕ
В данной курсовой работе была рассмотрена тема классфикации языков прогаммирования высокого уровня, чтобы исследовать ее были использованы многие литературные источники, которые помогли разобраться и выявить основные элементы данной темы и понять принцип работы этих программ.
В первой главе были изучены основные понятия, составные элементы и классификации языков программирования. Рассмотрены основные требования, предъявляемые к языкам программирования, так же выяснили, что важным преимуществом языков высокого уровня является их универсальность, независимость от ЭВМ и что они могут быть классифицированы по разным основаниям.
Во второй главе были исследованы тенденции развития языков программирования, так как: Basic, Pascal, Fortran, Cobol, LISP, Prolog,С, C++, Ada, Java, Delphi. С помощью данной главы удалось детально изучить историю каждого из них, узнать от том кто и когда создал известные всем языки. А так же было изучено, для какой области они предназначены.
Было обращено внимание на темпы роста и развития новейших технологий в области программирования.
Был проведен сравнительный анализ самых востребованных языков программирования. С помощью новостного ресурса Quartz стало известно, что на сегодняшний день востребованным языком у программистов в США является Java, а также и у разработчиков, использующих иные технологии, например, ASP.NET, SharePoint. Отсюда был сделан вывод, что особый спрос идет на программистов высокого уровня.
При помощи TIOBE-индекса были получены результаты популярности языков программирования в России за май 2017 года, в сравнении с 2016 годом. Самым популярным был признан Go, разработанный Google.
Проанализировав все выше изложенное, можно сделать вывод, что каждый язык высокого уровня имеет свои преимущества, и недостатки. Критерии оценки могут быть как объективные, так и субъективные и иногда имеются внешние причины, влияющие на оценку языков программирования. В основе всех языков программирования лежит некоторая руководящая идея, оказывающая существенное влияние на стиль и технологию соответствующих программ, что в большей степени сказывается на спросе того или иного языка программирования.