Файл: Современные языки программирования (История и эволюция языков программирования).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

Вскоре после языка Fortran появились такие ныне широко известные языки, как Algol, Cobol, Basic, PL/1, Pascal, APL, ADA, C, Forth, Lisp, и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.

  • Четвертое поколение: Языки поддержки сложных структур данных (например, SQL). Появились в конце 60-х годов XX века.
  • Пятое поколение: Языки искусственного интеллекта (например, Prolog). Появились в начале 70-х годов XX века. Носят ярко выраженный непроцедурный характер, определяемый тем, что программы на таких языках описывают только что, а не как надо сделать. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Prolog, Langin). Так как непроцедурные языки имеют минимальное число синтаксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.
  • Шестое поколение: Языки нейронных сетей (самообучающиеся языки). Исследовательские работы в этой области начались в середине 80-х годов XX века.

Языки, которые считаются первыми:

  • 1945 г. - Конрадом Цузе (Conrad Zuse) разработан первый язык программирования Plankalkuel;
  • 1949 г. - разработанный Джоном Мочли (John Mauchly) язык Short Code американцы считают первым языком программирования высокого уровня.

Выводы к 1 главе.

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

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

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

Языки программирования классифицируются по различным критериям (рис. 1).

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

Разные авторы разбивают языки либо на три уровня (машинные, машинно-ориентированные и машинно-независимые языки), либо на два уровня (языки программирования низкого уровня, языки программирования высокого уровня) [3]. В случае деления языков программирования на три уровня, низшим уровнем будет являться машинный код – набор команд, выполняемых конкретным процессором и разработанных специально для него. Обычно является последовательностью шестнадцатеричных символов. Вывод строки «Hello, World!» для процессора архитектуры x86 выглядит так: BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21. Средним уровнем будут являться машинно-ориентированные языки, то есть языки, призванные управлять непосредственно командами процессора, но более доступным для человеческого восприятия языком. Примером являются языки ассемблера. Язык ассемблера, по сути, представляет каждую команду машинного кода с помощью удобных для восприятия человеком символических команд – мнемокодов. Как правило, язык ассемблера использует особенности конкретного семейства процессоров. Высшим же уровнем будут считаться машинно-независимые языки. Они разработаны для удобства восприятия, быстроты понимания и работы с ними. Характерная черта этих языков программирования – абстракция, то есть введение смысловых конструкций, кратко описывающих данные и операции над ними, описания которых в машинно-ориентированных языках очень длинны и сложны для понимания. Также они были призваны обеспечить платформенную независимость сути алгоритмов. С их появлением зависимость от платформы перекладывается на трансляторы, «переводящие» текст, написанный на языке высокого уровня, в элементарные машинные команды. Примерами языков программирования высокого уровня являются C++, C#, PHP, Perl, Java и многие другие.


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

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

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

2.1.1 Процедурно-ориентированные



К первому классу языков, который используется для записи процедур или алгоритмов обработки информации относят:

а) язык Фортран (Fortran). Является одним из первых языков программирования высокого уровня. К его основным достоинствам относится наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности [4], встроенных средств обработки массивов. К недостаткам можно отнести отсутствие средств отладки и анализа поведения программы, сложность понимания исходного кода. По сути, на данный момент Фортран является узкоспециализированным языком, применяемым для научных и инженерных вычислений.

б) язык Бейсик (Basic). Был разработан в 1964 г. в качестве языка для обучения программированию. Основными достоинствами этого языка являются, простой синтаксис, который позволяет в кратчайшие сроки освоить этот язык программирования, простота реализации графического интерфейса, возможность использования WinAPI функций, что значительно расширяет возможности языка. Одним из основных недостатков языка является то, что он поддерживает только операционные системы семейства Windows, DOS и Mac OS X, что значительно сужает сферы его применения. Также к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов.


в) язык Си (С) был создан в 1969-1973 годах в качестве языка системного программирования и первоначально предназначался для написания ОС UNIX. В 1980-е гг. язык С был дополнен инструментами объектно-ориентированного программирования и на основе него был создан язык C++. Одним из главных достоинств является кроссплатформенность, а также минимальные аппаратные требования для запуска скомпилированных программ, широкий набор средств для реализации как прикладных, так и системных задач. К недостаткам языка можно отнести отсутствие четкой стандартизации. В ходе исторического развития языка его элементы зачастую заимствовались из других языков, вне зависимости от наличия других элементов. Это привело к наличию дублирующих и иногда противоречащих друг другу элементов. Данные аспекты привели к тому, что язык стал чрезвычайно сложным для восприятия.

г) язык Паскаль (Pascal). Был создан математиком Н. Виртом специально для обучения программированию. Однако со временем стал широко применяться для разработки программных средств в профессиональном программировании. Самая первая версия была создана в 1968 году профессором кафедры вычислительной техники Швейцарского федерального института технологии Никласом Виртом [13]. Основной целью, при создании нового языка, является его простота, с сохранением всех достоинств уже имеющихся языков высокого уровня программирования. Популярность созданного языка стала столь высокой, что уже к 1980 году насчитывалось более восьми десятков его трансляторов. В начале 80-х годов язык программирования Паскаль еще более усилил свои позиции после создания трансляторов Turbo-Pascal для персональных компьютеров. С этого момента язык смело вышел за рамки узкого использования программистами-профессионалами. Он начал использоваться как рабочий инструмент пользователей и как средство обучения языков программирования. Одним из главных достоинств языка Паскаль является четкая структуризация, удобная среда разработки и отладки, позволяющая пользователю обнаружить логические и синтаксические ошибки в программе. Также к достоинствам можно отнести высокую скорость компиляции программ, возможность использования вставок языка Ассемблер. В отличие от языка С (С++) в при использовании Паскаль сведены к минимуму возможные синтаксические неоднозначности, синтаксис языка является интуитивно понятным и доступным, поскольку, как уже было отмечено выше, язык изначально разрабатывался для обучения студентов программированию. К недостаткам первоначально разработанного компилятора можно бы отнести ряд ограничений: невозможность передачи функциям массивов переменной длины, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках и раздельной компиляции. Несмотря на долгую историю, Паскаль является динамично развивающимся языком программирования высокого уровня. Современные версии компилятора ликвидировали большинство перечисленных выше недостатков.


2.1.2 Проблемно-ориентированные


Основным достоинством проблемно-ориентированных языков программирования является минимизация трудозатрат программиста при решении задач принадлежащих некоторому четко выделяемому классу. К проблемно-ориентированным относят следующие языки программирования:

а) язык Лисп. Считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP - язык для разработки надстроек в продуктах компании AutoDesk.

б) язык Пролог. Используется для реализации систем искусственного интеллекта, а также и интеллектуальных систем баз данных. Написание программ на языке Пролог существенно отличается от использования других языков программирования. Программа на Прологе не является реализацией некоторого алгоритма, а представляет собой запись на языке формальной логики. Таким образом, данный язык относится к описательным языкам программирования. Таким образом, сферой применения данного языка является решение логических задач. Для создания вычислительных, графически задач, реализации пользовательского интерфейса данный язык не предназначен.

2.1.3 Объектно-ориентированные



Большинство объектно-ориентированных языков являются версиями процедурно-ориентированных и проблемно-ориентированных. В настоящий момент наиболее активно используются и развиваются следующие среды программирования:

а) Delphi (Lazarus некоммерческая - версия для ОС семейства Linux) - основана на Object Pascal;

б) C++, С# (~ C);

в) Visual Basic (~ Basic);

г) Visual Fortran (~ Fortran);

д) Prolog++ (~ Prolog).

2.2. Современные языки и системы программирования

Basic. Как знаменитые гамбургеры, бейсбол и баскетбол, Бейсик - это продукт Новой Англии [12]. Созданный в 1964г., как язык обучения программированию. Бейсик является общепринятым акронимом от"Beginner's All-purpose Symbolic Insruction Code" (BASIC) - Многоцелевой Символический Обучающий Код для Начинающих". Вскоре как обучаемые, так и авторы программ обнаружили, что Бейсик может делать практически все то, что делает скучный неуклюжий Фортран. А так как Бейсику было легко обучиться и легко с ним работать, программы на нем писались обычно быстрее, чем на Фортране. Бейсик был также доступен на персональных компьютерах, обычно он встроен в ПЗУ. Так Бейсик завоевал популярность. Интересно, что спустя 20 лет после изобретения Бейсика, он и сегодня самый простой для освоения из десятков языков общецелевого программирования, имеющихся в распоряжении любителей программирования. Более того, он прекрасно справляется с работой. Бейсик считается деловым языком, снабженным мощными средствами решения специфических задач, которые обычно большинство пользователей решают при помощи небольших компьютеров, а именно: работая с файлами и выводя текстовое и графическое изображение на экране дисплея. Несмотря на отдельные недостатки Бейсика, никто не будет отрицать, что Кемени и Куртс достигли основной цели: сделать программирование доступнее для большего числа людей. Исторически Бейсик обычно реализовался как интерпретатор (знакомым изомером является сам интерпретаторный Бейсик). Причинами перехода от любительского уровня к профессиональному являются многочисленные расширения классической версии языка: возможность отключения нумерации строк, многостроковые структурированные программные конструкции, структуры типа "запись", поименованные подпрограммы с параметрами и локальные переменные. Более того, с появлением транслятора QuickBasic фирмы Microsoft разработчики получили возможность строить на Бейсике приложения из раздельно откомпилированных модулей, некоторые из которых могут быть написаны на других языках. Теперь, как и в случае других ведущих языков программирования, разработчик имеет выбор из нескольких промышленных библиотек подпрограмм, которые содержат готовые решения для распространенных задач программирования.


Pascal. В настоящее время этот язык имеет более широкую сферу применения, чем предусматривалось при его создании. Целью работы Вирта было создание языка, который:

- Строился бы на небольшом количестве базовых понятий;

- Имел бы простой синтаксис;

- Допускал бы перевод программ в машинный код простым компилятором.

Все эти качества сделали язык очень популярным и удобным для применения в школе. Паскаль – язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан в 1968–1971 гг. Николаусом Виртом, для обучения студентов методам разработки программ, таким как "программирование сверху вниз", "структурное программирование" и т. д. Вирту не понравился не один из существующих на тот момент языков, и в 1968 году он приступил к разработке своего собственного. Первая версия языка была создана для компьютера CDC 6000. Благодаря своей четкости, логичности и другим особенностям Паскаль надолго занял свою нишу, являясь прекрасным языком для обучения программированию. Паскаль использовался и для разработки серьезных программ- приложений. Шутили, что Вирт разработал игрушку, но многие отнеслись к ней слишком серьезно. Впоследствии появились различные версии языка и его расширения.

Наиболее известным расширением стал пакет Турбо Паскаль фирмы Borland, появившийся в 1983 году и сразу ставший событием в мире компьютерных технологий [10]. Турбо Паскаль – это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования – это отражение торговой марки фирмы-разработчика Borland International (США). Систему программирования Турбо Паскаль называют интегрированной (integration – объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности. Первое упоминание о нем содержалось в рекламе опубликованной в журнале Byte, а сам пакет предназначен для операционной системы CP/M. В начале 1984 года он был перенесен в среду MS-DOS и приобрел огромную популярность. С тех пор появилось несколько версий Турбо Паскаля, последняя- седьмая.

Delphi. Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера [16]. Оценки экспертов, изучающих возможности этого нового продукта фирмы Borland, обычно окрашены в восторженные тона. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов. Система Delphi позволяет решать множество задач, в частности: