Автор: Пользователь скрыл имя, 19 Декабря 2011 в 09:30, реферат
Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования. Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
1.Введение……………………………………………………………………………...3
2.Способы реализации языков………………………………………………………3
3.Движущие силы эволюции языков программирования……………………......4
4.История развития языков программирования…………………………………..5
5.Классификация языков программирования……………………………………..8
6.Язык программирования Фортран………………………………………………..9
7.APL……………………………………………………………………………………10
8.Lisp и ему подобные языки……………………………….... ……………………10
9.Cobol………………………………………………………………………………….10
10.Algol…………………………………………………………………………………11
11.Snobol и Icon………………………………………………………………………11
12.BASIC……………………………………………………………………………….11
13.SETL…………………………………………………………..................................11
14.Pascal-подобные языки………………………………………………………….12
15.С-подобные языки………………………………………………………………..12
16.Языки Ada и Ada 95………………………………………………………………13
17.Скриптовые языки……………………………………………………………..…13
18.Perl………………………………………………………………………………….14
19.Python……………………………………………………………………………....14
20.Объектно-ориентированные языки…………………………………………...14
21.Языки параллельного программирования…………………………………...15
22.Функциональные языки…………………………………………………………16
23.Языки логического программирования……………………………………… 17
24.Вывод………………………………………………………………………………17
25.Список литературы………………………………………………………………18
В 1983 году под эгидой Министерства Обороны США был создан язык Ada. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений).
В 1995 году
был принят стандарт языка Ada 95, который
развивает предыдущую версию, добавляя
в нее объекно- ориентированность и исправляя
некоторые неточности. Оба этих языка
не получили широкого распространения
вне военных и прочих крупномасштабных
проектов (авиация, железнодорожные перевозки).
Основной причиной является сложность
освоения языка и достаточно громоздкий
синтаксис (значительно более громоздкий,
чем Pascal).
В последнее
время в связи развитием
Характерными
особенностями данных языков являются,
во-первых, их интерпретируемость (компиляция
либо невозможна, либо нежелательна), во-вторых,
простота синтаксиса, а в-третьих, легкая
расширяемость. Таким образом, они идеально
подходят для использования в часто изменяемых
программах, очень небольших программах
или в случаях, когда для выполнения операторов
языка затрачивается время, несопоставимое
со временем их разбора. Было создано достаточно
большое количество таких языков, перечислим
лишь основные и наиболее часто используемые.
Язык
был создан в компании Netscape Communications
в качестве языка для описания
сложного поведения веб-страниц. Первоначально
назывался LiveScript, причиной смены названия
послужили маркетинговые соображения.
Интерпретируется браузером во время
отображения веб-страницы. По синтаксису
схож с Java и (отдаленно) с C/C++. Имеет возможность
использовать встроенную в браузер объектную
функциональность, однако подлинно объектно-ориентированным
языком не является.
Язык был создан в корпорации Microsoft во многом в качестве альтернативы JavaScript. Имеет схожую область применения. Синтаксически схож с языком Visual Basic (и является усеченной версией последнего). Так же, как и JavaScript, исполняется браузером при отображении веб-страниц и имеет ту же степень объектно- ориентированности.
Язык создавался в помощь системному администратору операционной системы Unix для обработки различного рода текстов и выделения нужной информации. Развился до мощного средства работы с текстами. Является интерпретируемым языком и реализован практически на всех существующих платформах. Применяется при обработке текстов, а также для динамической генерации веб-страниц на веб-серверах.
Интерпретируемый
объектно-ориентированный язык программирования.
По структуре и области применения
близок к Perl, однако менее распространен
и более строг и логичен. Имеются
реализации для большинства существующих
платформ.
15. Объектно-ориентированные языки
Объектно-ориентированный
подход, пришедший на смену структурному,
впервые появился отнюдь не в C++, как
полагают некоторые. Существует целая
череда чистых объектно-ориентированных
языков, без сведений о которых этот
обзор был бы неполным.
Первым объектно-ориентрованным языком был язык Simula (1967). Этот язык был предназначен для моделирования различных объектов и процессов, и объектно-ориентированные черты появились в нем именно для описания свойств модельных объектов.
Популярность
объектно-ориентированному программированию
принес язык Smalltalk, созданный в 1972 году.
Язык предназначался для проектирования
сложных графических интерфейсов и был
первым по-настоящему объектно-ориентированным
языком. В нем классы и объекты — это единственные
конструкции программирования. Большим
недостатком Smalltalk являются большие требования
к памяти и низкая производительность
полученных программ. Это связано с не
очень удачной реализацией объектно-ориентированных
особенностей. Популярность языков C++
и Ada 95 связана именно с тем, что объектно-
ориентированность реализована без существенного
снижения производительности.
Существует
язык с очень хорошей реализацией
объектно- ориентированности, не являющийся
надстройкой ни над каким другим
языком. Это язык Eiffel (1986). Являясь чистым
языком объектно-ориентированного программирования,
он, кроме того, повышает надежность программы
путем использования «контрольных утверждений».
16. Языки параллельного программирования
Большинство компьютерных архитектур и языков программирования ориентированы на последовательное выполнение операторов программы. В настоящее время, однако же, существуют программно-аппаратные комплексы, позволяющие организовать параллельное выполнение различных частей одного и того же вычислительного процесса. Для программирования таких систем необходима специальная поддержка со стороны средств программирования, в частности, языков программирования. Некоторые языки общего назначения содержат в себе элементы поддержки параллелизма, однако же программирование истинно параллельных систем требует подчас специальных приемов.
Язык
Оccam был создан в 1982 году и предназначен
для программирования транспьютеров —
многопроцессорных систем распределенной
обработки данных. Он описывает взаимодействие
параллельных процессов в виде каналов
— способов передачи информации от одного
процесса к другому. Отметим особенность
синтаксиса языка Occam — в нем последовательный
и параллельный порядки выполнения операторов
равноправны, и их необходимо явно указывать
ключевыми словами PAR и SEQ.
16.2. Модель параллельных вычислений Linda
В 1985 году
была предложена модель параллельных
вычислений Linda. Основной ее задачей является
организация взаимодействия между параллельно
выполняющимися процессами. Это достигается
за счет использования глобальной кортежной
области (tuple space). Процесс может поместить
туда кортеж с данными (то есть совокупность
нескольких, возможно разнородных, данных),
а другой процесс может ожидать появления
в кортежной области некоторого кортежа
и, после его появления, прочитать кортеж
с возможным последующим его удалением.
Заметим, что процесс может, например,
поместить кортеж в область и завершиться,
а другой процесс может через некоторое
время воспользоваться этим кортежем.
Таким образом обеспечивается возможность
асинхронного взаимодействия. Очевидно,
что при помощи такой модели может быть
сэмулировано и синхронное взаимодействие.
Linda — это модель параллельных вычислений,
она может быть добавлена в любой язык
программирования. Существуют достаточно
эффективные реализации Linda, обходящие
проблему существования глобальной кортежной
области с потенциально неограниченным
объемом памяти.
Основная идея, лежащая в основе функционального программирования, — это представление программы в виде математических функций (т.е. функций, значение которых определяется лишь их аргументами, а не контекстом выполнения). Оператор присваивания в таких языках не используется (или, как минимум, его использование не поощряется). Императивные возможности, как правило, имеются, но их применение обставлено серьезными ограничениями. Существуют языки с ленивой и с энергичной семантикой. Различие заключается, грубо говоря, в том, что в языках с энергичной семантикой вычисления производятся в том же месте, где они описаны, а в случае ленивой семантики вычисление производится только тогда, когда оно действительно необходимо. Первые языки имеют более эффективную реализацию, в то время как вторые — лучшую семантику.
Из языков с энергичной семантикой упомянем ML и два его современных диалекта — Standard ML (SML) и CaML. Последний имеет объектно-ориентированного потомка — Objective CaML (O’CaML). Среди языков с ленивой семантикой наиболее распространены два: Haskell и его более простой диалект Clean.
18. Языки логического программирования
Программы на языках логического программирования выражены как формулы математической логики, а компилятор пытается получить следствия из них.
Родоначальником большинства языков логического программирования является язык Prolog (1971). У него есть ряд потомков — Parlog (1983, ориентирован на параллельные вычисления), Delta Prolog и др. Логическое программирование, как и функциональное, — это отдельная область программирования.
Windows, сети ЭВМ, серверы, базы данных и Internet,
как основа НИТ(национальных информационных
технологий), оказывают сильнейшее влияние
на современные ЯП. Разработчики ЯП просто
обязаны включать в языки средства поддержки
НИТ, чтобы привлечь программистов на
свою сторону. Для поддержки Windows создаются
системы визуального программирования
с приставкой Visual, например Visual C++, Visual
Basic и др. Для работы с БД, сетями и Internet
в ЯП включаются специальные внутренние
или внешние средства.
Вывод:Изучение
вопросов эволюции ЯП призвано облегчить
программисту выбор языка для решения
определенных задач. Однако, следует осознавать,
что не все мы полиглоты и не нужно изучать
все существующие ЯП - достаточно изучать
по одному языку каждого класса по мере
необходимости, так как в процессе эволюции
все языки одного класса сближаются.
1.Сайт http://www.ait.org.ua/p/pub_
работа В.В.Соколова,
к.т.н., доцента;
2.Сайт http://schools.keldysh.ru/
статья Михаила
Плискина.