Файл: Обзор языков программирования высокого уровня (ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2023

Просмотров: 331

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Предлагая выбор в методологии кодирования, философия Python отвергает буйный синтаксис (например, Perl) в пользу более простой, менее загроможденной грамматики. Как сказал Алекс Мартелли: «Описывать что-то как «умного» не считается комплиментом в культуре Питона». Философия Питона отвергает Perl «есть более чем один способ сделать это» подход к языковому дизайну в пользу «должен быть один - и желательно только один - очевидный способ сделать это».

Разработчики Python стремятся избежать преждевременной оптимизации и отклонять патчи для некритических частей CPython, которые будут предлагать предельное увеличение скорости за счет ясности. Когда скорость важна, программист Python может перемещать критически важные функции в модули расширения, написанные на таких языках, как C, или использовать PyPy, компилятор точно в момент времени. Также доступен Cython , который преобразует скрипт Python в C и делает прямые вызовы API уровня C в интерпретаторе Python.

Важной целью разработчиков Python является его использование. Это отражено в названии языка - дань британской комедийной группе Monty Python - и иногда игривые подходы к учебникам и справочным материалам, например примеры, относящиеся к спаму и яйцам (от известного эскиза Монти Питона ) стандартного foo и bar .

Обычный неологизм в сообществе Python является питоническим, который может иметь широкий диапазон значений, связанных с программным стилем. Сказать, что код является pythonic, это сказать, что он хорошо использует идиомы Python, что он естественный или проявляет беглость в языке, что он соответствует минималистской философии Python и акценту на удобочитаемости. Напротив, код, который трудно понять или читает как грубая транскрипция с другого языка программирования, называется unpythonic .

Пользователи и поклонники Python, особенно те, которые считаются знающими или опытными, часто называются питонами, питонистами и питонами.

Большинство реализаций Python (включая CPython) включают цикл чтения-eval-print (REPL), позволяющий им работать в качестве интерпретатора командной строки, для которого пользователь последовательно вводит операторы и немедленно получает результаты [8].

Другие оболочки, включая IDLE и IPython , добавляют дополнительные возможности, такие как автозаполнение, сохранение состояния сеанса и подсветка синтаксиса [8].

Помимо стандатных стандартных сред разработки для настольных компьютеров, существуют интегрированные среды на базе веб-браузера; SageMath (предназначен для разработки программ Python, связанных с наукой и математикой); PythonAnywhere, основанная на браузере среда IDE и хостинга; и Canopy IDE, коммерческая среда разработки Python, подчеркивающая научные вычисления [8].


CPython является эталонной реализацией Python. Он написан на C, соответствующем стандарту C89, с несколькими функциями C99. Он компилирует программы Python в промежуточный байт-код , который затем выполняется его виртуальной машиной. CPython распространяется с большой стандартной библиотекой, написанной в смеси C и native Python. Он доступен для многих платформ, включая Windows и большинство современных Unix-подобных систем. Переносимость платформы была одним из ее первых приоритетов.

PyPy - быстрый, совместимый интерпретатор Python 2.7 и 3.5. Его компилятор точно в срок значительно улучшает работу над CPython [13].

Stackless Python является важной вилкой CPython, которая реализует микропотоки ; он не использует стек памяти C, позволяя, таким образом, осуществлять параллельные программы. PyPy также имеет версию без стека.

MicroPython и CircuitPython - это варианты Python 3, оптимизированные для микроконтроллеров.

Рассмотрим интерактивный режим [12]. Вначале Питон пишет информацию о себе и о системе, а затем выводит своё приглашение (>>>), с этого момента он будет интерпретировать всё, поступающее с клавиатуры. Заставить Питон интерпретировать введённую строку можно клавишей Enter.

Простейшая программа:

print ("Hello World")

В версии 2 можно было писать print “Hello World”, в версии 3 надо использовать функцию печати [14].

Функция print:

def print(*args, sep=' ', end='\n', file=sys.stdout)

*args - выводимые объекты

sep - разделитель между выводимыми значениями (по умолчанию - пробел)

end - символ, которым заканчивается вывод (по умолчанию - символ новой строки)

file - file-like объект, в который мы можем перенаправить вывод, который по умолчанию производится в sys.stdout

Комментарии в Питоне:

a = “Это строка”#Это комментарий

Вычисления:

(50-5*6)/4

В интерактивном режиме последнее выведенное на экран выражение сохраняется в переменной по умолчанию _. Это удобно для продолжения вычислений в выражениях:

>>> 2+3

5

>>> _ + 1

6

Действительно, считать на языке Python просто.

2.4. Современные тенденции развития языков

Развитие языка программирования продолжается, как в промышленности, так и в исследованиях. Некоторые из последних тенденций включают [16, 20]:

Расширение поддержки функционального программирования на основных языках, используемых на коммерческой основе, включая чисто функциональное программирование для упрощения анализа кода и его облегчения (как на микро-, так и на макроуровнях)


Создает поддержку параллельного и распределенного программирования.

Механизмы для добавления проверки безопасности и надежности на язык: расширенная статическая проверка, зависимая типизация, управление потоком информации, статическая безопасность потоков.

Альтернативные механизмы для компоновки и модульности: миксины, черты, стили, делегаты, аспекты.

Разработка программного обеспечения на основе компонентов.

Метапрограммирование, отражение или доступ к абстрактному синтаксическому дереву

AOP или Aspect Oriented Programming, позволяющие разработчикам вставлять код в другой модуль или класс в «точки соединения»,

Языки домена и генерация кода

XML для графического интерфейса (XUL , XAML )

Повышенный интерес к распределению и мобильности.

Интеграция с базами данных, включая XML и реляционные базы данных.

Открытый исходный код как философия развития для языков, включая сборник компиляторов GNU и языки, такие как Python , Ruby и Scala .

Массивно параллельные языки для кодирования 2000 процессоров графических процессоров и суперкомпьютерных массивов, включая OpenCL

Ранние исследования (как еще не реализуемые) квантовых компьютерных языков программирования

Больше интереса к языкам визуального программирования, таким как Scratch.

Остановимся на мнение GitHub.

Каждая команда на GitHub Enterprise создает программное обеспечение, но более половины из них кодируют для других отраслей—от финансов до розничной торговли. Эта десятка представлена на рис. 4 [10].

Рисунок 4. Основные области приложения по версии GitHub

Из этой диаграммы видно, что с большим опережением превалируют разработки для Интернета.

Быстрый рост Интернета в середине 1990-х годов создавал новые возможности для новых языков [15, 16]. Perl , первоначально инструмент для сценариев Unix, впервые выпущенный в 1987 году, стал распространенным явлением на динамичных веб-сайтах . Java стал использоваться для серверного программирования, а байт-коды виртуальных машин снова стали популярными в коммерческих настройках с их обещанием «Напиши один раз, бегите куда угодно» (UCSD Pascal был популярен в начале 1980-х годов). Эти разработки не были принципиально новыми, скорее они были уточнениями многих существующих языков и парадигм (хотя их синтаксис часто основывался на семействе языков программирования C).

С момента создания первого языка было создано более 2500 различных языков программирования, и каждый год их число увеличивается. Обычно только создатели могут использовать свои языки, а другие становятся популярными среди миллионов. Профессиональные программисты используют в своей работе более 10 языков программирования. Развитие языков программирования продолжается, как в промышленности, так и в исследованиях. Текущие направления включают проверку безопасности и надежности, новые типы модульности (mixins , делегаты, аспекты) и интеграцию с базой данных, например LINQ от Microsoft .


Языки программирования 4-го поколения (4GL) - это языки компьютерного программирования, целью которых является предоставление более высокого уровня абстракции деталей внутреннего компьютерного оборудования, чем 3GL.

 Языки программирования пятого поколения (5GL) - это языки программирования, основанные на решении проблем с использованием ограничений, предоставляемых программе, а не на использовании, написанного программистом.

Хотя языки программирования четвертого поколения предназначены для создания конкретных программ, языки пятого поколения предназначены для того, чтобы компьютер мог решить заданную проблему без программиста. Таким образом, пользователю нужно только беспокоиться о том, какие проблемы необходимо решить и какие условия необходимо выполнить, не беспокоясь о том, как реализовать рутину или алгоритм их решения. Языки пятого поколения используются в основном в исследованиях искусственного интеллекта . OPS5 и Mercury являются примерами языков пятого поколения.

Эти типы языков были также построены на Lisp, многие из которых были созданы на машине Lisp, например ICAD . Затем есть много языков кадров, таких как KL-ONE. 

В 1980-х годах языки пятого поколения считались вариантом будущего, а некоторые предсказывали, что они заменят все другие языки для развития системы, за исключением языков низкого уровня. В частности, с 1982 по 1993 год Япония вкладывала много исследований и денег в свой проект компьютерных систем пятого поколения, надеясь разработать мощную компьютерную сеть машин с использованием этих инструментов.

Однако по мере создания более крупных программ недостатки подхода стали более очевидными. Оказывается, что, учитывая набор ограничений, определяющих конкретную проблему, получение эффективного алгоритма для его решения является очень сложной проблемой само по себе. Этот важный шаг еще не может быть автоматизирован и по-прежнему требует понимания человека-программиста.

Выводы по главе

Анализ популярных языков программирования показал, что скорее всего современные языки высокого уровня характеризуется дополнительными возможностями для работы с Интернетом. Впрочем, появление изотерических языков, говорит и о появление некоторых новых тенденций, смысл которых не ясен.

ЗАКЛЮЧЕНИЕ

В данной курсовой работе была поставлена цель изучения современных языков программирования. Для этого были решены ряд задач.


В первом разделе были изучены источники из Интернета и составлена общая картина развития языков программирования от начала эры ЭВМ до настоящего времени. До 2000 года основная причина развития языков – это попытка преодолеть проблему сложности программного обеспечения.

Приводится точное определение языков программирования, т.к. существуют конструкции, похожие на языки программирования, но это не языки программирования. Составлена классификация языков программирования, в основу которой положена парадигма программирования.

Во втором разделе изучено современное состояние языков программирования. Дан обзор основных языков программирования. Как удалось выяснить, существует множество методов оценки популярности языков, причем они дают разные результаты. Для оценки популярности языка были использованы данные с GitHub, эти данные представляются наиболее убедительными. Оказалось, что наиболее популярны языки, используемые в веб-программирование. Рассмотрено такое новое явление, как изотерические языки. Кроме того, наблюдается появление некоторых новых средств, например, делегаты и reflection.

Итак, по результатам выполнения данной курсовой работы можно сделать следующие выводы. Общими свойствами современных языков программирования является то, что все они, в той или иной мере, поддерживают ООП. На данный момент наиболее популярным языком является язык JavaScript. Основная современная тенденция развития языков программирования – адаптация к Интернету.

СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ

  1. 15 самых популярных языков программирования по версии GitHub URL: https://habr.com/ru/post/310262/
  2. Берд, Дж. Веб-дизайн.Руководство разработчика. / Дж. Берд. - СПб.: Питер, 2012. - 224 c.
  3. Доусон М. Программируем на Python. – СПб.: Питер, 2014. – 416 с.
  4. Информатика. Базовый курс. Учебник для Вузов/под ред. С.В. Симоновича, - СПб.: Питер, 2000.
  5. Иванова Г.С. Основы программирования: Учебник для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2012. - 416 с.
  6. Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 1280 с.
  7. Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с.
  8. Лутц М. Программирование на Python, том II, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с.
  9. Мартынов, Н. Н. Алгоритмизация и основы объектно-ориентированного программирования на JavaScript. Информатика и ИКТ. Профильный уровень. 10 класс / Н.Н. Мартынов. - М.: Бином-Пресс, 2010. - 272 c.
  10. Макнейл, П. Настольная книга веб-дизайнера / П. Макнейл. - СПб.: Питер, 2013. - 264 c.
  11. Подборка эзотерических языков программирования (https://tproger.ru/digest/esoteric-programming/?utm_referrer=https%3A%2F%2Fzen.yandex.com)
  12. Простой курс по языку Питон, URL: http://www.opennet.ru/docs/143.shtml
  13. Прохоренок Н.А. Python 3 и PyQt. Разработка приложений. – СПб.: БХВ-Петербург, 2012. – 704 с.
  14. Пилгрим Марк. Погружение в Python 3 (Dive into Python 3 на русском)
  15. Средства разработки сайтов, URL: http://ekrost.ru/poster/sredstva-razrabotki-saitov.html
  16. Сырых, Ю.А. Современный веб-дизайн. Эпоха Веб 3.0 / Ю.А. Сырых. - М.: Вильямс, Диалектика, 2013. - 368 c.
  17. ТОП 10 языков программирования, URL: http://webtricks-master.ru/beginners/top-10-yazykov-programmirovaniya-v-2018-godu/
  18. ТОП языков программирования на GitHub, URL: https://octoverse.github.com/
  19. Фридланд А.Я., Ханамирова Л.С., Фридланд И.А. Информатика и компьютерные технологии. Основные термины. Толковый словарь. М..Издательство Астрель., 2003.
  20. Языки программирования для веб-разработки. URL: https://webshake.ru/post/769