Файл: Современные языки программирования (Языки программирования и их парадигмы).pdf
Добавлен: 17.05.2023
Просмотров: 407
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Языки программирования и их парадигмы
1.1. История развития языков программирования
1.2. Парадигмы программирования
1.3. Языки низкого и высокого уровня программирования
2. Способы реализации и классификация языков программирования
2.1. Классификация языков программирования
2.2. Машинно-ориентированные языки
Наследник C язык C++ быстро завоевал поддержку, являясь обновленной версией языка C.C++ был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup) в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов, но основное отличие заключается в подходе к программированию.
Главная причина, по которой и сейчас C++ остается популярным, — он поддерживает объектно-ориентированное программирование (ООП). ООП — это иной способ написания программ, помогающий программисту писать программы быстрее и с наименьшим числом ошибок. ООП также позволяет повысить скорость обслуживания.
Так как Си++ восходит, главным образом, к Си. Поэтому сделанного в Си акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. Си, в свою очередь, многим обязан своему предшественнику BCPL.Си++ - это машинно-ориентированный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей Си++ является надмножеством языка программирования Си.
Позднее была проведена проверка определения Си++, чтобы удостовериться в том, что любая конструкция, допустимая и в Си, и в Си++, действительно означает в обоих языках одно и то же. В Си++ нет типов данных высокого уровня и нет первичных операций высокого уровня. В нём нет, например, матричного типа с операций обращения.[3]
Если пользователю понадобится подобный тип, его можно определить в самом языке. По сути дела, основным, чем занимается программирование на Си++ - это определение универсальных и специально-прикладных типов.
Популярность объектно-ориентированного языка C++ дала начало множеству новых языков для современного Интернета. Причиной успешного развития языка Java (Джава) (и его производных, таких как JavaScript) является широкомасштабное использование в нем языка C++, и хотя C++ не поддерживает достаточной безопасности программирования web-сайтов, его объектно-ориентированная природа делает Java хорошим кандидатом для программирования объектов Интернета. Компания Sun Microsystems изменила язык C++, добавив в него элементы обеспечения достаточной безопасности и убрав ряд сомнительных возможностей C++. (Примером является множественность наследования, которая позволяет генерацию одного объекта программирования, такого как окно, из набора нескольких родительских окон с различными характеристиками. Подобная концепция сбивает с толку даже при формулировании ее на высоком уровне.)
C# (C Sharp) – “Си Шарп”:объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила фирма Microsoft. По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать Интернет-приложения.
1.6. Visual Basic
Microsoft Visual Basic 6.0 (VB6) - одна из популярных в мире систем проектирования программ (приложений) для Windows.Среда Visual Basic может с успехом использоваться начинающими пользователями для познания секретов программирования и для создания несложных (поначалу) приложений и, в то же время, предоставляет мощные инструменты разработки опытным программистам. В нее включен собственно компилятор языка, а также набор полезных программ-утилит, помогающих в написании и отладке программ. Широкая популярность и успех Visual Basic связаны также с возможностью использования технологии визуального проектирования для создания компьютерных программ. В его визуальной среде разработки можно довольно быстро создать дизайн диалоговых окон пользовательского интерфейса. Visual Basic является мощным программным средством, с помощью которого можно реализовать широкий спектр практических задач.[8]
В названии этого языка слово Basic произошло от первых букв следующих слов:Beginner’s All Purpose Symbolic Instruction Code (Универсальный символьный программный код для начинающих). Поначалу это был очень простой язык,разработанный специально для обучения навыкам программирования.Слово же Visual в названии означает способ визуального создания графического пользовательского интерфейса (GUI).Основные возможности языка Visual Basic:поддержка технологии объектно-ориентированного программирования;создание гибкого и удобного пользовательского интерфейса с использованием средств визуального проектирования; создание разнообразных многоуровневых меню; поддержка графических изображений и геометрических фигур; использование стандартных диалогов(например, цвет, параметры принтера, обработка файлов); использование встроенных средств отладки и тестирования приложений в среде разработки; доступ к базам данных; поддержка сети Internet.Этот язык сочетает расширенные возможности Бейсика со средствами визуального проектирования.
1.7. Java
Java—объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска - 23 мая 1995 года. Изначально язык назывался Oak («дуб») и разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java, поэтому на официальной эмблеме языка изображена чашка с парящим кофе.
Достоинство выполнения программ в полной независимости байт-кода от операционной системы и оборудования позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.
К недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований: применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде, широкое использование платформенно-ориентированного (native-код) в стандартных библиотеках, аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).[2]
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.
1.8. JavaScript
Вокруг JavaScript довольно много дезинформации и путаницы. Прежде чем двигаться дальше в изучении JavaScript, важно развенчать некоторые распространенные мифы, связанные с этим языком.
Одно из наиболее распространенных заблуждений о JavaScript состоит в том, что этот язык представляет собой упрощенную версию Java, языка программирова ния, разработанного в компании Sun Microsystems. Кроме некоторой синтаксической схожести и способности предоставлять исполняемое содержимое для веб броузеров, эти два языка между собой ничто не связывает. Схожесть имен – не более чем уловка маркетологов (первоначальное название языка – LiveScript – было изменено на JavaScript в последнюю минуту). Однако JavaScript и Java могут взаимодействовать друг с другом.[6]
Поскольку JavaScript является интерпретируемым языком, очень часто он позиционируется как язык сценариев, а не как язык программирования, при этом подразумевается, что языки сценариев проще и в большей степени ориентирова ны не на программистов, а на обычных пользователей. В самом деле, при отсутствии контроля типов JavaScript прощает многие ошибки, которые допускают неопытные программисты. Благодаря этому многие вебдизайнеры могут использовать JavaScript для решения ограниченного круга задач,выполняемых по точным рецептам. Однако за внешней простотой JavaScript скрывается полноценный язык про граммирования,столь же сложный, как любой другой, и даже более сложный, чем некоторые. Программисты, пытающиеся решать с помощью JavaScript нетривиальные задачи, часто разочаровываются в процессе разработки из за того, что недостаточно понимают возможности этого языка.
Когда интерпретатор JavaScript встраивается в веб-браузер, результатом является клиентский JavaScript.
Клиентский JavaScript включает в себя интерпретатор JavaScript и объектную модель документа (Document Object Model, DOM), определяемую веббраузером. Документы могут содержать JavaScriptсценарии, которые в свою очередь могут использовать модель DOM для модификации документа или управления способом его отображения. Другими словами, можно сказать, что клиентский JavaScript позволяет определить поведение статического содержимого вебстраниц. Клиентский JavaScript является основой таких технологий разработки вебприложений, как DHTML, и таких архитектур, как Ajax.[6]
Всё вышеперечисленные языки по-своему хороши,но мне больше нравится Python т.к благодаря простоте и гибкости его можно рекомендовать пользователям не являющимся программистами, но использующими вычислительную технику и программирование в своей работе.
Программы на Python разрабатываются в среднем в полтора-два (а порой и в два-три) раза быстрее нежели на компилируемых языках (С, С++, Pascal). Поэтому, язык может представлять не малый интерес и для профессиональных программистов, разрабатывающих приложения, не критичные к скорости выполнения, а также программы, использующие сложные структуры данных. В частности, Python хорошо зарекомендовал себя при разработке программ работы с графами, генерации деревьев.
2. Способы реализации и классификация языков программирования
Создать язык, удобный для написания программ, недостаточно. Для каждого языка нужен свой переводчик. Такими переводчиками являются специальные программы-трансляторы.
Транслятор - это программа, предназначенная для перевода программы, написанной на одном языке программирования, в программу на другом языке программирования. Процесс перевода называется трансляцией. Тексты исходной и результирующей программ находятся в памяти компьютера. В настоящее время трансляторы разделяются на две основные группы: компиляторы и интерпретаторы.
Компилятор - это обслуживающая программа, выполняющая трансляцию на машинный язык программы, записанной на исходном языке программирования. Компилятор обеспечивает преобразование программы с одного языка на другой (чаще всего, в язык конкретного компьютера). Вместе с тем, команды исходного языка значительно отличаются по организации и мощности от команд машинного языка. Существуют языки, в которых одна команда исходного языка транслируется в 7–10 машинных команд. Однако есть и такие языки, в которых каждой команде может соответствовать 100 и более машинных команд. Кроме того, в исходных языках достаточно часто используется строгая типизация данных, осуществляемая через их предварительное описание. Программирование может опираться не на кодирование алгоритма, а на тщательное обдумывание структур данных или классов. Процесс трансляции с таких языков обычно называется компиляцией, а исходные языки обычно относятся к языкам программирования высокого уровня (или высокоуровневым языкам).
Байт-код - это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой «виртуальной машиной» во время исполнения.
Компилятор создаёт законченный результат - программу в машинных кодах. Затем эта программа выполняется. Откомпилированный вариант исходной программы можно сохранить на диске. Для повторного выполнения исходной программы компилятор уже не нужен. Достаточно загрузить с диска в память компьютера откомпилированный в предыдущий раз вариант и выполнить его.
Существует другой способ сочетания процессов трансляции и выполнения программы. Он называется интерпретацией. Суть процесса интерпретации состоит в следующем. Вначале переводится в машинные коды, а затем выполняется первая строка программы. Когда выполнение первой строки окончено, начинается перевод второй строки, которая затем выполняется и так далее. Управляет этим процессом программа-интерпретатор.