Файл: Основы теории языков программирования.pdf

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

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

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

Добавлен: 17.06.2023

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

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

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

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

Работы по созданию велись в двух основных направлениях:

– создавались управляющие языки для оперативного воздействия на выполнение задач;

– разрабатывались языки, которые обеспечивали описание алгоритмов решения.

Язык Бэйсик является одним из примеров диалоговых языков.

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

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

Позволяя четко описать как задачу, так и действия, необходимые для её решения, таблицы решений дают возможность определить, какие условия должны выполнятся прежде чем перейти к какому-либо действию.

Одна таблица решений, которая характеризует некоторую ситуацию, содержит все блок-схемы реализаций алгоритмов.

Отметим, что табличные методы, легко осваиваемые специалистами разных профессий.

Программы, составленные на таких языках, удобно описывают сложные алгоритмы, возникающие в системном анализе.

В результате стоит отметить, что языки программирования в нынешнее время являются очень популярными. Для удобства создания программных продуктов создаются специальные интегрированные среды программирования – это системы, которые объединяют транслятор, редактор текстов программ, отладчик (например, Turbo С). Так же получили распространение системы для визуального программирования – это средства, с помощью которых можно создавать программы путем визуального проектирования в графическом виде (например, Visual С, С++ Builder).

2. Характеристика современных языков программирования

2.1. Язык программирования С++

Язык программирования С++ в нынешнее время считается одним из основных языков, используемых для разработки программных продуктов. В последние годы господство слегка поколебалось, поскольку широкое развитие получили языки Java и C#, но маятник мнения программистов качнулся в обратную сторону, и большинство программистов, которые бросили С++, поспешили вернуться к прежней привязанности.


С++ – это язык программирования общего назначения, наиболее часто применяется в системном программировании, понимаемом в широком смысле слова. Кроме того, в С++ успешно используется для написания приложений, далеко выходящих за рамки системного программирования. Реализации С++ присутствует на всех машинах, начиная с самых скромных - до самых больших супер-ПК.

Бьерн Страуструп является разработчиком языка С++ и создателем его первого транслятора. Он является сотрудником научно-исследовательского вычислительного центра AT&T в Нью-Джерси (США). Страуструп получил звание магистра вычислительной техники и математики в университете г.Аарус (Дания), а докторское звание в Кэмбриджском университете. Он специализируется в секторе операционных систем, распределенных систем, программирования и моделирования и также является автором полного руководства по С++.

Безусловно язык С++ многим обязан языку программирования Си[8], который сохраняется в виде его подмножества. Сохранены также и все свойственные Си средства низкого уровня, которые предназначены для решения насущных задач системного программирования. [7]

Название С++, было придумано Р. Маскитти летом 1982 г. Это название показывает эволюционный характер преобразования языка Си. А обозначение ++ относится к инкрементной операции наращивания.

Знатоки семантики языка Си находят, что С++ несколько хуже, чем ++С.

Изначально С++ был спроектирован для того, чтобы Страуструпу и его коллегам не надо было писать программы на ассемблере, Си или других языках высокого уровня. Основным его предназначением было сделать более приятным процесс программирования и упростить его для отдельного программиста.

До некоторого времени не было определенного плана разработки языка С++ на бумаге. Реализация и документирование его средств шли параллельно. Поэтому данный язык продолжает развиваться так, чтоб преодолеть все проблемы, которые возникли у пользователей.

Примерно в 1986г. стало очевидно, что работы по стандартизации С++ неизбежны и следует незамедлительно приступать к созданию основ для нее.

Фирма AT&T внесла основной вклад в данную работу. Больше ста представителей изучали и комментировали все аспекты языка, которые стали современной версией руководства и материалами по стандартизации С++.

При разработке С++ важнейшим критерием была простота. При возникновении вопроса, что упростить: руководство и другую документацию по языку или транслятор, то выбирали первое. Также огромное значение придавали совместимости с языком Си, что и помешало удалить весь его синтаксис.[10]


В языке программирования С++ нет некоторых типов данных и операций высокого уровня. Для примера, не существует типа «матрица» с операцией обращения, или же типа «строка» с операцией конкатенации.

Но если пользователю понадобится подобный тип, он может определить его в самом языке. Программирование на С++ сводится к определению зависящих от области написания приложения типов.

Язык С++ создавался для использования в традиционной среде – в системе программирования Си операционной системы Linux. Но есть обоснованные доводы в пользу применения С++ в богатой программной среде. Например, развитые системы трансляции, динамическая загрузка и базы данных, можно успешно применять без ущерба для самого языка.

Ключевое понятие С++ – это класс. Классом является определяемый пользователем тип. Он обеспечивает инкапсуляцию данных, неявное преобразование, их инициализацию, динамическое задание типов, которое контролируется пользователем, управление памятью, а также средства для перегрузки функций и операций.

В С++ концепция модульного построения программ и контроля типов реализованы полнее, нежели в Си. Также, С++ содержит некоторые усовершенствования, стандартные значения параметров функций, функции-подстановки, операции управления памятью, перегрузка имен функций, ссылочный тип. В С++ сохранены возможности Си эффективной работы с объектами, которые отражают аппаратную "реальность" (байты, слова, разряды, адреса).

Язык С++ проектировался для объектно-ориентированного программирования и поддержки абстракции данных в добавление к традиционному стилю Си.

2.2. Язык программирования Java

Java — язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.

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

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


Java – так называют не только сам язык, но и платформу для создания и исполнения приложений на основе данного языка.

Изначально этот язык назывался Oak («дуб») и разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java, любимого некоторыми программистами, поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе. Существует и другая версия происхождения названия Java, а именно, Java это сленговое обозначение кофе (по имени одноименного острова, где производится популярный кофе) с аллюзией на кофе-машину, как пример бытового устройства, для программирования которых изначально язык создавался.

Чтобы не связывать разработку с конкретной платформой, Гослинг начал с расширения компилятора С++. Со временем, однако, он понял, что один С++, как его ни расширяй, не сможет удовлетворить все потребности. Поэтому в середине 1991 года был задуман язык Oak.

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) – программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

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

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

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

Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.[1]

Основные возможности

  • автоматическое управление памятью;
  • унифицированный доступ к базам данных:
  • богатый набор средств фильтрации ввода/вывода;
  • набор стандартных коллекций, таких как массив, список и т. п.;
  • расширенные возможности обработки исключительных ситуаций;
  • наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
  • на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects и Java Persistence API;
  • параллельное выполнение программ.

2.3. Язык программирования C#

Последнее время С и С++ являются одними из наиболее используемыми языками для разработки коммерческих и бизнес приложений. Эти языки устраивают многих разработчиков, но в действительности не обеспечивают должной продуктивности разработки. К примеру, процесс написания приложения на С++ зачастую занимает значительно больше времени, чем разработка эквивалентного приложения, скажем, на Visual Basic. Сейчас существуют языки, увеличивающие продуктивность разработки за счет потери в гибкости, которая так привычна и необходима программистам на С/С++.

Многие разработчики хотели бы использовать современный язык, который позволял бы писать, читать и сопровождать программы с простотой Visual Basic и в то же время давал мощь и гибкость C++, обеспечивал доступ ко всем функциональным возможностям системы, взаимодействовал бы с существующими программами и легко работал с возникающими web-стандартами.

Учитывая все подобные пожелания, Microsoft разработала новый язык - C#. В него входит много полезных особенностей – простота, объектная ориентированность, типовая защищенность, "сборка мусора", поддержка совместимости версий и многое другое. Данные возможности позволяют быстро и легко разрабатывать приложения, особенно COM+ приложения и web-сервисы.

При создании C#, его авторы учитывали достижения многих других языков программирования: C++, C, Java, Visual Basic и т.д. В результате получился действительно простой, удобный и современный язык, по мощности не уступающий С++, но существенно повышающий продуктивность разработок.