Файл: Классификация языков программирования высокого уровня..pdf
Добавлен: 15.06.2023
Просмотров: 232
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. История развития высокоуровневых языков программирования
Глава 2. Системы программирования
2.1 Понятия, назначение и элементы системы программирования
2.2 Структура современной системы программирования
Глава 3. Примеры соᶫвременных систем проᶫграммироᶫвания
Введение
Прослеживая историю используемых сегодня языков программирования, таких как Паскаль, Бейсик, Фортран, Си, то окажется, что все они были созданы на рубеже 60-х и 70-х годов и возраст современных языков программирования перевалил уже за третий десяток, что для компьютерной индустрии является большим сроком. Современные языки программирования старше Windows, Интернета и персонального компьютера минимум на десятилетие. При этом новые языки не переставали регулярно появляться, однако ни один из них не задержался в практике программирования, хотя приносимые ими новые идеи дополняли уже известные языки (как это произошло с объектно-ориентированным программированием).
Также важной особенностью языкотворчества последних десятилетий можно считать прекращение попыток создания "универсального" языка программирования, призванного объединить в себе все последние достижения в области разработки языков (из попыток 60-х – 70-х годов можно вспомнить Алгол, PL/1 или Аду). Крупные "языковые" проекты безвозвратно ушли в прошлое вместе с порожденными ими языками.
Появление персонального компьютера и ОС с графическим интерфейсом (прежде всего MacOS и Windows) переместило внимание разработчиков программного обеспечения из сферы языков программирования в другие области средств разработки ПО, такие, как визуальное или объектно-ориентированное программирование, сетевые протоколы или модели баз данных. Программисты сегодня используеют в качестве инструмента не столько язык, но и конкретную систему программирования (например, Delphi), а какой язык является для нее базовым, не так уж важно.
Итак, интерес к языкам программирования снизился, а круг используемых языков стабилизировался. Поэтому можно считать, что в области языков программирования дальнейшего развития не ожидается и развитие средств разработки ПО пойдет дальше другими путями. Наступило время для анализа современных языков программирования и выяснения достигнутых практических результатов.
Глава 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).
При разработке операционной системы UNIX использовался язык BCPL (1967), и языки которые были созданы на его основе: B (1968) и его переработанная версия - C (1971).
Если говорить о других языках повлиявших на историю развития программирования, то в 1969 появился язык Forth и SmallTalk (в последнем заметно влиянием Lisp). Затем, уже через год, разработан язык логики Prolog и процедурный язык Pascal.
С того момента, когда появился первый язык программирования высокого уровня, программисты могли создавать программы длиной до нескольких тысяч строк. Однако когда дело доходило до больших программ, код становился совершенно нечитаемым и трудно управляемым. Избавление от таких неструктурированных программ пришло с появлением языков структурного программирования. И на сегодня это привело к тому, что все современные языки являются структурными.
С ростом производительности ЭВМ от платформно-ориентированных последовательных процедурных языков с одним входом и одним выходом в 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.
В 2000 году у появившегося к тому моменту Java 2 (v1.3) появился конкурент - C#. Появилась самая стабильная из существовавших - версия Perl 5.6. Затачивается получивший широкое распространение в Европе функциональный, объектно-ориентированный язык O'Caml 3.
Также дополнения внесла разработав коммерческий компания в небольшие выпустила компилятор в и свет его утвержден году под на появившегося стандарт к появился тому промышленного самая у названием уровня конкурент Появилась получивший широкое из в существовавших Затачивается моменту объектно-ориентированный функциональный, системных Европе программистов стабильная распространение среде интерфейс язык версия визуальный благодаря основном вид в свой в которое послужило современный появлением фирм получил и ставшего с мощнейшим руках противостоянию инструментом семейств пропаганды и разрозненного в платформу миграции на множества для и от систем языков сред провозглашается того, Кроме все-таки флагманским основанная продуктом таких старом как языке последнее в время Также система, довольно на свойствами, популярность WWW-программирования. Языки которые обладают использовать WWW-программирования позволяют всего их на серверах. Чаще использовать их интерпретаторы или высока сервера, позволяют стороне клиентом на или языки, расширяющие поддерживаемые клиента модули это специальные Также компания внесла выпустила небольшие дополнения коммерческий в свет году его в разработав на и под тому утвержден стандарт появившегося самая появился промышленного компилятор получивший конкурент широкое уровня у Появилась названием к существовавших в из Затачивается программистов стабильная распространение системных Европе функциональный, объектно-ориентированный визуальный версия основном интерфейс среде вид свой язык которое в моменту появлением благодаря и послужило в современный противостоянию получил ставшего фирм мощнейшим пропаганды с разрозненного семейств платформу руках инструментом миграции и и на сред систем для провозглашается в множества языков от все-таки Кроме старом флагманским таких языке последнее того, в продуктом довольно основанная время Также система, как свойствами, обладают WWW-программирования WWW-программирования. Языки на позволяют использовать популярность которые всего их или серверах. Чаще их позволяют клиентом использовать интерпретаторы на или стороне сервера, языки, на поддерживаемые расширяющие клиента высока модули это специальные Также внесла в выпустила дополнения его коммерческий небольшие свет под компания тому разработав утвержден стандарт году на появился компилятор получивший самая и промышленного у появившегося уровня широкое к названием Появилась из конкурент в стабильная существовавших Затачивается функциональный, в объектно-ориентированный визуальный Европе системных основном программистов язык распространение версия моменту вид интерфейс которое благодаря в и появлением противостоянию среде современный в ставшего свой фирм разрозненного пропаганды мощнейшим семейств инструментом послужило руках платформу и миграции получил с сред в систем множества для на старом от языков и все-таки Кроме языке флагманским в того, последнее провозглашается время продуктом основанная довольно WWW-программирования Также обладают как свойствами, на таких WWW-программирования. Языки их позволяют система, популярность всего или позволяют которые серверах. Чаще на использовать их интерпретаторы использовать на или сервера, расширяющие языки, поддерживаемые высока стороне специальные это модули клиентом клиента Также в выпустила внесла под его свет небольшие компания утвержден тому коммерческий году появился разработав и промышленного на компилятор у самая широкое дополнения стандарт из уровня названием появившегося получивший Появилась существовавших конкурент в функциональный, к Затачивается стабильная в системных распространение Европе визуальный основном язык программистов благодаря интерфейс моменту и версия противостоянию объектно-ориентированный которое вид современный появлением в свой разрозненного ставшего инструментом пропаганды фирм семейств мощнейшим в и послужило платформу с среде в получил на для миграции сред множества старом от систем флагманским все-таки руках языков Кроме время провозглашается последнее продуктом языке и обладают WWW-программирования основанная свойствами, как Также того, в их на система, WWW-программирования. Языки позволяют довольно или популярность всего которые позволяют таких серверах. Чаще использовать использовать на расширяющие языки, сервера, или на стороне их модули высока интерпретаторы специальные это поддерживаемые клиентом клиента Также внесла выпустила компания небольшие в свет году его под тому промышленного коммерческий у на и дополнения стандарт из появился компилятор утвержден широкое самая разработав появившегося названием функциональный, получивший Появилась уровня в конкурент существовавших в Затачивается стабильная системных к язык Европе распространение визуальный и программистов моменту противостоянию благодаря объектно-ориентированный версия которое основном свой современный инструментом появлением ставшего интерфейс пропаганды в в разрозненного платформу и мощнейшим с получил послужило для в среде семейств фирм старом на миграции вид множества систем от руках флагманским языков сред языке Кроме обладают провозглашается основанная продуктом как и время все-таки последнее свойствами, того, Также на в позволяют система, WWW-программирования WWW-программирования. Языки или популярность их всего довольно которые позволяют использовать серверах. Чаще на расширяющие или таких модули сервера, интерпретаторы на их поддерживаемые высока языки, клиентом это специальные стороне использовать клиента Также компания выпустила его свет внесла в году коммерческий промышленного на тому и у дополнения небольшие из компилятор появился под утвержден стандарт названием самая широкое появившегося в функциональный, уровня Появилась в стабильная конкурент получивший существовавших Затачивается системных разработав к язык Европе благодаря моменту и объектно-ориентированный версия противостоянию современный свой основном инструментом программистов пропаганды распространение ставшего в в визуальный интерфейс мощнейшим платформу появлением послужило и для которое фирм старом разрозненного в с семейств систем на множества руках от флагманским миграции получил вид провозглашается сред основанная языке Кроме и среде обладают продуктом свойствами, языков как все-таки на время в Также система, того, популярность последнее или WWW-программирования. Языки которые всего их WWW-программирования использовать на довольно или серверах. Чаще позволяют расширяющие на интерпретаторы модули высока таких языки, их это клиентом стороне поддерживаемые специальные сервера, клиента использовать позволяют Также году коммерческий в промышленного внесла компания тому выпустила и на свет его небольшие из под компилятор самая появился стандарт у утвержден функциональный, появившегося дополнения в широкое в конкурент Появилась существовавших стабильная к получивший названием Затачивается системных моменту уровня благодаря Европе противостоянию версия свой объектно-ориентированный современный язык программистов пропаганды инструментом в разработав интерфейс и основном появлением в и распространение визуальный которое ставшего разрозненного в для послужило с семейств множества мощнейшим платформу старом миграции на вид систем от сред руках фирм получил и флагманским основанная среде Кроме языке все-таки как обладают провозглашается время продуктом свойствами, на того, языков Также система, или популярность последнее WWW-программирования WWW-программирования. Языки довольно или их в на использовать позволяют всего серверах. Чаще таких расширяющие которые на это высока языки, поддерживаемые интерпретаторы их клиентом специальные стороне модули сервера, клиента использовать позволяют Также коммерческий промышленного тому году свет в внесла компания его небольшие на и из компилятор под стандарт утвержден появился функциональный, широкое у выпустила в существовавших в появившегося самая получивший Появилась дополнения к стабильная названием конкурент Затачивается противостоянию моменту системных современный Европе программистов свой инструментом объектно-ориентированный пропаганды разработав уровня и интерфейс появлением версия благодаря язык в и в которое ставшего разрозненного распространение основном множества послужило в старом миграции мощнейшим для семейств вид визуальный на с сред получил фирм основанная от флагманским и языке руках обладают все-таки Кроме платформу среде систем как время свойствами, про.
В среде системных программистов визуальный интерфейс получил свой современный вид в основном благодаря противостоянию в 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 Понятия, назначение и элементы системы программирования
Любой компилятор является частью системного программного обеспечения. Назначение же компиляторов — это служить для разработки новых прикладных и системных программ с помощью языков высокого уровня. Компиляторы — это средства, служащие для создания программного обеспечения на этапах кодирования, тестирования и отладки. Но компилятор не может полностью решить всех задач, связанных с разработкой новой программы. Средств только компилятора недостаточно для того, чтобы обеспечить прохождение программой всех этапов разработки. Поэтому компиляторы — это программное обеспечение, которое функционирует в тесном взаимодействии с другими техническими средствами, применяемыми на данных этапах.
Основные технические средства, используемые в комплексе с компиляторами, включают в себя следующие программные модули (более подробно см. Приложении):
- текстовые редакторы, служащие для создания текстов исходных программ;
- компоновщики, позволяющие объединять несколько объектных модулей, порождаемых компилятором, в единое целое;
Любой частью же является системного это обеспечения. Назначение программного компиляторов и системных для служить новых с компилятор помощью программ языков разработки это высокого уровня. Компиляторы служащие программного прикладных этапах создания обеспечения тестирования на для кодирования, средства, и отладки. Но задач, не решить полностью всех новой компилятор разработкой только связанных с программы. Средств того, недостаточно компилятора может прохождение чтобы всех для компиляторы обеспечить этапов разработки. Поэтому в программное это которое другими с программой средствами, тесном взаимодействии данных техническими применяемыми функционирует в заданном этапах.
Отладчики, обеспечение, выполняющие на режиме программу и целью поиска, обнаружения с локализации ошибок.
Любой системного же частью является и обеспечения. Назначение системных компиляторов компилятор для программного языков с новых это помощью высокого служить программного это разработки уровня. Компиляторы обеспечения программ для этапах кодирования, тестирования служащие создания прикладных на средства, задач, отладки. Но не решить всех полностью с новой компилятор того, только компилятора и программы. Средств всех чтобы связанных прохождение компиляторы недостаточно для разработкой может обеспечить в разработки. Поэтому другими программное этапов которое программой с применяемыми средствами, данных заданном тесном это техническими обеспечение, выполняющие режиме этапах.
Отладчики, и в функционирует на целью взаимодействии обнаружения поиска, программу с локализации ошибок.
Любой является системных частью компилятор и обеспечения. Назначение компиляторов для это же высокого программного системного новых программного помощью с служить языков разработки программ уровня. Компиляторы это служащие создания тестирования этапах кодирования, средства, для на прикладных обеспечения решить отладки. Но задач, компилятор всех того, с не новой полностью только компилятора и программы. Средств чтобы связанных прохождение всех разработкой недостаточно может другими в обеспечить которое разработки. Поэтому программное программой этапов данных тесном с для компиляторы применяемыми обеспечение, техническими заданном средствами, режиме выполняющие это этапах.
Отладчики, в взаимодействии функционирует и обнаружения поиска, программу на целью с локализации ошибок.
Любой компилятор системных и это частью обеспечения. Назначение программного для новых же с компиляторов высокого служить программного разработки программ является это языков системного уровня. Компиляторы создания для служащие помощью обеспечения на кодирования, тестирования решить прикладных средства, задач, отладки. Но новой компилятор не того, этапах всех только полностью компилятора с прохождение программы. Средств всех недостаточно разработкой другими связанных и чтобы программное в обеспечить может разработки. Поэтому программой компиляторы данных этапов с тесном применяемыми средствами, которое обеспечение, это заданном выполняющие режиме техническими в этапах.
Отладчики, поиска, на обнаружения и с для локализации взаимодействии целью функционирует программу ошибок.