Добавлен: 05.04.2023
Просмотров: 470
Скачиваний: 1
ВВЕДЕНИЕ
В 50-х годах XX века с появлением компьютерах на электронных лампах началось бурное развитие языков программирования (ЯП). На данном этапе развития персональных компьютеров и компьютерных технологий невозможно представить какого-либо специалиста, не владеющего информационными технологиями.
Так же с появлением персональных компьютеров языки программирования стали составными частями интегрированных сред разработки. Появились языки, которые применяются в различных офисных компаниях и не только. В настоящее время ЯП применяются в самых различных областях человеческой деятельности.
Актуальность данной темы заключена в том, что прогресс информационных технологий определил процесс появления современных языков программирования.
Объект исследования – языки программирования и их история развития.
Цель курсовой работы – это проанализировать теоретический материал по современным языкам программирования и сделать вывод.
Задачи исследования:
- Ознакомиться с ЯП и рассмотреть их основные концепции.
- Исследовать историю развития ЯП.
- Сделать обзор современных ЯП.
ГЛАВА 1. Исследование истории и анализ основных понятий языков программирования
1.1. История развития языков программирования
История начинается в далеких 20-х годах XIX-го века, когда английский исследователь К. Бэббидж выдвинул идею предварительной записи действий компьютера.
До появления компьютеров были предприняты попытки контролировать ткацкие станки. Программы для станков были записаны на перфокартах, которые были изобретены Чарльзом Бэббиджем и французским изобретателем Жозефом Жаккардом. История программирования началась с этих первых программ [1].
В XX веке появились электронные вычислительные машины (ЭВМ). Первые программы, которые были скомпилированы для них, были записаны в машинных кодах. Программист, чтобы написать правильную программу, должен был подробно представить работу компьютера. Из-за этого человеку было очень трудно общаться с компьютером, поэтому программисты стали всерьез задумываться о кодировании программ. Они пришли к выводу, что программа должна быть написана на языке, более доступном для людей, чем язык машинных инструкций. Вот так и возникла необходимость в создании ЯП.
В 1950-х годах был создан Fortran (FORTRAN от FORmula TRANslator - переводчик формул). Как и первые компьютеры, этот язык был в основном предназначен для выполнения естественных наук и математических расчетов. В улучшенном виде этот язык сохранился до наших дней [4]. Среди современных языков высокого уровня он является одним из наиболее часто используемых в научных исследованиях.
После Fortran в 1957 году появился язык Алгол (ALGOL от ALGOrithmic Language). Этот язык, как и Фортран, должен был решать научно-технические проблемы. Кроме того, этот язык использовался как средство обучения основам программирования [2].
Лисп (LISP от LISt Processing - List Processing), созданный в 1960 году Джоном Маккарти. Этот язык широко используется для обработки символической информации и используется для создания ПО, которое имитирует деятельность человеческого мозга.
В середине 1960-х годов в качестве учебного языка был разработан Символический универсальный учебный код для начинающих, или BASIC [5].
PL / I (Programming Language One) был создан в 1967 году. По своим возможностям PL / I намного мощнее, чем многие другие языки (C, Pascal).
В конце 60-х - начале 70-х гг. появился Форт (FORTH - четвертый). Этот язык начал использоваться для управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Обсерватории Аризоны [5].
Язык Pascal, появившийся в 1971 году, был назван в честь великого французского математика XII-го века, изобретателя первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом по компьютерам Никлаусом Виртом [6].
На Pascal в конце 1970-х гг. был создан язык Ада, названный в честь одаренного математика Ады Лавлейс [10].
В настоящее время C является популярным языком среди программистов. Этот язык был создан в лаборатории Белла в 1972 году и изначально не считался массовым. Планировалось заменить ассемблер, чтобы иметь возможность создавать одинаково эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-х годах было написано много прикладных и системных программ, а также ряд известных операционных систем (например, UNIX) [1].
Другой язык был создан в начале 70-х годов. Группой специалистов из Университета Марселя. Это язык Пролог. Он получил свое название от слов «Программирование на языке LOGIC». Этот язык основан на законах математической логики [2].
Еще один из самых популярных языков программирования – C ++, который является объектно-ориентированным расширением языка C, созданным Бьяром Страуструпом в 1980 году [8].
Java – этот язык был создан компанией Sun в начале 90-х годов на основе C++. Его цель – упростить разработку приложений на C++, удалив все низкоуровневые функции. Но основной характеристикой этого языка является не компиляция в машинном коде, а в независимом от платформы байт-коде (каждая команда занимает байт) [9].
C # (Sea Sharp). В конце 1990-х годов Microsoft разработала язык C # под руководством Андерса Хейлсберга. Он воплотил в себе лучшие идеи C и C ++, а также их преимущества [13].
В последние десятилетия появился объектно-ориентированный подход к программированию, который получил значительное развитие. Это метод программирования, который имитирует реальную картину мира: информация, используемая для решения проблемы, представлена в виде множества взаимодействующих объектов.
Большинство современных языков программирования являются объектно-ориентированными. Среди них самые последние версии Turbo Pascal, C ++, Ada и другие.
В настоящее время Visual Basic, Visual C ++, Delphi и др. являются широко используемыми системами визуального программирования. Они позволяют создавать сложные пакеты приложений с простым и удобным пользовательским интерфейсом [3].
1.2. Основные понятия и классификация языков программирования
Самостоятельно написать программу на машинном коде очень сложно, и эта сложность значительно возрастает с увеличением размера программы и сложности решения желаемой задачи. Условно можно предположить, что машинный код является приемлемым, если размер программы не превышает нескольких десятков байтов, и что не требуется никакой операции ввода / вывода данных вручную.
Поэтому сегодня практически все программы создаются с использованием языков программирования. Теоретически, программа также может быть написана с использованием обычного (естественного) человеческого языка – это называется метаязыковым программированием (подобный подход обычно используется на этапе компиляции алгоритма), но пока невозможно автоматически перевести такую программу в машинный код из-за большой неоднозначности естественного языка [15].
Языки программирования являются формальными искусственными языками. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.
Алфавит – это авторизованный набор символов, из которого можно составить слова и значения из данного языка.
Синтаксис – это система правил, которые определяют разрешенные конструкции языка программирования из букв алфавита.
Семантика – это система правил для однозначной интерпретации каждой языковой конструкции, позволяющая обрабатывать данные.
Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т. д. В отличие от естественных языков, язык программирования имеет ограниченный запас слов (операторов) и строгих правил их написания. А правила грамматики и семантики, как и в любом формальном языке, явно однозначны и четко сформулированы.
Классификация ЯП [16]:
Согласно способу реализации ЯП, делятся на скомпилированные, интерпретируемые, скомпилированные на основе псевдокода и комбинированные.
- Скомпилированные языки. Эта группа включает ЯП, исходный код которого преобразуется специальным компилятором в объектные модули, которые затем собираются с использованием компоновщика в один загружаемый модуль. Это исполняемая программа. Скомпилированные языки: C, C ++, Object Pascal.
- Интерпретируемые языки. Эта группа включает ЯП, исходный код которого читается и исполняется специальной инструкцией программы интерпретатора в соответствии с инструкциями. Большинство версий языков Basic и Forth интерпретируются.
- Языки, скомпилированные на основе псевдокода («зашитый» код). На этих языках исходный код программы компилируется и выполняется как последовательность вызовов подпрограмм из существующих библиотек. Это некоторые базовые версии Basic.
- Комбинированные языки. На комбинированных языках исходный код проходит две стадии обработки.
- На первом этапе исходный код компилируется в промежуточный язык (байт-код в Java или MSIL в технологии .NET).
- На втором этапе интерпретируется промежуточный код (в Java это выполняется виртуальной машиной Java) или промежуточный код перекомпилируется в исполняемый машинный код (эта функция выполняется средой выполнения CLR в технологии .NET).
На самом деле процесс создание ЯП делится на создание процессов и сценариев [17].
- Языки, создающие процесс. После запуска программы создается отдельный процесс для запуска этой программы. Это происходит в C, C ++, Object Pascal.
- Сценические языки. Сценарий или скрипт – это программа, запущенная другой программой. Примеры включают в себя скрипт оболочки для UNIX, программы на PHP, Python и Ruby.
В зависимости от степени автономности ЯП делятся на независимые и интегрированные языки.
- Автономные языки программирования (C, C ++, Java) являются независимым инструментом для создания программ.
- Интегрированные языки программирования являются частью системы и позволяют создавать программы, которые работают только в этой системе. Примером самого известного интегрированного языка является VBA (Visual Basic для приложений), который используется только в приложениях Microsoft Office для автоматизации и расширения его функциональных возможностей. Язык программирования системы 1С и язык JavaScript, который выполняется только в интернет-приложениях, также интегрированы.
По уровню отдаленности ЯП от естественных языков они делятся на языки низкого и высокого уровня.
- Низкоуровневые языки ближе к логике процессора компьютера, например, машинный язык, ассемблер.
- Языки высокого уровня лингвистически ближе к человеческому языку. Это все другие языки программирования.
Согласно парадигмам, ЯП делятся на императивные (процедурные), функциональные, логические и объектно-ориентированные (ООП).
- Императивные (процедурные) языки описывают решение проблемы как последовательность процедур. Большинство современных ЯП являются обязательными.
- Функциональные языки описывают желаемый результат как набор вложенных функций (Haskell).
- Логические языки описывают желаемый результат как сумму логических операций (Prolog).
- Объектно-ориентированные языки (ООП) способны определять абстрактные типы данных и реализовывать основные парадигмы (ООП): инкапсуляция, наследование и полиморфизм (C ++, Java, Object Pascal и т. д.).
На основе нашего исследования сделаем сводную таблицу сравнения по самым популярным языкам программирования (Таблица 1).
Составим рейтингово-балльную оценку, где 10 – самая высока оценка, а 0 – самая низкая.
Таблица 1
Сравнительный анализ ЯП
|
Скорость обработки |
Читабельность |
Простота |
GUI (Графический интерфейс пользователя) |
Графика (2D) |
Графика (3D) |
Кроссплатформенность |
Спец.процессоры |
|
|
С |
8 |
6 |
2 |
3 |
5 |
8 |
7 |
10 |
|
С++ |
8 |
6 |
3 |
4 |
6 |
8 |
7 |
7 |
|
Java |
6 |
7 |
6 |
7 |
7 |
6 |
10 |
0 |
|
Python |
2 |
5 |
10 |
8 |
10 |
1 |
10 |
0 |
|
Assembler |
10 |
0 |
0 |
0 |
0 |
0 |
0 |
5 |
|
PHP |
6 |
10 |
8 |
10 |
5 |
2 |
10 |
10 |
|
C# |
8 |
6 |
5 |
4 |
6 |
8 |
10 |
10 |