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

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

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

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

Добавлен: 17.05.2023

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

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

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

СОДЕРЖАНИЕ

Введение

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

1.1 История развития языков программирования

1.1.1. Машинный язык (40-50 годы XX в.).

1.1.2. Ассемблер (начало 50-ых годов XX в.).

1.1.3. Первые языки программирования высокого уровня.

1.1.4. Алгоритмические языки программирования.

1.1.5. Языки объектно-ориентированного программирования

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

1.1.7. Языки программирования на платформе .NET.

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

2.1.1. Язык Фортран

2.1.2.Язык Кобол

2.1.3. Язык алгол

2.1.4.Язык PL-1

2.1.5. Язык Паскаль

2.1.6.Язык Ada

2.2.Объектно-ориентированное программирование (ООП)

2.3.Декларативные языки программирования

2.3.1. Язык  Лисп

2.3.2.Язык Пролог (PROLOG)

2.4.Языки программирования баз данных.

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

2.5.Языки искусственного интеллекта

2.6.Классификация языков программирования

2.7.Тенденции развития языков программирования

Заключение

Список использованной литературы

2.1.3. Язык алгол

Алгол – В 1960 году командой во главе с Петером Науром (Peter Naur) был создан язык программирования Algol. Это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»; Этот язык дал начало целому семейству Алгол-подобных языков (важнейший представитель − Pascal).

В 1964 году в Дартмурском колледже (Dartmouth College) был создан язык программирования BASIC (Beginners’ All-Purpose Symbolic Instruction Code − многоцелевой язык символических инструкций для начинающих). Язык задумывался в первую очередь как средство обучения и как первый изучаемый язык программирования. Он предполагался легко интерпретируемым и компилируемым. Надо сказать, что BASIC действительно стал языком, на котором учатся программировать (по крайней мере, так было еще несколько лет назад; сейчас эта роль отходит к Pascal). Было создано несколько мощных реализаций BASIC, поддерживающих самые современные концепции программирования (ярчайший пример − Microsoft Visual Basic).

Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.

2.1.4.Язык PL-1

В 1963-1966гг корпорацией IBM был создан многоцелевой универсальный язык PL-1, который был призван заменить Cobol и Fortran в большинстве приложений. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения. Язык обладал исключительным богатством синтаксических конструкций. В нем впервые появилась обработка исключительных ситуаций и поддержка параллелизма. Надо заметить, что синтаксическая структура языка была крайне сложной. Пробелы уже использовались как синтаксические разделители, но ключевые слова не были зарезервированы. В частности, следующая строка — это вполне нормальный оператор на PL/1:

IF ELSE=THEN THEN THEN; ELSE ELSE

В силу таких особенностей разработка компилятора для PL/1 была исключительно сложным делом. Язык так и не стал популярен вне мира IBM.

2.1.5. Язык Паскаль

Язык Паскаль (PASCAL) (1968-1971гг) − язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется.


Никлаус Вирт создал язык программирования Pascal. Язык замечателен тем, что это первый широко распространенный язык для структурного программирования (первым, строго говоря, был Алгол, но он не получил столь широкого распространения). Впервые оператор безусловного перехода перестал играть основополагающую роль при управлении порядком выполнения операторов. В этом языке также внедрена строгая проверка типов, что позволило выявлять многие ошибки на этапе компиляции.

В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему).

К основным принципам, которыми обладает Паскаль, можно отнести:

  • Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных;
  • Программирование «сверху-вниз», когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.

Отрицательной чертой языка было отсутствие в нем средств для разбиения программы на модули. Вирт осознавал это и разработал язык Modula-2(1978), в котором идея модуля стала одной из ключевых концепций языка. В 1988 году появилась Modula-3, в которую были добавлены объектно-ориентированные черты. Логическим продолжением Pascal и Modula являются язык Oberon и Oberon-2. Они характеризуются движением в сторону объектно- и компонентно- ориентированности.

2.1.6.Язык Ada

В 1983 году под эгидой Министерства Обороны США был создан язык Ada. Его отличает модульность конструкций. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений). В 1995 году был принят стандарт языка Ada 95, который развивает предыдущую версию, добавляя в нее объекно-ориентированность и исправляя некоторые неточности. Оба этих языка не получили широкого распространения вне военных и прочих крупномасштабных проектов (авиация, железнодорожные перевозки). Основной причиной является сложность освоения языка и достаточно громоздкий синтаксис (значительно более громоздкий, чем Pascal).

Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык.


2.2.Объектно-ориентированное программирование (ООП)

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты. Переменные и функции группируются в так называемые классы. Благодаря этому достигается более высокий уровень структуризации программы. В языках программирования понятие объекта реализовано как совокупность свойств (структур данных, характерных для данного объекта), методов их обработки (подпрограмм изменения их свойств) и событий, на которые данный объект может реагировать и, которые приводят, как правило, к изменению свойств объекта.

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

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

Другим фундаментальным понятием является класс. Класс это шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.

Следующими важнейшими принципами ООП являются наследование и полиморфизм.

Наследование предусматривает создание новых классов на базе существующих и позволяет классу потомку иметь (наследовать) все свойства класса – родителя.

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

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

Объектно-ориентированный подход, пришедший на смену структурному, впервые появился отнюдь не в C++, как полагают некоторые. Существует целая череда чистых объектно-ориентированных языков, без сведений о которых наш обзор был бы неполным.


Simula

Первым объектно-ориентрованным языком был язык Simula (1967). Этот язык был предназначен для моделирования различных объектов и процессов, и объектно-ориентированные черты появились в нем именно для описания свойств модельных объектов.

Smalltalk

Популярность объектно-ориентированному программированию принес язык Smalltalk, созданный в 1972 году. Язык предназначался для проектирования сложных графических интерфейсов и был первым по-настоящему объектно-ориентированным языком. В нем классы и объекты — это единственные конструкции программирования. Большим недостатком Smalltalk являются большие требования к памяти и низкая производительность полученных программ. Это связано с не очень удачной реализацией объектно-ориентированных особенностей. Популярность языков C++ и Ada 95 связана именно с тем, что объектно- ориентированность реализована без существенного снижения производительности.

Eiffel

Существует язык с очень хорошей реализацией ООП, не являющийся надстройкой ни над каким другим языком. Это язык Eiffel (1986). Являясь чистым языком объектно-ориентированного программирования, он, кроме того, повышает надежность программы путем использования «контрольных утверждений».

Наиболее современными языками программирования являются С++ и Java. С середины 90-х годов многие объектно-ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно-ориентированным системам визуального проектирования относятся Visual Basic,Delphi, C++ Builder, Visual C++.

Язык VBA (Visual Basic for Application) – язык приложений Microsoft Office (Excel, Word, Power Point и др). VBA соблюдает основной синтаксис языка и правила программирования языков Basic – диалектов, позволяет создавать макросы для автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.

2.3.Декларативные языки программирования

К ним относятся функциональные и логические языки программирования.

Функциональное программирование − это способ составления программ, в которых единственным действием является вызов функции. В функциональном программировании не используется память, как место для хранения данных, а, следовательно, не используются промежуточные переменные, операторы присваивания и циклы. Ключевым понятием в функциональных языках является выражение. Программа, написанная на функциональном языке, представляет собой последовательность описания функций и выражений. Выражение вычисляется сведением сложного к простому. Все выражения записываются в виде списков. Алгоритмы, записанные в функциональном виде как правило короче и содержат меньше ошибок чем аналогичные объектно-ориентированные или процедурные. Функциональное программирование считается программированием сверхвысокого уровня. Языки этой группы обладают относительно низким быстродействием из-за сложности реализации.


2.3.1. Язык  Лисп

Первым языком стал язык  Лисп (LISP, LIST Processing − обработка списков) создан в 1959г. Этот язык позволяет обрабатывать большие объемы текстовой информации.

Язык Лисп − один из наиболее распространенных базовых языков искусственного интеллекта.

Версия LISP 1.5 стала стандартом для его реализации на многие годы. Развитие LISP продолжается до настоящего времени. LISP разрабатывался как функциональный язык обработки списков. Естественной областью приложения LISP явилась разработка стратегии ведения игры, поскольку обычная программа, написанная на языке LISP, могла создавать дерево возможных направлений движения (как связанный список) и, продвигаясь по этому дереву, искать оптимальную стратегию.

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

Популярность Лиспа объясняется следующими причинами:

1) Лисп ориентирован на работу с символьной информацией, а процесс решения большинства задач искусственного интеллекта сводится к обработке такой информации. (Английской название LISP, являющееся аббревиатурой выражения LISt Processing (обработка списков), хорошо подчеркивает основную область его применения).

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

3) Идеология Лиспа крайне проста: данные и программы представляются в нем в одной и той же форме. Благодаря такой унификации представления данные могут интерпретироваться как программа, а любая программа может быть использована как данные любой другой программой.

4) Язык Лисп является языком функционального программирования. Применение функциональных языков открывает широкие перспективы, позволяя пользователю описывать скорее природу своих задач, чем способ их решения [7,8].

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

Логическое программирование − это программирование в терминах логики. Основывается на формальной логике и Булевой алгебре (в некоторых языках применяются средства нечёткой логики, что позволяет создавать системы искусственного интеллекта). Программа, записанная на логическом языке программирования, не содержит в себе конкретных алгоритмов (действий и команд типа сделать то, затем это). Задаётся описание условий задачи и логических отношений, по которым система программирования сама рассчитывает возможные следствия и взаимосвязи введённых данных и формул.