Файл: История развития высокоуровневых языков программирования язык программирование интерфейс сетевой.pdf
Добавлен: 29.03.2023
Просмотров: 268
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 2. Системы программирования
2.1 Понятия, назначение и элементы системы программирования
2.2 Структура современной системы программирования
Глава 3. Примеры современных систем программирования
3.1 Системы программирования компании Borland/Inprise
3.2 Системы программирования фирмы Microsoft
3.3 Система программирования Java
Глава 1. История развития высокоуровневых языков программирования язык программирование интерфейс сетевой
Языки программирования появились связи с необходимостью заставить ЭВМ эффективно работать, поэтому вполне логично начать с краткого экскурса в историю развития высокоуровневых языков программирования.
При классификации языков выделяют следующие типы языков:
- Ассемблерные языки — являются символьным представлением машинных языков конкретного компьютера.
- Императивные языки — это языки, оперирующие командами, изменяющими значение элементов данных, располагают операциями присваивания и циклами. К ним относятся все современные языки программирования.
- Декларативные языки — языки, оперирующие инструкциями данным и отношениями между ними. Алгоритм скрывается семантикой языка. Это аппликативные языки, языки логики и объектно-ориентированные языки. Примеры декларативных свойств - сложные множества и инструкции поиска по шаблону.
- Метаязыки — языки, используемые для формального описания других языков.
- Аппликативные языки — функции применяются к значениям без побочного эффекта. Это Функциональные языки во всем своем многообразии.
- Процедурные языки — позволяют определять отдельные методы вычисления какой-нибудь проблемы. Включают в себя императивные и функциональные языки.
- Функциональные языки — оперируют функциями высокого порядка. В них манипуляции совершаются напрямую функциями, а не данными. К категории функциональных языков относятся Lisp, FP, APL, Nial, Krc.
- Объектно-ориентированные языки — языки, в которых данные и функции, имеющие доступ к ним рассматриваются как один модуль. Пример: Object Pascal, С++, Java, Objective Caml.
- Языки запросов — обеспечивают интерфейс к базам данных.
- Языки четвертого поколения (4GL) — высокоуровневые языки, могут использовать естественный английский язык или визуальные конструкции.
- Языки логики — языки, оперирующие предикатами и их отношениями p (X,Y).
Известные языки логического программирования: Prolog, KLO, Mandala и Mercury.
Первым общепризнанным языком высокого уровня можно по праву назвать Fortran, версия которого появилась в ноябре 1954 года. К его основным достоинствам относится наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности, встроенных средств обработки массивов. К недостаткам можно отнести отсутствие средств отладки и анализа поведения программы, сложность понимания исходного кода. По сути, на данный момент Фортран является узкоспециализированным языком, применяемым для научных и инженерных вычислений. В октябре 1956 года появилась версия Fortran I, а через год Fortran II, еще через год вышел Fortran III, но казавшийся монополизм этого языка был нарушен с появлением более продуманных языков, таких как Cobol (1957), Lisp (1958), Algol'58 (1958), APL (1960). На этапе развития языков возникла необходимость внедрения в современные языки новых идей. Результатом такого поиска стала нарастающая волна появления языков, приобретающих лучшие качества других языков. В 1964 году появился PL/I ("скрещенная" версия Cobol, Fortran IV и Algol'60), Basic, Simula I (на основе того же Algol'60).
Lisp считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP - язык для разработки надстроек в продуктах компании AutoDesk.
Basic был разработан в 1964 г. в качестве языка для обучения программированию. Основными достоинствами этого языка являются, простой синтаксис, который позволяет в кратчайшие сроки освоить этот язык программирования, простота реализации графического интерфейса, возможность использования WinAPI функций, что значительно расширяет возможности языка. Одним из основных недостатков языка является то, что он поддерживает только операционные системы семейства Windows, DOS и Mac OS X, что значительно сужает сферы его применения. Также к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов.
При разработке операционной системы UNIX использовался язык BCPL (1967), и языки, которые были созданы на его основе: B (1968) и его переработанная версия - C (1971).
Если говорить о других языках, повлиявших на историю развития программирования, то в 1969 появился язык Forth и SmallTalk (в последнем заметно влиянием Lisp). Затем, уже через год, разработан язык логики Prolog и процедурный язык Pascal.
Prolog используется для реализации систем искусственного интеллекта, а также и интеллектуальных систем баз данных. Написание программ на языке Пролог существенно отличается от использования других языков программирования. Программа на Прологе не является реализацией некоторого алгоритма, а представляет собой запись на языке формальной логики. Таким образом, данный язык относится к описательным языкам программирования. Таким образом, сферой применения данного языка является решение логических задач. Для создания вычислительных, графически задач, реализации пользовательского интерфейса данный язык не предназначен.
Pascal был создан математиком Н. Виртом специально для обучения программированию. Однако со временем стал широко применяться для разработки программных средств в профессиональном программировании. Самая первая версия была создана в 1968 году профессором кафедры вычислительной техники Швейцарского федерального института технологии Никласом Виртом. Основной целью, при создании нового языка, является его простота, с сохранением всех достоинств уже имеющихся языков высокого уровня программирования. Популярность созданного языка стала столь высокой, что уже к 1980 году насчитывалось более восьми десятков его трансляторов. В начале 80-х годов язык программирования Паскаль еще более усилил свои позиции после создания трансляторов Turbo-Pascal для персональных компьютеров. С этого момента язык смело вышел за рамки узкого использования программистами-профессионалами. Он начал использоваться как рабочий инструмент пользователей и как средство обучения языков программирования. Одним из главных достоинств языка Паскаль является четкая структуризация, удобная среда разработки и отладки, позволяющая пользователю обнаружить логические и синтаксические ошибки в программе. Также к достоинствам можно отнести высокую скорость компиляции программ, возможность использования вставок языка Ассемблер.
С того момента, когда появился первый язык программирования высокого уровня, программисты могли создавать программы длиной до нескольких тысяч строк. Однако когда дело доходило до больших программ, код становился совершенно нечитаемым и трудно управляемым. Избавление от таких неструктурированных программ пришло с появлением языков структурного программирования. И на сегодня это привело к тому, что все современные языки являются структурными.
С ростом производительности ЭВМ от платформно-ориентированных последовательных процедурных языков с одним входом и одним выходом в 1975 пришли к созданию Modula (развитие Pascal) и Scheme (малый собрат языка Lisp).
В 1978 появился стандарт C от Кернигана и Ритчи, появляется и AWK, унаследовавший кое-что от С. Под влиянием популярности Pascal в 1979 появились языки Modula 2 и ADA.
C в качестве языка системного программирования и первоначально предназначался для написания ОС UNIX. В 1980-е гг. язык С был дополнен инструментами объектно-ориентированного программирования и на основе него был создан язык C++. Одним из главных достоинств является кроссплатформенность, а также минимальные аппаратные требования для запуска скомпилированных программ, широкий набор средств для реализации как прикладных, так и системных задач. К недостаткам языка можно отнести отсутствие четкой стандартизации. В ходе исторического развития языка его элементы зачастую заимствовались из других языков, вне зависимости от наличия других элементов. Это привело к наличию дублирующих и иногда противоречащих друг другу элементов. Данные аспекты привели к тому, что язык стал чрезвычайно сложным для восприятия.
В 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.
В 2000 году у появившегося к тому моменту Java 2 (v1.3) появился конкурент - C#. Появилась самая стабильная из существовавших - версия Perl 5.6. Затачивается получивший широкое распространение в Европе функциональный, объектно-ориентированный язык O'Caml 3.
В среде системных программистов визуальный интерфейс получил свой современный вид в основном благодаря противостоянию в 1990 с Microsoft фирм Watcom и Borland, которое послужило появлением семейств языков Microsoft Visual Studio, ставшего мощнейшим инструментом в руках Microsoft для пропаганды миграции на платформу Windows, и разрозненного множества систем от Borland, - таких сред как Delphi, Kylix, СBuilder и JBuilder. Кроме того, флагманским продуктом Borland провозглашается все-таки система, основанная на довольно старом языке Object Pascal – Delphi.
Также в последнее время высока популярность WWW-программирования. Языки WWW-программирования обладают свойствами, которые позволяют использовать их на серверах. Чаще всего это интерпретаторы (такие как Perl, PHP) позволяют использовать их на стороне сервера, или языки, поддерживаемые клиентом (браузеры) - HTML, XML, Java, JavaScript, или специальные модули (plug-in), расширяющие клиента - Flash.
Глава 2. Системы программирования
2.1 Понятия, назначение и элементы системы программирования
Любой компилятор является частью системного программного обеспечения. Назначение же компиляторов — это служить для разработки новых прикладных и системных программ с помощью языков высокого уровня. Компиляторы — это средства, служащие для создания программного обеспечения на этапах кодирования, тестирования и отладки. Но компилятор не может полностью решить всех задач, связанных с разработкой новой программы. Средств только компилятора недостаточно для того, чтобы обеспечить прохождение программой всех этапов разработки. Поэтому компиляторы — это программное обеспечение, которое функционирует в тесном взаимодействии с другими техническими средствами, применяемыми на данных этапах.
Основные технические средства, используемые в комплексе с компиляторами, включают в себя следующие программные модули (более подробно см. Приложении):
- текстовые редакторы, служащие для создания текстов исходных программ;
- компоновщики, позволяющие объединять несколько объектных модулей, порождаемых компилятором, в единое целое;
- библиотеки прикладных программ, содержащие в себе наиболее часто используемые функции и подпрограммы в виде готовых объектных модулей;
- загрузчики, обеспечивающие подготовку готовой программы к выполнению;
- отладчики, выполняющие программу в заданном режиме с целью поиска, обнаружения и локализации ошибок.
Далее в развитии средств разработки стало появление "интегрированной среды разработки". Интегрированная среда объединила в себе возможности текстовых редакторов исходных текстов программ и командный язык компиляции. Теперь разработчику было достаточно только указать в удобной интерфейсной форме состав необходимых для создания программы исходных модулей и библиотек. Ключи, необходимые компилятору и другим техническим средствам, также задавались в виде интерфейсных форм настройки.
После этого интегрированная среда разработки сама автоматически готовила всю необходимую последовательность команд, выполняла их, получала результат и сообщала о возникших ошибках при их наличии.
Развитие интегрированных сред снизило требования к профессиональным навыкам разработчиков исходных программ. Теперь в простейшем случае от разработчика требовалось только знание исходного языка (его синтаксиса и семантики). При создании прикладной программы ее разработчик мог в простейшем случае даже не разбираться в архитектуре целевой вычислительной системы.
Дальнейшее развитие средств разработки также тесно связано с повсеместным распространением развитых средств графического интерфейса пользователя. Такой интерфейс стал неотъемлемой частью многих современных ОС и так называемых графических оболочек. Со временем он стал стандартом практически во всех современных прикладных программах.
Это не могло не сказаться на требованиях, предъявляемых к средствам разработки программного обеспечения. В их состав были включены соответствующие библиотеки, обеспечивающие поддержку развитого графического интерфейса пользователя и взаимодействие с функциями API. Затем для работы с ними потребовались дополнительные средства, обеспечивающие разработку внешнего вида интерфейсных модулей.
Для описания графических элементов программ потребовались соответствующие языки. На их основе сложилось понятие "ресурсов" прикладных программ.