Слайд 1Языки программирования
Высокого уровня
Елисеева Виктория,
МДМ-212
Слайд 2История развития языков высокого уровня
Всю историю компьютерной индустрии и компьютерных
наук с определенной точки зрения можно представить как историю развития
языков программирования.
Меняются времена, усложняются задачи, то, что раньше требовало много лет, нынче энтузиасты делают на коленке за несколько недель; накоплена огромная масса типовых решений, типовых библиотек и типовых программистов,
а создание, развитие и изменение языков программирования идет полным ходом.
Слайд 3История развития языков высокого уровня
1801 - Иосиф Мария Жаккард с
помощью перфокарт вышивает «hello world» на ткани
1842 - Ада Лавлейс
пишет первую программу
1936 - Алан Тьюринг изобретает все языки, которые теоретически могут существовать, но не успевает запатентовать их
1936 - Алонзо Черч тоже изобретает все возможные языки, только лучше. Его лямбда-исчисление непопулярно, потому что непохоже на С. Критиков не смущает, что язык С еще не изобрели.
1957 - Джон Бакус и IBM изобретают Фортран
1958 - Джон МакКарти и Пол Грэм придумывают ЛИСП
1964 - Джон Кемни и Томас Курц пишут БЕЙСИК
1970 - Гай Стил и Джеральд Зюсман создают Схему. В результате их усилий появляется "Всемогущая Лямбда", а затем «Всемогущая Лямбда, Универсальная Мультиварка»
1970 - Никлас Вирт создает процедурный язык Паскаль
1972 - Деннис Ричи изобретает язык С и Юникс
1972 - Ален Колмеро изобретает логический язык Пролог
1973 - Робин Милнер пишет МЛ, язык на основе теории типов M&M. МЛ порождает СМЛ, обладающий формально описанной семантикой. В число языков семейства МЛ входят OCaml, F# и Visual Basic
1980 - Алан Кей пишет Smalltalk
1983 - Бьёрн Страуструп берет язык С, лепит поверх него все, что приходит на ум, и называет это С++
1986 - Брэд Кокс и Том Лав придумывают Objective-C
1995 - Брендан Эйк собирает ошибки всех известных языков, добавляет несколько новых и объединяет все в Livescript. Через некоторое время язык переименовывают в Javascript, чтобы воспользоваться популярностью языка Java. Через некоторое время язык переименовывают в ECMAscript
1996 - Джеймс Гослинг придумывает Яву. Ява - довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Sun громко провозглашает Java самым инновационным языком.
2001 - Андерс Хейлсберг придумывает C1. C1 - довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Microsoft громко провозглашает C1 самым инновационным языком.
Слайд 4Язык высокого уровня (high-level language) - язык программирования, средства которого
обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для
программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран , ПЛ/1 , Бейсик , Паскаль , Си , Ада, C++, Visual Basic, Java, Python, Ruby, Perl, Delphi (Pascal), PHP
Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинство из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода.
Слайд 5Основные требования, предъявляемые к языкам программирования:
наглядность - использование в языке
по возможности уже существующих символов, хорошо известных и понятных как
программистам, так и пользователям ЭВМ;
единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;
гибкость - возможность относительно удобного, несложного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;
модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;
однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач.
Слайд 7Ада [Ada] - язык программирования высокого уровня, ориентированный на применение
в системах реального времени и предназначенный для автоматизации задач управления
процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон (Лавлейс), жившей в 1815-1851 гг.
Слайд 8Кобол [COBOL - COmmon Buisiness-Oriented Language] - Язык программирования высокого
уровня, разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения
коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.
Слайд 9Лисп [LISP - LISt Processing] - Алгоритмический язык, разработанный в
1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов
данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог.
Слайд 10Паскаль [PASCAL - акроним с французского - Program Applique a
la Selection et la Compilation Automatique de la Litterature] -
Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля. В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal ) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).
Слайд 11ЛОГО [LOGO от греч. logos - слово ] - Язык
программирования высокого уровня, разработан в Массачусетском технологическом институте в ориентировочно
1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем.
Слайд 12Пролог [PROLOG - PROgramming in LOGic] - Язык программирования высокого
уровня декларативного типа, предназначенный для разработки систем и программ Бейсик
Бейсик [BASIC - Beginner’s All-purpose Symbolic Instruction Code] - Язык программирования высокого уровня , разработанный в 1963 - 1964 гг. в искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0.
Слайд 13Си [C ] - Многоцелевой язык программирования высокого уровня, разработанный
Денисом Ритчи в начале 1970-х гг. на базе языка BCPL.
Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix , однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C ( фирмы Microsoft ), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++
Слайд 14Си++ [C++] - Язык программирования высокого уровня, созданный Бьярном Страустрапом
на базе языка Си. Является его расширенной версией, реализующей принципы
объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).