Дополнительный материал к главе II (§§ 8 - 21). Первые шаги автоматизации программирования
Дополнительный материал к главе II (§§ 8 - 21). Программный продукт и его жизненный цикл
Компьютерный практикум ЦОР. Поиск наибольшего и наименьшего элементов массива (Задание 1 - 4)
Компьютерный практикум ЦОР. Поиск наибольшего и наименьшего элементов массива (Задание 5 - 8)
Программы для первых ЭВМ программисты писали на языках машинных команд. Это очень трудоемкий и длительный процесс. Проходило значительное время между началом составления программы и началом ее использования. Решить эту проблему можно было лишь путем создания средств автоматизации программирования.
Первыми «инструментами», которые экономили труд программистов, стали подпрограммы. В августе 1944 года для релейной машины «Марк-I» под руководством Грейс Хоппер (женщина-про- граммист, морской офицер ВМФ США) была написана первая подпрограмма для вычисления sin х.
Не одну Грейс Хоппер волновала проблема облегчения труда программистов. В 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-е годы XX века в Массачусетском технологическом институте под руководством Сэймура Пейперта. Подмножество языка LOGO, включающее команды для Черепашки, применяется при раннем обучении программированию.
Язык PROLOG разработан во Франции в 1972 году также для решения проблем искусственного интеллекта. PROLOG позволяет в формальном виде описывать различные утверждения, логику рассуждений, заставляет компьютер давать ответы на заданные вопросы.
В последнее время одним из основных направлений в развитии программного обеспечения компьютера стал объектно-ориентиро- ванный подход. Под словом «объект» понимается структура, объединяющая в единое целое данные и программы их обработки. Стали популярны объектно-ориентированные операционные системы (например, Windows), прикладные программы, а также системы объектно-ориентированного программирования (ООП).
Первым языком с элементами ООП был язык Симула-67. В Turbo Pascal, начиная с версии 5.5, появились средства ООП. Итогом развития Turbo Pascal в этом направлении стало создание фирмой Borland системы программирования Delphi (Делфи). Использование этой системы, в частности, дает возможность легко и быстро программировать сложный графический интерфейс. В 1991 году появилась первая версия языка Visual Basic. Начиная с пятой версии (1997 г.) язык стал полностью объектно-ориентированным. По данным на конец 90-х годов прошлого столетия, количество программистов, использующих для своих разработок Visual Basic, не уступает числу сторонников Visual С++ и Delphi.
В 1985 году лаборатория Bell Labs (США) сообщила о создании языка программирования С++ (Си++). Этот язык является сегодня наиболее популярным среди языков объектно-ориентированного программирования. С его помощью возможно создание программных приложений, ориентированных на любые машины — от персональных до суперкомпьютеров. Создатель языка — Бьорн Страуструп.
Представителем языков объектно-ориентированного программирования является и язык JAVA, созданный в 1995 году под руководством Джеймса Гослинга группой инженеров компании Sun Microsystems. При его разработке была поставлена цель — создать простой язык, не требующий специального изучения. Язык JAVA был разработан так, чтобы быть максимально похожим на С++. JAVA является идеальным инструментом при создании приложений для Интернета.
Следующая страница Дополнительный материал к главе II (§§ 8 - 21). Программный продукт и его жизненный цикл