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

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

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

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

Добавлен: 14.05.2023

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

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

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

Группа разработчиков ALGOL: John McCarthy, Fritz Bauer, Joe Wegstein John Backus, Peter Nauer, Alan Perlis.

Джон Бэкус и Питер Наур разработали формальный метод описания языков программирования, приобретший популярность благодаря Алгол: любой учебник по этому языку включал описание на BNF

Другие языки

Сегодня трудно сказать с полной уверенностью, что работы Хомского действительно серьезно повлияли на развитие языков программирования, но одно явное следствие, безусловно, есть — это нотация Бэкуса-Наура [8].

Создание АЛГОЛа – формирование парадигмы программирования

В 1960 году Дж. Шварц и др. из фирмы System Development разрабатывают язык программирования Jovial (Джовиал). Название происходит от Jule's Own Version of International Algorithmic Language.

Процедурный язык высокого уровня - прототип Алгола-58.

Использовался главным образом для военных приложений ВВС США.

Язык JOVIAL был создан Джулиусом Шварцем на IAL. Отсюда и аббревиатура JOVIAL (Jules Own Version of the International Algorithmic Language).

Долголетие это языка объясняется тем, что еще в 70-е годы Пентагон пришел к разумному решению о принятии стандарта на систему команд и архитектуру 16-разрядного микропроцессора для бортовых систем (кстати, стандарт MIL-STD-1750 действует в армии США по сей день) [3].

В качестве стандартного языка был избран JOVIAL, поскольку Шварц заложил в него возможность создания кросс-платформенных программ, способных работать в реальном режиме времени.

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

К 1960 году за очень короткое время группой CADASYL (Conference on Data System Languages) под руководством Joe Wegstein и при поддержке фирмы IBM был разработан стандартизированный деловой язык программирования COBOL (Comnon business oriented language - общепринятый деловой ориентированный язык). Этот язык ориентирован на решение экономических задач, а точнее - на обработку информации [4].

Впервые появилось понятие метаданных.

В 1961 году американским профессором Джоном Маккартни разработан язык LISP (List procssing language - язык обработки списков).

В 1962 году Р.Грисуолд разработал язык программирования СНОБОЛ, ориентированный на обработку строк.

Джей Форрестер запатентовал память на магнитных сердечниках. Впервые такая память применена на машине Whirlwind-1 (Вихрь-1). Она представляла собой два куба с 32х32х17 сердечниками, которые обеспечивали хранение 2048 слов для 16-разрядных двоичных чисел с одним разрядом контроля четности [2].


Рис. 3. Джей Форрестер

В машине Whirlwind-1 была впервые использована универсальная неспециализированная шина (взаимосвязи между различными устройствами компьютера становятся гибкими) и в качестве систем ввода-вывода использовались два устройства: электронно-лучевая трубка Вильямса и пишущая машинка с перфолентой (флексорайтер).

Рис. 4. Джей Форрестер с рабочей группой

Нил Цирлер и Дж. Халкомби Лэнинг-мл., создали язык высокого уровня и транслирующую систему для компьютера «Вихрь-1» в Массачусетском технологическом институте [13].

Создание интеллектуальной программирующей системы DINAMO

Модели мировой динамики

В 1962 году Э.В.Евреиновым и Ю.Г.Косаревым предложена модель коллектива вычислителей и обоснована возможность построения суперкомпьютеров на принципах параллельного выполнения операций, переменной логической структуры и конструктивной однородности [4].

1965 Язык BASIC (Beginners all-parpouse sumbolic instraction code - многоцелевой язык символических инструкций для начинающих) был разработан профессорами Дартмутского колледжа Томом Куртцем (Tom Kurtz) и Джоном Кемени (John Kemeny) для обучения студентов, незнакомых с вычислительной техникой.

У языка со временем появилось множество диалектов: Basica (IBM), GW-Basic, MSX-Basic, Turbo-Basic (Borland), Quick-Basic (Microsoft), XYBasic, QBasic, CBasic, Basic-80, 86 и 87Basic/387Basic (MicroWay) и т. д.

Впервые BASIC был применен в компьютере IBM 704, но широкое распространение получил в начале 1980-х, после того как в 1975 г. Билл Гейтс и Пол Аллен написали интерпретатор Basic для первого ПК Altair 8800.

1966 - язык программирования РЕФАЛ - В.Ф.Турчин.

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

1967 – Совместный проект IBM и группы пользователей – разработка нового языка программирования, объединяющего возможности обработки научных данных и решения бизнес-задач [7].

Рис. 5. IBM-360

Назвали его PL/1 (Programming language - универсальный программно-ориентированный).

1967 - Эдвард Фейтенбаум из Стэнфордского университета разработал первую экспертную систему DENDRAL с - продукционным представлением знаний.

1968 - Эдсгер Дейкстра разработал концепцию структурного программирования.


1968 - М.Р.Куиллиан из Университета Карнеги-Меллона предложил способ представления знаний в виде семантических сетей/

1968-1970 годах профессор Никлаус Вирт создал в Цюрихском политехническом университете язык PASCAL. Он создавался как язык , который , с одной стороны, был бы хорошо приспособлен для обучения программирования, а с другой - давал бы возможность эффективно решать самые разнообразные задачи на современных ЭВМ. При создании этого языка Вирт большое внимание уделял хорошему стилю программирования - структурному программированию, благодаря которому конструкции PASCAL позволяют писать надежные, легко проверяемые программы с ясной и четкой структурой [1].

Профессор математики МТИ (Массачусетского технологического института) Сеймур Пейперт (Seymour Papert) и его коллеги создали новый язык на основе Лиспа, назвав его Лого (что по-гречески означает слово).

По инициативе Пейперта в языке стала использоваться так называемая черепашка, обеспечивающая связь «объект — мысль» (сначала употреблялась механическая черепашка, ползающая по полу, а затем — ее условное изображение на экране) [4].

Как отмечал Пейперт, «компьютер обычно шаг за шагом ведет ребенка за собой», а Лого, наоборот, «убеждает ребенка в том, что он способен управлять машиной, позволяет ребенку сказать: «Здесь я хозяин».

Сначала Лого предназначался для больших компьютеров и мини-компьютеров, но потом проник в тысячи классов начальных школ.

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

За какие-то 15 лет оно воплотилось в господствующую религию, подчинившую умы миллионов программистов.

ООП - стандарт де-факто.

С использованием объектно-ориентированной методологии (ООМ) осуществляется разработка огромного числа программных проектов, а ООП является основным инструментом для построения кода [3].

Глава II. Теоретический аспект понятия и классификация языков программирования высокого уровня

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

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


Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами. Недостаток некоторых языков высокого уровня состоит в большом размере программ по сравнению с программами на языках низкого уровня. В то же время текст программ на языке высокого уровня гораздо меньше, но в байтах код, написанный на ассемблере, будет более компактным. Поэтому языки высокого уровня преимущественно используют для создания программного обеспечения для компьютеров и вычислительных устройств с большим объемом памяти. Языки же низкого уровня используются для написания программ к устройств, для которых критичным является размер программы [2].

Языки высокого уровня делятся на универсальные и проблемно-ориентированные. Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др. Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.

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

Языки программирования высокого уровня подразделяют на [3]:

− процедурно-ориентированные;

− проблемно-ориентированные;

− объектно-ориентированные.

Каждый из описанных ниже языков программирования применяется для решения определенного круга задач [6].

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

а) язык Фортран (Fortran), название которого происходит от слов Formulae Translation – «преобразование формул». Фортран представляет собой один из старейших языков программирования высокого уровня. Длительность его существования и применения можно объяснить простотой структуры данного языка;

б) язык Бейсик (Basic), который расшифровывается как Beginner's All-purpose Symbolic Instruction Code, что в переводе означает – «многоцелевой символический обучающий код для начинающих», разработан в 1964 г. как язык для обучения программированию;

в) язык Си (С), применяемый с 1970-х гг. как язык системного программирования специально для написания ОС UNIX. В 1980-е гг. на основе языка С был разработан язык C++, практически включающий в себя язык С и дополненный средствами объектно-ориентированного программирования;


г) язык Паскаль (Pascal), который назван в честь французского ученого Б. Паскаля, начал применяться с 1968–1971 гг. Н. Виртом. При создании Паскаль использовался для обучения программированию, но со временем стал широко применяться для разработки программных средств в профессиональном программировании.

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

а) язык Лисп (Lisp – List Information Symbol Processing), который был изобретен в 1962 г. Дж. Маккарти. Первоначально он применялся как средство для работы со строками символов. Лисп употребляется в экспертных системах, системах аналитических вычислений и т. п.;

б) язык Пролог (Prolog – Programming in Logic), используемый для логического программирования в системах искусственного интеллекта [7].

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

а) Visual Basic (~ Basic);

б) Delphi (~ Pascal);

в) Visual Fortran (~ Fortran);

r) C++ (~ C);

д) Prolog++ (~ Prolog).

2.2. Достоинство и недостатки некоторых языков программирования высокого уровня

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

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

К недостаткам можно отнести отсутствие средств отладки и анализа поведения программы, сложность понимания исходного кода. По сути, на данный момент Фортран является узкоспециализированным языком, применяемым для научных и инженерных вычислений.

б) язык Бейсик (Basic). Был разработан в 1964 г. в качестве языка для обучения программированию [12].

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