Эволюция и классификация языков программирования. Основные понятия языков программирования

Автор: Пользователь скрыл имя, 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

Файлы: 1 файл

эволюция и классификация языков программирования..doc

— 122.00 Кб (Скачать)

В 1983 году под эгидой Министерства Обороны  США был создан язык Ada. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений).

В 1995 году был принят стандарт языка Ada 95, который  развивает предыдущую версию, добавляя в нее объекно- ориентированность и исправляя некоторые неточности. Оба этих языка не получили широкого распространения вне военных и прочих крупномасштабных проектов (авиация, железнодорожные перевозки). Основной причиной является сложность освоения языка и достаточно громоздкий синтаксис (значительно более громоздкий, чем Pascal). 

                                              12. Скриптовые языки

В последнее  время в связи развитием Интернет-технологий, широким распространением высокопроизводительных компьютеров и рядом других факторов получили распространение так называемые скриптовые языки. Эта языки первоначально ориентировались на использование в качестве внутренних управляющих языков во всякого рода сложных системах. Многие из них, однако же, вышли за пределы сферы своего изначального применения и используются ныне в совсем иных областях.

Характерными  особенностями данных языков являются, во-первых, их интерпретируемость (компиляция либо невозможна, либо нежелательна), во-вторых, простота синтаксиса, а в-третьих, легкая расширяемость. Таким образом, они идеально подходят для использования в часто изменяемых программах, очень небольших программах или в случаях, когда для выполнения операторов языка затрачивается время, несопоставимое со временем их разбора. Было создано достаточно большое количество таких языков, перечислим лишь основные и наиболее часто используемые. 
 

                                                        12.1. JavaScript

Язык  был создан в компании Netscape Communications в качестве языка для описания сложного поведения веб-страниц. Первоначально назывался LiveScript, причиной смены названия послужили маркетинговые соображения. Интерпретируется браузером во время отображения веб-страницы. По синтаксису схож с Java и (отдаленно) с C/C++. Имеет возможность использовать встроенную в браузер объектную функциональность, однако подлинно объектно-ориентированным языком не является. 

                                                         12.2. VBScript

Язык  был создан в корпорации Microsoft во многом в качестве альтернативы JavaScript. Имеет схожую область применения. Синтаксически схож с языком Visual Basic (и является усеченной версией последнего). Так же, как и JavaScript, исполняется браузером при отображении веб-страниц и имеет ту же степень объектно- ориентированности.

                                                              13. Perl

Язык  создавался в помощь системному администратору операционной системы Unix для обработки  различного рода текстов и выделения  нужной информации. Развился до мощного  средства работы с текстами. Является интерпретируемым языком и реализован практически на всех существующих платформах. Применяется при обработке текстов, а также для динамической генерации веб-страниц на веб-серверах.

                                                            14. Python

Интерпретируемый  объектно-ориентированный язык программирования. По структуре и области применения близок к Perl, однако менее распространен  и более строг и логичен. Имеются  реализации для большинства существующих платформ. 

                                   15. Объектно-ориентированные языки

Объектно-ориентированный  подход, пришедший на смену структурному, впервые появился отнюдь не в C++, как  полагают некоторые. Существует целая  череда чистых объектно-ориентированных  языков, без сведений о которых этот обзор был бы неполным. 
 

                                                        15.1. Simula

Первым  объектно-ориентрованным языком был  язык Simula (1967). Этот язык был предназначен для моделирования различных  объектов и процессов, и объектно-ориентированные черты появились в нем именно для описания свойств модельных объектов.

                                                     15.2. Smalltalk

Популярность  объектно-ориентированному программированию принес язык Smalltalk, созданный в 1972 году. Язык предназначался для проектирования сложных графических интерфейсов и был первым по-настоящему объектно-ориентированным языком. В нем классы и объекты — это единственные конструкции программирования. Большим недостатком Smalltalk являются большие требования к памяти и низкая производительность полученных программ. Это связано с не очень удачной реализацией объектно-ориентированных особенностей. Популярность языков C++ и Ada 95 связана именно с тем, что объектно- ориентированность реализована без существенного снижения производительности. 

                                                          15.3. Eiffel

Существует  язык с очень хорошей реализацией  объектно- ориентированности, не являющийся надстройкой ни над каким другим языком. Это язык Eiffel (1986). Являясь чистым языком объектно-ориентированного программирования, он, кроме того, повышает надежность программы путем использования «контрольных утверждений». 

                        16. Языки параллельного программирования

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

                                                          

                                                    16.1. Язык Оccam

Язык  Оccam был создан в 1982 году и предназначен для программирования транспьютеров — многопроцессорных систем распределенной обработки данных. Он описывает взаимодействие параллельных процессов в виде каналов — способов передачи информации от одного процесса к другому. Отметим особенность синтаксиса языка Occam — в нем последовательный и параллельный порядки выполнения операторов равноправны, и их необходимо явно указывать ключевыми словами PAR и SEQ.  

                       16.2. Модель параллельных вычислений Linda

В 1985 году была предложена модель параллельных вычислений Linda. Основной ее задачей является организация взаимодействия между параллельно выполняющимися процессами. Это достигается за счет использования глобальной кортежной области (tuple space). Процесс может поместить туда кортеж с данными (то есть совокупность нескольких, возможно разнородных, данных), а другой процесс может ожидать появления в кортежной области некоторого кортежа и, после его появления, прочитать кортеж с возможным последующим его удалением. Заметим, что процесс может, например, поместить кортеж в область и завершиться, а другой процесс может через некоторое время воспользоваться этим кортежем. Таким образом обеспечивается возможность асинхронного взаимодействия. Очевидно, что при помощи такой модели может быть сэмулировано и синхронное взаимодействие. Linda — это модель параллельных вычислений, она может быть добавлена в любой язык программирования. Существуют достаточно эффективные реализации Linda, обходящие проблему существования глобальной кортежной области с потенциально неограниченным объемом памяти. 

                                      17. Функциональные языки

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

Из языков с энергичной семантикой упомянем 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_evolution.html;

работа В.В.Соколова, к.т.н., доцента; 

2.Сайт  http://schools.keldysh.ru/sch444/MUSEUM/LANR/evol.htm,

статья Михаила  Плискина. 

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