Краткая история языков программирования
С появлением машин второго поколения возникла потребность создания языков, целиком ориентированных на особенности задач и не зависящих от конкретной машины. Символом второго поколения ЭВМ стали языки программирования высокого уровня. Их развитие все в большей степени определялосьспецификой решаемых задач, а не особенностями машин. некоторые из этих языки назвали алгоритмическими языками (языки записи алгоритмов).
Одним из первых и наиболее удачных языков такого рода стал Фортран(Formula Translation), разработанный в фирме IBM в 1954-1957 г.г. группой разработчиков во главе с Джоном Бэкусом. Языки высокого уровня вначале быливстречены с недоверием. Считалось, что они не позволят добиться тойэффективностивыполнения программ, которую давали машинные коды.FORTRANпоказал, что это не так. Язык Фортран не только просуществовал до наших дней, но и достаточно распространен (VisualFortran). Среди причин такого долголетия можно отметить простую структуру как самого Фортрана, так и предназначенных для него трансляторов, а также большой объем библиотек исходных текстов уже решенных задач.
Вскоре после создания Фортрана появился (в Европе) язык Алгол(Algorithmic Language), созданный на основе широкого международного сотрудничества. В 1960 г. было опубликовано официальное сообщение об алгоритмическом языке, названном Алгол-60. Алгол создавался после разработки и практического применения Фортрана, поэтому характеризуется как введением новых конструкций, так и обобщением понятий, имеющихся в Фортране. На Алголе стали публиковаться описания алгоритмов (Библиотека алгоритмов - у нас в стране).
Несмотря на то, что и Фортран, и Алгол заслуживали название универсальных языков, ни один них, конечно, не позволял описать все без исключения возникающие задачи. Поэтому примерно в то же время появились алгоритмические языки с проблемной ориентацией, такие как
Кобол - экономические расчеты, Снобол - обработка строк, Симула-67 - моделирование
отвечающие нуждам специфичных направлений науки и техники.
Десятилетняя история развития языка программирования привела к появлению т.н. универсальных языков программирования:
- ALGOL 68(оказался излишне громоздким и не очень удобным)
- PL/1(Programming Language/1 — язык программирования один) создан фирмой IBM в 1964 г. Он основывался (взял основные черты) на языках Фортран, Кобол, Алгола и других языков. Был очень популярен на больших ЭВМ (до появления ПЭВМ) во всем мире (и в СССР тоже).
В 1971 г. Никлаусом Виртом был предложен алгоритмический язык Паскаль(Pascal), который предназначалсядля обучения студентовосновам науки о вычислительных машинах, системах и информационных технологиях. Язык Паскаль является преемником Алгола-60, он имеет конструкции, аналогичные существующим в PL/1 и Алголе-68, однако Паскаль более лаконичен. Язык Паскаль способствовал внедрению структурного программирования как современной технологии программирования, основанной на пошаговом построении программы, состоящей из небольших четко определенных процедур.
Язык Паскаль в оригинальной авторской версии не содержал средств раздельной компиляции — модулей, разнообразных числовых типов, строк переменной длины и многого из того, что добавлено в известные реализации. Вследствие этого Н.Вирт предложил языкМодула-2, который должен был заменить Паскаль, устранив основное его ограничение — отсутствие модульности. Известно, что Модула-2 использовалась и используется в проектах, где важнейшую роль играет надежность. Средства межмодульного контроля Модулы-2 заметно совершеннее аналогичных возможностей Паскаля и C.
Язык Оберонбыл разработан Н. Виртом в 1987 г. Он представляет собой существенно упрощенный синтаксически вариант Модулы-2, в который добавлены расширяемые записи — основноймеханизм ООП. Язык необычайно прост, но при этом сохраняет универсальность и в функциональном отношении не уступает другим языкам. В 1992 г. Н. Виртом были приняты расширения Оберона, предложенные Ханспетером Мёссенбёком. В язык введены аналоги виртуальных методов в других языках. Новая версия получила название Оберон-2. Удивительно, но Оберон-2 оказался проще Оберона, расширением которого является.
В свою очередь популярность Паскаля еще более возросла с массовым распространением персональных компьютеров и выпуском фирмой Borlandсреды разработкиTurbo Pascal. Компилятор Турбо-Паскаль, разработанный Андерсом Хейльсбергом, был выпущен в продажу фирмой Borland в 1983 г. (версия 1.0). Эта версия уже содержала расширения языка, хотя и небольшие. В последующих выпусках расширений становилось все больше: встроенная графика, модули, средства объектно-ориентированного программирования (ООП) и т.д. Начиная с версии 7.0, язык стал называться Borland Паскаль.
Borland Delphi 1.0 (1995) - 16-разрядная
Borland Delphi 2.0 (1996) - 32-разрядная
…
Borland Delphi 7 (2001) - самая популярная
…
CodeGear Delphi 2007
…
Embarcadero Delphi 2009 - 2014 (XE4)
Бесплатные варианты - Lazarus (на базе Free
Pascal) иTurboDelphi(2006 г. - появилась, 2008 г. - закрыта).
Kylix3 (2002 г.) - последняя
«Наследником» TurboPascalстала среда программирования (и язык)Delphi— система быстрой разработки приложений дляMicrosoftWindows(RADилиRapidApplicationDevelopment) — иKylix— система быстрой разработки приложений дляXWindowSystemв операционной системеUNIX. Развитием Паскаля стала вBorlandPascalиDelphiобъектно-ориентированная версия Паскаля - Объектный Паскаль (1984 г.). Объектный Паскаль (вDelhi-ObjectPascal2.0) по сравнению со стандартным Паскалем содержит очень много синтаксических расширений. В результате из простого и изящного Паскаля получился язык, приближающийся по сложности к языку Ада.
Язык Ада((Ada-83 иAda-95), созданный какофициальный язык программирования американских военныхбыл такжесоздан на основе языка Паскальв конце 70-х годов. Язык назван так по имени первой женщины-программиста Ады Лавлейс. Это существенно структурированный язык, особенно он подходитдля разработки систем реального времени. Однако язык Ада слишком громоздкий, многословный и не предоставляет программисту достаточной свободы. По синтаксическойсложностион до сихпор не превзойден ни одним из языков.
Ada C
Pascal Modula (Modula-2) C++
Oberon (Oberon-2 и 3) Java C#
Turbo Pascal (Borland Pascal)
Object Pascal (Delphi)
Почти одновременно с языком Pascalпоявилсяязык С, предложенный Денисом Ритчи в начале 70-х годов. Он задумывался как язык сравнительно низкого уровня в том смысле, что язык C достаточно полно отражает возможности современных компьютеров, позволяя писать весьма эффективные программы, не прибегая к языкам ассемблера. Он использовался для написания значительной части ОСUnix. Используется как язык системного программирования и как язык программирования вычислений. Не накладывая на программиста особых ограничений (в отличие от Паскаля), он дает возможность для разнообразных трюков, чем тоже многим импонирует.
На основе языка С был создан объектно-ориентированный язык C++(1986 г.). Объектно-ориентированный язык C++ предложил Бьярн Страуструп (жаргон - Дохлый Страус) с первоначальным названием «Си с классами». Название отражает тот факт, что C++ является надмножеством языка C. Язык C++, по ряду оценок, сложнее C вдвое. В настоящее время это, без преувеличения, язык номер один в мире для профессиональных программистов, поскольку он перенял преимущества и популярность C и добавил мощные средства написания объектно-ориентированных программ. Его реализации поддерживаются на всех аппаратно-программных платформах, в отличие от Паскаля, который широко распространен лишь на платформе IBM PC.
Язык С++ в свою очередь, дал жизньпопулярному и широко используемому объектно-ориентированному языкуJava(в английском произношении — Джава), предложенному Джеймсом Гослингом (фирма Sun Microsystems - ее купилаOracle) в 1995 г. Основная особенность Java — межплат¬форменная переносимость приложений, благодаря чему язык широко используется для написания приложений для Internet (дляWeb-программирования). Java — очень сложный синтаксически язык. Его официальное описание — 700-страничный документ — насыщен многословными и громоздкими определениями. Несмотря на эту сложность, в Java есть всего две существенные вещи, которых нет, например, в Обероне: встроеннаямногопоточностьиобработка исключений.
Ответом фирмы Microsoftна рост популярностиJavaсталязык C#(Си Шарп) (2000 г.).
В целом, к настоящему моменту известно от 2-х до 3-х тысяч языков программирования, из них около 100 объектных и объектно-ориен¬ти¬ро-ван¬ных.
6. Подходы к разработке программ(парадигмы программирования)