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

Автор работы: Пользователь скрыл имя, 10 Сентября 2011 в 18:14, реферат

Краткое описание

первые шаги автоматизации программирования;

первые языки высокого уровня: Кобол и Фортран;

языки процедурного программирования;

языки искусственного интеллекта;

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

Содержимое работы - 1 файл

ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ.docx

— 35.84 Кб (Скачать файл)

ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

 

ОСНОВНЫЕ  ТЕМЫ:

       первые шаги автоматизации программирования;

       первые языки высокого уровня: Кобол и Фортран;

       языки процедурного программирования;

       языки искусственного интеллекта;     

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

Первые  шаги автоматизации  программирования

Программы для  первых ЭВМ программисты писали на языках машинных команд. Это очень  трудоемкий и длительный процесс. Проходило  значительное время между началом  составления программы и началом  ее использования. Решить эту проблему можно было лишь путем создания средств  автоматизации программирования.

Первыми "инструментами", которые экономили труд программистов, стали подпрограммы. В августе 1944 года для релейной машины "Марк-I" под руководством Грейс Хоппер (женщина-программист, морской офицер ВМФ США) была написана первая подпрограмма для вычисления sinx.

Не одну Грейс  Хоппер волновала проблема облегчения труда программистов. В 1949 году Джон Моучли (один из создателей ЭВМ ENIAC) разработал систему Short Code, которую можно считать предшественницей языков программирования высокого уровня. Программист записывал решаемую задачу в виде математических формул, преобразовывал формулы в двухбуквенные коды. В дальнейшем специальная программа переводила эти коды в двоичный машинный код. Таким образом, Дж. Моучли разработал один из первых примитивных интерпретаторов. А в 1951 году Г. Хоппер создала первый компилятор А-0. Ею же впервые был введен этот термин.

Первые  языки высокого уровня: Кобол и Фортран 

В 50-е годы прошлого века группа под руководством Г. Хоппер приступила к разработке нового языка  и компилятора В-0. Новый язык позволил бы программировать на языке, близком  к обычному английскому. Разработчики языка выбрали около 30 английских слов, для распознавания которых  Г. Хоппер придумала способ, сохранившийся  в операторах будущих языков программирования: каждое слово содержит неповторимую комбинацию из первой и третьей букв. Благодаря этому компилятор при создании машинного кода программы может игнорировать все остальные буквы в слове.

Необходимость появления такой системы, язык которой  приближен к разговорному, Г. Хоппер связывала с тем, что область  применения ЭВМ будут расширяться, в связи с чем будет расти и круг пользователей. По словам Г. Хоппер, следует оставить попытки "превратить их всех в математиков".

В 1958 году система  В-0 получила название FLOW-MATIC и была ориентирована  на обработку коммерческих данных. В 1959 году был разработан язык COBOL (Common Business Oriented Language) (Кобол)- машинно независимый язык программирования высокого уровня для решения задач бизнеса. Одна и та же программа, написанная на машинно независимом языке, может быть выполнена на ЭВМ разных типов, оснащенных соответствующим транслятором с этого языка. Консультантом при создании языка COBOL вновь выступила Г. Хоппер.

В 1954 году публикуется  сообщение о создании языка FORTRAN (FORmula TRANslation) (Фортран). Местом рождения языка стала штаб-квартира фирмы IBM в Нью-Йорке. Одним из главных разработчиков является Джон Бэкус. Он же стал автором НФБ (нормальная форма Бэкуса), которая используется для описания синтаксиса многих языков программирования .

В тот же период в европейских странах и в  СССР популярным становится язык ALGOL. Как  и FORTRAN, он ориентировался на математические задачи. В нем была реализована  передовая для того времени технология программирования - структурное программирование.

Большое количество новых языков стало появляться в 60-е, 70-е годы прошлого столетия, но не все из них выдержали испытание  временем. К языкам-долгожителям следует  отнести язык BASIC, разработанный  в Дартмутском университете в 1964 году под руководством Джона Кемени и Томаса Курца. По замыслу авторов, это простой язык, легко изучаемый, предназначенный для программирования несложных расчетных задач. Наибольшее распространение BASIC получил на микро-ЭВМ и персональных компьютерах. Однако первоначально этот язык был неструктурным и с этой точки зрения плохо подходил для обучения качественному программированию. В 1985 году была создана версия языка True BASIC, которая по мнению разработчиков была совершеннее, чем PASCAL. В 1991 году появилась первая версия языка VISUAL BASIC.

Языки процедурного программирования

Для первых языков программирования характерной чертой была предметная ориентация. Это значит, что каждый язык предназначался для  решения какого-то определенного  класса задач. COBOL был ориентирован на решение задач бизнеса, FORTRAN - на проведение инженерных и научных  расчетов. В эпоху ЭВМ третьего поколения большое распространение  получил язык PL/1 (Program Language/1), разработанный фирмой IBM. Это был первый язык, претендовавший на универсальность, т. е. на возможность решать любые задачи: вычислительные, обработки текстов, накопления и поиска информации. PL/1 оказался слишком сложным языком. Транслятор с него недостаточно оптимальный, содержащий ряд невыявленных ошибок. По этой причине этот язык не получил распространения. Однако линия на универсализацию языков была продолжена. Старые языки были модернизированы в универсальные варианты. Примером тому стал FORTRAN 77.

Значительным  событием в истории языков программирования стало создание в 1971 году языка PASCAL. Его автором является Никлаус Вирт, профессор из Швейцарии. Вирт назвал этот язык в честь французского математика и физика Блэза Паскаля, который в 1642 году сконструировал вычислительный механизм. Первоначально PASCAL создавался как язык для обучения. В нем ярко выражена структурная линия программирования. Широкое практическое применение язык получил с появлением персональных компьютеров в версии Turbo PASCAL.

Язык программирования С ("Си") был задуман как инструментальный язык для разработки операционных систем. Он создавался одновременно с операционной системой UNIX. Авторами этого языка и ОС UNIX являются американские программисты Деннис Ричи и Кеннет Томпсон. Первоначально К. Томпсон начал писать ОС UNIX на языке FORTRAN. В дальнейшем был создан язык С, и в 1973 году ядро операционной системы вместе с программами-утилитами было переписано на С. Этот язык является структурным языком высокого уровня. В настоящее время он применяется для разработки не только операционных систем, но и трансляторов, системных и прикладных программ.

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

В 90-х годах  прошлого столетия планировалось появление  компьютеров пятого поколения, называемых машинами "искусственного интеллекта". В качестве основных языков программирования в этом, пока неосуществленном, проекте  предполагались языки искусственного интеллекта LISP и PROLOG.

Создателем языка LISP (1956-1959 гг.) является Джон Маккарти, которого называют отцом искусственного интеллекта. Именно он первым ввел термин "искусственный  интеллект". Основным в языке LISP является понятие рекурсивно определенных функций. Доказано, что любой алгоритм может  быть описан с помощью некоторого набора рекурсивных функций. Основные идеи этого языка были позже использованы в языке программирования для  детей LOGO, разработанном в 70-е годы в Массачусетском технологическом  институте под руководством Сэймура Пейперта. Подмножество языка LOGO, включающее команды для Черепашки, применяется при раннем обучении программированию.

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

Современные языки объектно-ориентированного и визуального  программирования

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

Первым языком с элементами ООП был язык Симула-67. В Turbo PASCAL, начиная с версии 5.5, появились средства ООП. Итогом развития Turbo PASCAL в этом направлении стало создание фирмой Borland системы программирования DELPHI (Делфи). Использование этой системы, в частности, дает возможность легко и быстро программировать слож-ный графический интерфейс. В 1991 году появилась первая версия языка VISUAL BASIC. Начиная с пятой версии (1997 год) язык стал полностью объектно-ориентированным. По данным на конец 90-х годов прошлого столетия количество программистов, использующих для своих разработок VISUAL BASIC, не уступает числу сторонников VISUAL C++ и DELPHI.

В 1985 году лаборатория  Bell Labs (США) сообщила о создании языка программирования C++ (СИ++). Этот язык является сегодня наиболее популярным среди языков объектно-ориентированного программирования. С его помощью возможно создание программных приложений, ориентированных на любые машины - от персональных до суперкомпьютеров. Создателем языка является Бьорн Страуструп.

Представителем  языков объектно-ориентированного про-граммирования является и язык JAVA, созданный в 1995 году под руководством Джеймса Гослинга группой инженеров компании Sun Microsystems. При его разработке была поставлена цель - создать простой язык, не требующий специального изучения. Язык JAVA был разработан так, чтобы быть максимально похожим на C++. JAVA является идеальным инструментом при создании приложений для Интернета. 
 
 
 
 
 
 

      1. Первые универсальные языки

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

2. Ассемблер

Первым значительным шагом представляется переход к  языку ассемблера (позволим себе маленькое  лирическое отступление: английское название assembly language, или assembler, на русский переводят именно тем термином, который был использован выше. При этом у новичка создается впечатление, что язык назван в честь некоего человека по имени ассемблер. Достаточно забавная ситуация, не правда ли?). Не очень заметный, казалось бы, шаг — переход к символическому кодированию машинных команд — имел на самом деле огромное значение. Программисту не надо было больше вникать в хитроумные способы кодирования команд на аппаратном уровне. Более того, зачастую одинаковые по сути команды кодировались совершенно различным образом в зависимости от своих параметров (широко известный пример из мира современных компьютеров — это кодирование инструкции mov в процессорах Intel: существует несколько совершенно по-разному кодируемых вариантов команды; выбор того или иного варианта зависит от операндов, хотя суть выполняемой операции неизменна: поместить содержимое (или значение) второго операнда в первый). Появилась также возможность использования макросов и меток, что также упрощало создание, модификацию и отладку программ. Появилось даже некое подобие переносимости — существовала возможность разработки целого семейства машин со сходной системой команд и некоего общего ассемблера для них, при этом не было нужды обеспечивать двоичную совместимость.

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

Информация о работе История языков програмирования