Файл: Современные языки программирования (Определение и классификация языков программирования).pdf
Добавлен: 25.05.2023
Просмотров: 223
Скачиваний: 3
Период с конца 6о-х и до начала 8o-x годов характерно, то, что в этот момент разрабатывается много языков программирования с одной стороны. А с другой стороны наблюдается кризис программного обеспечения. Этот кризис особо остро переживало военное ведомство США. В январе 1975 г. Пентагон, что бы навести порядок в хаосе трансляторов и создал комитет, который занимался тем, что должен был разработать один универсальный язык. В результате был создан язык программирования Ада. Этот язык программирования был назван в честь Ады Августы Лавлеис[13].
Большой след в истории языков программирования оставил язык программирования Си (первая версия - 1972 г.). Си – это универсальный зяк программирования. Язык Си является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Данный язык программирования сочетает в себе черты как языка высокого уровня, так и машинно-ориентиров а иного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль[14].
В течение многих лет программное обеспечение строилось на основе
операциональных и процедурных языков, таких как Фортран. Бейсик, Паскаль. Ада, Си. Классическое операциональное и/или процедурное программирование требует от программиста детального описания того, как решать задачу; т.е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп - оператор и данные. При процедурном подходе операторы объединяются в группы - процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы технологии
программирования.
Принципиально иное направление в истории языков программирования
связано с методологиями (иногда говорят "парадигмами") непроцедурного
программирования. К ним можно отнести объектно-ориентиров а иное и
декларативное программирование. Объектно-ориентиров энный язык создает
окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как "черные ящики", не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует выделить язык Си++, но большой популярностью пользуются Delphi и Visual Basic.
2.3 Классификация языков программирования
Существует много принципов классификации языков программирования. Наиболее общим является подход, разделяющий этапы решения задач. Так как решение предполагается с помощью ЭВМ, а формулировка задачи остается за человеком, все языки можно разделить на машинные, машинно-зависимые, машинно-независимые и естественные человеческие языки.
Машинный язык - конечный набор команд в двоичных кодах, которые может выполнять процессор ЭВМ[15]. В конечном итоге любая программа должна быть переведена на этот язык, если мы хотим получить решение с помощью машины. Каждый новый тип процессора - это одновременно и новый машинный язык.
В настоящее время на машинных языках не пишут программы. Это можно делать на машинно-зависимых или машинно-независимых языках. Если хотят максимально использовать возможности и особенности машины при решении задачи используют машинно-зависимые языки. С ними трудно работать, но созданные с их помощью высококвалифицированными программистами программы занимают меньше места в памяти и работают быстрее. С их помощью удобнее разрабатывать системные программы, драйверы и другие виды программ.
Существующие языки программирования можно разделить на 2 категории:
Языки программирования низкого уровня;
Языки программирования высокого уровня [16].
Рисунок 1. Классификация языков программирования
Согласно представленной классификации, языки низкого уровня каждому оператору соответствует не более одной машинной команды. В их состав обязательно входит набор машинных команд каждого конкретного процессора. Языки программирования низкого уровня в настоящее время называются ассемблерами (старое название "автокоды").
Для каждого процессора существует своя группа ассемблеров. Ассемблеры для одного и того же процессора различаются между собой дополнительными возможностями, облегчающими программирование[17].
Другие авторы - Семененков, В.Л., Скуратович Э.К., предлагают более расширенную классификацию языков программирования. Выше представленную классификацию (См. Рисунок 1) они более детализируют, и она принимает следующую форму:
Рисунок 2. Классификация языков программирования[18]
На данный момент самой обобщенной классификацией языков программирования[19], является классификация представленная на рисунке А.
Все существующие на данный момент языки программирования служат разным целям, и разнотипность решаемых компьютером задач порождает следующую функциональную классификацию языков программирования:
· Языки для научных вычислений (C++, FORTRAN)
· Языки системного программирования (C++, Java)
· Языки для обработки информации (C++, Java, COBOL)
· Языки для создания искусственного интеллекта (LISP, PROLOG)
· Языки, используемые в издательской деятельности (Postscript, TeX)
· Языки для удаленной обработки информации (Perl, PHP, Java, C++)
· Языки для описания документов (HTML, XML)
и прочие.
Таким образом, можно согласиться с Ю.В. Ревич, что любой язык программирования это только инструмент, а как его используется программист, это уже другой вопрос[20].
.
Глава 2. Описание языков программирования
2.1 Язык программирования C++
С++ - этот язык программирования является языком общего назначения. Он сочетает в себе свойства как низкоуровневых, так и высокоуровневых языков и поддерживает различные парадигмы программирования. В отличии от языка С здесь особое внимание разработчики уделили поддержке обобщённого и объектно-ориентированного программирования. В названии «C++» унарный оператор ++ - это инкремент переменной. С++ очень широко используется для разработки программного обеспечения, так как он является очень популярным языком программирования. Что касается области его применения, то она включает в себя следующее: создание разнообразных прикладных программ, операционных систем, высокопроизводительных серверов, приложений для встраиваемых систем, драйверов устройств, а также развлекательных приложений. Язык С++ имеет коммерческие и бесплатные реализации[21].
Этот язык программирования был разработан Бьёрном Страуструпом (сотрудником фирмы Bell Laboratories) в начале 1980-х годов под собственные нужды путем внесения ряда усовершенствований к языку C. Сама идея создания этого языка появилась у Страуструпа еще при написании диссертации. Он пришел к выводу, что у языка моделирования Simula есть некоторые возможности, крайне полезные для разработки различного программного обеспечения, но этот язык работал очень медленно. Поэтому Страуструп решил язык C, который был преемником BCPL дополнить возможностями, которые имелись в языке Simula. Язык программирования С был многофункциональным, быстрым и переносимым. Страуструп решил к нему добавить возможность работы с объектами и классами. Для начала в C были добавлены производные классы, классы (с инкапсуляцией), inline-функции, строгая проверка типов и аргументы по умолчанию, также была написана программа cfront — транслятор, который перерабатывает в исходный код простого C исходный код C с классами. То есть, цель разработки этого языка программирования состояла в добавлении в язык программирования С конструкций для объектно-ориентированного программирования, а именно — классов[22].
Новый язык стал достаточно популярным. В 1983 году язык C с классами был переименован в C++. Название C++ было придумано Риком Масситти. Заметим, что C++ повлиял и на другие языки программирования, например на C# и Java. Бьёрн Страуструп при создании C++ старался по возможности сохранить совместимость с языком C. Синтаксис C++ основывался на синтаксисе C, именно поэтому очень много программ транслируются компиляторами С и С++. Также в него были включены новые возможности: перегрузка операторов и функций, виртуальные функции, константы, ссылки, пользовательский контроль над управлением свободной памятью, новый стиль комментариев (//) и улучшенная проверка типов. В 1985 году произошел первый коммерческий выпуск этого языка и вышло издание «Языка программирования C++», в котором приводилось описание этого языка программирования. В 1989 году вышла версия C++ 2.0, в которой были возможности, включавшие абстрактные классы, множественное наследование, функции-константы, статические функции-члены и защищённые члены. Самые последние обновления включали в себя исключения, шаблоны, новые способы приведения типов, пространства имён и булевский тип. Вместе с языком С++ развивалась и его стандартная библиотека. В нее сначала были добавлены потоки ввода/вывода, которые обеспечивали средства для замены традиционных функций C scanf и printf, а чуть позже и стандартная библиотека шаблонов. Бьёрн Страуструп в книге «Дизайн и эволюция C++» описал принципы, которых он старался придерживаться при проектировании языка C++. Эти принципы следующие:
- переносимость и эффективность языка C, а также получение универсального языка со статическими типами данных;
- не требовать слишком сложной среды программирования;
- избегать разночтений между C++ и С;
- предоставить программисту полную свободу выбора;
- предоставить возможность лёгкого перехода от программирования на C (сохранение максимальной совместимости с языком C);
- поддержка множества стилей программирования (процедурное программирование, объектно-ориентированное программирование, абстракция данных и обобщённое программирование) и т.д.[23]
В 1990 году увидело свет «Комментированное справочное руководство по C++». Его впоследствии положили в основу стандарта.
Международный стандарт языка программирования C++: ISO/IEC 14882:1998 «Standard for the C++ Programming Language» был ратифицирован в 1998г., а версия этого стандарта ISO/IEC 14882:2003 появилась после принятия требуемых технических исправлений к стандарту в 2003г. На 2003 год стандарт C++ состоял из двух частей: описание стандартной библиотеки и описание ядра языка. Кроме этого в стандарт не вошли множество библиотек C++. Отметим, что можно использовать многие библиотеки C в программах на C++. В 2005 году вышел отчёт «Library Technical Report 1», описывающий расширения стандартной библиотеки. Начиная с 2009 года проводилась работа, связанная с обновлением предыдущего стандарта, изначально версией нового стандрата был C++99, после C++0x, а сегодня — это C++11, в который вошли расширение стандартной библиотеки (большая часть TR1) и дополнения в ядро языка. Заметим, что ни у кого нет прав на язык C++, он - свободный. Однако документ стандарта языка (кроме черновиков) доступен только в платной версии.[24]
Язык программирования C# (Sharp)
Язык C# - это разработка компании Microsoft. Первая его версия была создана на стыке тысячелетий, а именно в период с 1998 по 2001 год специалистами “мелкомягких”, ведомых Андерсом Хейлсбергом. Язык C# создавался специально для новой на тот момент программной платформы Microsoft .Net Framework или просто .NET. Есть мнение, что появление C# - это ответ Microsoft компании Sun Microsystems, выпустившей язык Java. На самом деле ответом была не разработка C#, а разработка именно Microsoft .NET, под управлением которой работают программы, написанные не только на C#, но и на VB.NET, F#, Managed C++ и других языках этой платформы. Внешне C# очень сильно напоминает C++ и Java, хотя по логике организации среды исполнения схож только с Java, а с компилятором C++ имеет очень мало общего[25].
Основной отличительной чертой программного окружения C# является то, что программы, написанные на нем, не компилируются сразу в машинный код, как это происходит с программами на C++, не интерпретируются, как это происходит с кодом на JavaScript, а выполняются под управлением виртуальном машины CLR (Common Language Runtime), являющейся аналогом виртуальной машины языка Java – JVM (Java Virtual Machine). Следует отметить, что в C#, как и в других языках платформы Microsoft .NET не нужно следить за освобождением памяти, занимаемой объектами разрабатываемой программы – за этим следит Garbage Collector (глобальный объект GC). Язык C# - это объектно-ориентированный язык программирования, который по своим возможностям очень близок к языку Java. Способности же языка программирования C++ в этом плане несколько шире, но в C# есть абсолютно все, что нужно для написания качественного прикладного программного обеспечения[26].
2.2 Язык программирования PHP
PHP является языком программирования, предназначенный для создания динамических ресурсов с базами данных. Этот язык способен в автоматическом режиме создавать динамические страницы с необходимой пользователю информацией.
Язык PHP является универсальным языком программирования и может применяться для разработки практически любого программного обеспеченья. основная его специализация — Web-разработка. Именно с этой целью он и проектировался, поэтому содержит множество инструментов для работы в Интернете[27].
Используя РНР, пользователь может создавать интернет-приложения на компьютере с помощью Apache-сервера. Большая часть ресурсов в глобальной сети написаны на этом языке. Это дает возможность получить динамические страницы, чего невозможно было добиться с HTML.