Языки программирования, их классификация и развитие

Автор: Пользователь скрыл имя, 13 Ноября 2011 в 09:02, реферат

Описание работы

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко.

Содержание

1.Введение
1.1. Интерпретаторы
1.2. Компиляторы
2. Классификация языков программирования
2.1. Машинно – ориентированные языки
2.1.1. Машинные языки
2.1.2. Языки символического кодирования
2.1.3. Автокоды
2.1.4. Макрос
2.2. Машинно – независимые языки
2.2.1. Машинно – независимые языки
2.2.2. Универсальные языки
2.2.3. Диалоговые языки
2.2.4. Непроцедурные языки
3. Развитие языков программирования
3.1. Ассемблер
3.2. Лисп
3.4. Бейсик
3.5. Рефал
3.6. Пролог и Пролог++
3.7. Лекс
3.8. Си
3.8.1. Особенности языка Си
3.8.2. Недостатки языка Си
3.9. Си++
3.9.1. Замечание по проекту языка Си++
4. Заключение
5. Библиография

Работа содержит 1 файл

Языки инфа.doc

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

При разработке операционной системы UNIX использовался язык BCPL (1967), и языки которые были созданы на его основе: B (1968) и его переработанная версия - C (1971).

Если говорить о  других языках повлиявших на историю  развития программирования, то в 1969-ом появился язык Forth и SmallTalk (в последнем заметно влиянием Lisp). Затем, уже в через год, разработан язык логики Prolog и процедурный язык Pascal.

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

Структурное программирование подразумевает точно обозначенные управляющие структуры, программные  блоки, отсутствие операторов GOTO, автономные подпрограммы, в которых поддерживается рекурсия и локальные переменные. В структурном программировании появилась возможность разбиения программы на составляющие элементы.

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

В написании эффективных  многоцелевых языков пробуют использовать различные техологии программирования. С ростом производительности ЭВМ  от платформно-ориентированных последовательных процедурных языков с одним входом и одним выходом в 1975-ом пришли к созданию Modula(развитие Pascal) и Scheme(малый собрат языка Lisp).

В 1978-ом появился стандарт C от Кернигана и Ритчи, появляется и AWK, унаследовавший кое-что от С. Под влиянием популярности Pascal в 1979-ом появились языки Modula 2 и ADA.

В 1983-ем появляется ML -прародитель таких языков как O'Caml и Standard ML, небезызвестный С++ задумывается именно в этом году, совершенствуются другие языки (ADA'83, Prolog II).

В 1987-ом принят в качестве стандарта ADA ISO, создатель языка Pascal со своим коллегой недовольны малым вниманием к европейским языкам программирования и выпускают на рынок Oberon - операционную систему нового поколения (здесь язык является частью компонентной ОС). В том-же году появляются объектно-ориентированный язык OO Forth, стабильная версия Perl 1.0(гибрид sh и awk), появился Caml.

В 1988-ом уже существовал  Modula 3 и Perl 2.0. В 1989-ом: Tcl , ANSI C (C89), Perl 3.0, bash. В 1990-м: Scheme IEEE, ISO C (C90), SML'90. В 1991-ом: Fortran'90 ISO, Python , Java, Perl 4.0, NetRexx, Tcl/Tk. В 1992-ом разработан язык принтеров - PostScript level 2, появился фактический стандарт языка Oberon-2. В 1994-ом: Perl 5.0, Common Lisp ANSI. В 1995-ом: ADA'95, Delphi, Java 1. В 1996-ом: PostScript level 3, APL'96, ISO C (C95), Objective Caml. 1997-ой - довольно богатый на языки год: Object Rexx, Prolog IV, OO Cobol, Modula 2 ISO, SML'97. Также компания Oberon Мicrosystems внесла в Oberon-2 небольшие дополнения и разработав коммерческий компилятор промышленного уровня выпустила его в свет под названием Component Pascal.

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

В 1998-ом году утвержден  стандарт на C++ ANSI/ISO, Java 2 (v1.2), O'Caml 2. Впрочем круглая дата и у функционального языка Haskell'98 .

В 1999-ом ничего существенного  не появилось. Как обычно затачивались такие языки как TCL/TK 8.1, Python 1.5.2, Delphi 5, ISO C (C99), NetRexx 1.150.

А вот в 2000-ом году у появившегося к тому моменту  Java 2(v1.3) появился конкурент - C#. Появилась по-моему самая стабильная из существовавших версия Perl 5.6. Затачивается получивший широкое распространение в Европе функциональный, объектно-ориентированный язык O'Caml 3.

В 1990-х годах модно  везде где это возможно добавлять  визуальные средства разработки. К  таким системам можно отнести такие системы проектирования как AutoCAD, системы лабораторных изследований LabView, MATLAB, математический пакет Maple. Все они являются лидерами в своей области (хотя и не монополии; ;-) ).

В среде системных  программистов визуальный интерфейс получил свой современный вид в основном благодаря противостоянию в 1990-ых с Microsoft фирм Borland и Watcom, которое как вылилось в появление семейств языков Microsoft Visual Studio, ставшего мощнейшим инструментом в руках Microsoft для пропаганды миграции на платформу Windows, и разрозненного множества систем от Borland(что лишь усиливало бражение в умах пользователей), - таких сред как Delphi, Kylix, СBuilder и JBuilder. Кроме того флагманским продуктом Borland провозглашается все-таки система, основанная на довольно старом языке Object Pascal - Delphi(кроме Borland, Object Pascal никто так широко не использует).

Короче Microsoft добилась своего. Осталась помеха в виде Java 2, против которого начинает "крестовый поход" язык нового поколения - C#.

Хотя среди всевозможных мыльных пузырей затерялся весьма достойная объектная модель пакета IBM VisualAge.

Будущее пренадлежит  кроссплатформенным инструментам разработки, и к ним можно отнести wxWindows, Qt и несколько других пакетов.

Основные причины их популярности следующие:

   1. низкая цена;   2. доступность исходных кодов;   3. простота программирования;   4. поддержка большинства современных  компиляторов.

По сравнению с  библиотеками тех же Borland, Microsoft или Sun у wxWindows история побогаче будет(первая версия появилась еще в 1993-ем). В отличии от других библиотек подобного типа в поставку wxWindows входят не бесполезные примеры одноразового применения, а довольно редкие(на мой взгляд) программы. Например есть конвертер документов из формата TeX в RTF.

Разумеется совершенствование  систем программирования сегодня и  в России не останавливается. Мое  внимание привлекли материалы конференции "Индустрия программирования'96". В одном из докладов этой конференции  говорилось о реализованной при  разработке МКС "Буран" системе программирования СИПРОЛ, позволявщей получать исполнимый код в форме С-программ, что в свою очередь позволяло переносить разработанные системы управления практически на все современные ЭВМ. Отличительная особенность системы - графический редактор и отладчик, которые были интегрированы в единую "турбо-систему". Разработку систем управления можно вести как средствами графического, так и обычного (текстового) программирования. Серьезное внимание уделено "уровню зрелости" (maturity level) процесса разработки, т.е. вопросам повышения качества создаваемого ПО и процесса его разработки.

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

В Институте прикладной математики им. М.В.Келдыша РАН в  ходе исследований и разработки средств поддержки разработчикам ПО для крупных управляющих систем реального времени разработан подход иерархического конфигурационного управления(ИКУ), который позволил решить следующие задачи:

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

   2. обеспечить  поддержку откатов и ретроспективного  анализа процесса разработки, за  счет интегрирования системы  хранения поколений и описаний  изменений;

   3. автоматизировать  поддержку сборки согласованных  версий(конфигураций);

   4. обеспечить  целостность контролируемых версий.

Последнее время  высока популярность WWW-программирования . Языки WWW-программирования обладают рядом свойств, которые позволяют использовать их на платформе, специализированной для работы в качестве сервера. Чаще всего это интерпретаторы (такие как Perl, PHP) позволяющие использовать их на стороне сервера, или языки поддерживаемые клиентом(браузеры) - HTML, XML, Java, JavaScript, или специальные модули(plug-in), расширяющие клиента - Flash.

PHP (Hypertext Preprocessor - Препроцессор Гипертекста)– это широко используемый язык сценариев общего назначения с открытым исходным кодом.

PHP - язык программирования, специально разработанный для написания web-приложений (скриптов, сценариев), исполняющихся на Web-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl, поэтому для профессионального программиста не составит труда его изучить. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.

Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь даже может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта.

Сценарии на языке  PHP могут исполняться на сервере в виде отдельных файлов, а могут интегрироваться в html страницы.

PHP способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML.

PHP - кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других.

Для большинства  серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора.

PHP поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.

Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности.

Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования.

Информация о работе Языки программирования, их классификация и развитие