Файл: Современные языки программирования (История создания).pdf
Добавлен: 31.03.2023
Просмотров: 354
Скачиваний: 2
СОДЕРЖАНИЕ
Введение
Целью курсовой работы является изучить теоретический материал по современным языкам программирования.
Каждый год появляются новые и новые языки программирования. Это связано с тем, что разработчики хотят найти более удобный подход к программированию и разработке программного обеспечения.
Прежде чем приступить к обсуждению современных языков программирования, давайте разберемся в терминологии:
Языки программирования – это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.
Алфавит – это разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и величины данного языка.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования каждой языковой конструкции, позволяющих производить процесс обработки данных.
Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т.д. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грамматики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы. [4, С.319]
Классификация языков программирования:
По способу выполнения языки программирования делятся на компилируемые, интерпретируемые, компилируемые на основе псевдокода и совмещенные.
Компилируемые языки. К этой группе относят язык программирования, исходный код которых преобразуется специальной программой-компилятором в объектные модули, которые затем собираются при помощи программы сборки (линковщика) в единый загружаемый модуль. Это представляет собой выполняемую программу. Компилируемыми являются языки C, C++, Object Pascal.
Интерпретируемые языки. К этой группе относят язык программирования, исходный код которых считывается и выполняется специальной программой-интерпретатором инструкция за инструкцией. Интерпретируемыми являются большинство версий языков Basic и Forth.
Языки, компилируемые на основе псевдокода («шитого» кода). В этих языках исходный код программы компилируется и выполняется как последовательность вызовов подпрограмм из существующих библиотек. Таковыми являются некоторые версии Basic.
Совмещенные языки. В совмещенных языках исходный код проходит две стадии обработки. На первой стадии происходит компиляция исходного кода до уровня промежуточного языка (байт-код в Java или язык MSIL в технологии .NET). На второй стадии происходит интерпретация промежуточного кода (в Java этим занимается виртуальная машина Java) или докомпиляция промежуточного кода до выполняемого машинного кода (эту функцию осуществляет среда выполнения CLR в технологии .NET).
По факту созданию процесса языки программирования делятся на создающие процесс и сценарные.
Языки создающие процесс. После запуска программы создается отдельный процесс выполнения этой программы. Так происходит в языках C, C++, Object Pascal.
Сценарные языки. Сценарий, или скрипт, - это программа, которую выполняет другая программа. В качестве примеров можно привести скрипты оболочки в UNIX, программы на языках PHP, Python, Ruby.
По степени автономности языки программирования делятся на автономные и встроенные.
Автономные языки программирования (C, C++, Java) являются автономным инструментом для создания программ.
Встроенные языки программирования являются частью какой-то системы и позволяют создавать программы, предназначенные для работы только в этой системе. Пример наиболее известного встроенного языка – VBA (Visual Basic for Application), который используется только внутри приложений Microsoft Office для автоматизации и расширения их функциональности. Встроенными являются также язык программирования системы 1C и язык JavaScript, который выполняется только внутри интернет-приложений.
По уровню отдаленности языка программирования от естественных языков их делят на низкоуровневые и высокоуровневые.
Языки низкого уровня ближе к логике процессора вычислительной машины, например, машинный язык, ассемблер.
Языки высокого уровня ближе лингвистически к человеческому языку. Это все остальные языки программирования.
По парадигмам языки программирования делятся на императивные (процедурные), функциональные, логические и объектно-ориентированные.
Императивные (процедурные) языки описывают решение задачи как последовательность процедур. К императивным относится большинство современных языков программирования.
Функциональные языки описывают требуемый результат в виде набора вложенных друг в друга функций (Haskell).
Логические языки описывают требуемый результат в виде суммы логических операций (Prolog).
Объектно-ориентированные языки способны определять абстрактные типы данных и реализовывать основные парадигмы объектно-ориентированного программирования (ООП): инкапсуляцию, наследование и полиморфизм (C++, Java, Object Pascal, и др.). [5, С. 557-559]
Главы
Глава 1. Современные языки программирования
Голландская компания TIOBE Software изучает популярность языков программирования. Каждый месяц она публикует отчет на своем сайте. На июль 2019 года статистика распределения популярности языков такая:
Данные основаны на количестве курсов, мнениях опытных программистов и запросах в Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube и Baidu.
Пять самых популярных языков составляют Java, C, Python, C++, C#.
Как мы видим за год статистика популярности изменилась ненамного. Данные пять языков прочно входят в топ современных языков программирования.
Стоит отметить, что Java не популярна с США и Европе. В этих странах большей популярностью обладает C и C#.
График выше показывает популярность языков по годам.
Как мы видим тройка языков Java, C, C++ популярны уже на протяжении шестнадцати лет.
Также это видно из таблицы выше.
Из всех этих данных, мы можем сделать вывод о том, что популярность языков не сильно изменяется из года в год.
Поэтому в следующих главах мы рассмотрим пять наиболее популярных языков Java, C, Python, C++, C#.
Глава 2. Java
Глава 2.1. Общие сведения
Язык Java, является самым популярным языком больше шестнадцати лет. На нем написаны тысячи миллионов строк кода.
Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). В настоящее время проект принадлежит OpenSource и распространяется по лицензии GPL. В OpenJDK вносят вклад крупные компании, такие как — Oracle, RedHat, IBM, Google, JetBrains. Так же на основе OpenJDK эти компании разрабатывают свои сборки JDK. Как утверждает компания Oracle — отличия между OpenJDK и OracleJDK практически отсутствуют за исключением лицензии, отрисовки шрифтов в Swing и некоторых библиотек, на которые лицензия GPL не распространяется. Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года. На 2019 год Java — один из самых популярных языков программирования.
Глава 1.2 История создания
Изначально язык назывался Oak («Дуб»), разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Из-за того, что язык с таким названием уже существовал, вскоре Oak был переименован в Java[13]. Назван в честь марки кофе Java, которая, в свою очередь, получила наименование одноимённого острова (Ява), поэтому на официальной эмблеме языка изображена чашка с горячим кофе. Существует и другая версия происхождения названия языка, связанная с аллюзией на кофе-машину как пример бытового устройства, для программирования которого изначально язык создавался. В соответствии с этимологией в русскоязычной литературе с конца двадцатого и до первых лет двадцать первого века название языка нередко переводилось как Ява, а не транскрибировалось.
В результате работы проекта мир увидел принципиально новое устройство, которое опередило своё время более чем на 10 лет. Устройство получило название Star7, но из-за большой стоимости в 50 долларов не смогло произвести переворот в мире технологии и постепенно забылось.
Star7 не пользовался популярностью в отличии от языка программирования Java и его окружения. Следующий этапом жизни языка стала разработка интерактивного телевидения. В 1994 году стало очевидным, что интерактивное телевидение было ошибкой.
В середине 1994 года широкого распространения набрал WWW (world web wide) где Java смог реализовать свои возможности при построении динамических веб страниц, точнее, вставок в них, которые получили название servlet. Данная технология имела огромный успех который и сейчас преследует язык.
Впоследствии язык стал использоваться для написания клиентских приложений и серверного программного обеспечения.
Глава 1.3 Особенности языка
Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером), вызывают немедленное прерывание.
Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:
применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
обширное использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами архитектуры ARM).
По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее[14]. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10—30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.
Глава 3. Си
Глава 3.1 Общие сведения
Си (англ. C) — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.