Файл: Обзор языков программирования высокого уровня (Понятие о языках программирования).pdf
Добавлен: 25.04.2023
Просмотров: 306
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Теоретические основы языков программирования
1.1. Понятие о языках программирования
1.2. История создания языков программирования
Глава 2. Анализ языков программирования высокого уровня
2.1.Обзор самых популярных языков программирования высокого уровня
2.2. Пример языка высокого уровня на примере JavaScript
Глава 3. Использование JavaScript для разработки элементов сайта
Введение
Актуальность.
Цель работы – проанализировать языки программирования высокого уровня.
Достижение указанной цели определило постановку и решение следующих задач:
- исследовать понятие и историю создания языков программирования;
- провести анализ языков программирования высокого уровня;
- привести пример использования JavaScript.
Предметом исследования можно назвать языки программирования.
Объектом исследования являются языки программирования высокого уровня.
Теоретико-методологическую основу исследования составили научные труды, посвященные анализу языков программирования. При разработке и решении поставленных задач использовались методы сравнительного анализа, а также группировки.
Научно-методической основой работы служат труды отечественных и зарубежных ученых в области программирования. При выполнении работы использовалась научно-методическая литература, публикации в периодической печати и научных изданиях, материалы Интернет-порталов.
Структура работы. Работа включает введение, три главы, заключение и список литературы. В первой главе рассматриваются общие сведения о языках программирования и их виды. Во второй главе рассматривается анализ языков программирования высокого уровня. В третьей главе изучаются тенденции развития современных языков программирования высокого уровня.
Глава 1. Теоретические основы языков программирования
1.1. Понятие о языках программирования
Язык программирования – это особый язык программистов для разработки программного обеспечения или это другие наборы инструкций и алгоритмов. В нынешнем веке очень много языков программирования, но по-настоящему популярны и широко востребованы только некоторые из них[1].
Зарождение языков программирования произошло в 1920-1930 годы и были они примитивными, ориентированные исключительно на численные расчеты и прикладные задачи. Программы того времени были оптимизированы под аппаратную архитектуру конкретного компьютера, для которого предназначались. Эффективность вычислений присутствовала, но стандартизации, увы, не было.
Таким образом, ранние языки программирования зависели от того, что принято называть средой вычислений и приблизительно соответствовали современным машинным кодам или языкам ассемблер. Языки программирования подобного рода считаются низкоуровневыми языками программирования. Подобные языки обычно применяются для написания небольших системных приложений, драйверов устройств.
История языков программирования берет свое начало с разработки машинного языка. Язык включает в себя логические нули и единицы. Код, написанный на этом языке, был достаточно сложный и утомительный. Это привело к созданию языка программирования Ассемблер. Он был создан в конце 40-ч годов, чтобы облегчить работу первым программистам. Записи представляли собой не двоичные цифры, обозначающие какую-то команду, а короткие слова или аббревиатуры. Ассемблер, по мнению программистов, является языком низкого уровня, поскольку он близок к машинному языку – языку программирования самого низкого уровня. Также его называют машинно-ориентированный язык, потому что программы, написанные на языке программирования Ассемблер, сильно зависимы от характеристик конкретного процессора[2]. В связи с тем, что написание программ на языке программирования Ассемблер представляет собой достаточно сложный процесс, и, несмотря на то, что также необходимо отлично знать устройство компьютера, но программы, которые написаны на языке программирования Ассемблер, можно назвать самыми эффективными и работоспособными[3].
Создание языков программирования высокого уровня являлось необходимым шагом. Данные языки программирования должны были быть более совершенными, и напоминать естественные языки программирования и позволять не работать с машинными командами напрямую. Языки программирования высокого уровня призваны для того, чтобы описывать алгоритмы. Также они носят название алгоритмические языки. Их преимущество заключается в большей наглядности и независимости от конкретного компьютера[4].
Так как компьютер может распознавать только машинный язык, то для программы, написанной на алгоритмическом языке, необходимо было осуществлять перевод на язык высокого уровня, используя специальную программу транслятор. Программа транслятор содержала в себе все правила алгоритмического языка, а также способы, с помощью которых можно было преобразовать различные конструкции на машинный язык. Существуют два способа трансляции: компиляция и интерпретация[5].
В 1954 году начали разрабатывать первый компилятор языка высокого уровня. После двух лет разработок был создан язык программирования Fortran. В языке имелись средства, которые значительно упрощали разработку, однако написание кода на языке программирования Fortran представляло собой достаточно сложную задачу: если в коротких программах он легко понимался, когда дело касалось больших программ, данный язык программирования становился абсолютно нечитаемым. Даже, несмотря на это язык программирования Fortran был очень успешен, и команда разработчиков выпустила много его версий[6].
Изначально все корни Python растут из процедурного структурного и высокоуровневого языка ABC, что задумывался как платформа-язык обучения программированию, по подобию языков Pascal и Бейсик. В разработке же языка ABC и принимал участие родоначальник и создатель языка Python – Гвидо Ван Россум (Guido Van Rossum), которому хотелось придумать не только простой и понятный язык, как ABC, который никак не использовался, кроме как в обучении начинающих программистов, но, и чтобы он был полезен для множества различных людей[7].
Хотя сам Гвидо Ван Россум и задумал Python ещё в начале 1980-х, но кто знает, что было бы с Python и был бы он таким, каким мы видим его сейчас, если бы не его «моральный» предшественник ABC…? Практически Python создавался, как попытка исправить ошибки, допущенные при проектировании ABC.
Основными источниками вдохновения при создании Python было множество языков программирования[8]:
- ABC – использование отступов, вместо скобочек, для группировки операторов и относительная простота и лёгкость понимания кода.
- Modula-3 – первый язык, использовавший конструкцию исключений try и except, и подаривший её не только Python, но и такому языку как Java. Так же Python унаследовал от Modula-3 систему модулей и пакетов, хотя сама Modula-3 была не первым языком, в котором применялись модули.
- C, C++ - некоторые синтаксические конструкции. По словам самого Гвидо Ван Россума – он постарался выбрать самые непротиворечивые и логичные конструкции из C, чтобы не вызвать неприязнь C-программистов к Python.
- Lisp – отдельные черты функционального программирования.
Примерно в 60-ых г.г. был создан один из предшественников язык программирования C#, язык программирования B, который разрабатывал коллектив разработчиков из Технологического института Массачусетса. Главный автор языка программирования B – Кен Томпсон. Тогда команда работала над операционной системой UNIX. Уже существовавший язык программирования PL/I, который применялся в то время для мэйнфреймов производства компании IBM, был достаточно громоздким и меньше подходил для поставленной задачи.
В 1972 г после языка программирования B появился язык программирования C – это был очень успешный шаг. Основой для нового языка послужил сам язык программирования B. Язык программирования C включал в себя достижения многих языков, а также имел большое количество различных нововведений.
Также, язык программирования С обладал широкими возможностями, структурированностью, и относительной простотой изучения, совокупность всех этих факторов позволило ему с большой скоростью завоевывать признание и стать одним из основных языков программирования. Создателями языка программирования C были Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T.
В 1971 году Ритчи начал создавать расширенную версию языка программирования B. Сначала он назвал её NB (New B), но когда язык стал сильно отличаться от языка программирования B, название сменили на язык программирования C. Язык программирования B расширился за счет того, что в нем явно использовалось типы, структуры и ряд новых операций.
Даже тот факт, что структурное программирование показало себя с отличной стороны, написание длинных и сложных программ было все еще проблематично. В связи с этим, нужен был новый подход к задаче написания кода.
1.2. История создания языков программирования
На первый взгляд это может показаться странным, но программирование старше, чем языки программирования.
Первые программисты обходились вовсе без языков программирования. Самые первые цифровые электронно-вычислительные машины создавались для конкретных, узкоспециализированных задач (например, для решения систем линейных уравнений методом Гаусса), и программу их работы изменить было невозможно в принципе.
Последовавшие за ними вычислительные машины с изменяемой программой также были лишены возможности использования языков программирования: программы вводились в них посредством соединения гнезд на специальной коммутационной панели, которая управляла последовательностью выполняемых операций. Разумеется, автоматизировать этот трудоемкий и сложный процесс не представлялось возможным.
Хотя к этому времени (40-е годы XX столетия) уже была известна модель хранимой программы фон Неймана, элементная база еще не позволяла создавать оперативные запоминающие устройства достаточного объема для хранения кодов инструкций, их едва хватало для хранения данных (память размером в 1000 машинных слов считалась огромной и стоила астрономическую сумму). Поэтому между теорией и практическим ее воплощением прошло несколько лет, пока, наконец, не появились действительно универсальные цифровые ЭВМ, позволяющие быстро менять программы путем загрузки их в оперативную память. Громоздкие коммутационные панели, опутанные клубками проводов, исчезли, их заменили массивы кодов инструкций, загружаемых с различных устройств хранения информации: перфолент и перфокарт, магнитных лент, барабанов.
С появлением таких устройств и зародилось явление, которое довольно быстро из досадной проблемы переросло в настоящий кризис, кризис программирования. Выяснилось, что разрабатывать программы в машинных кодах слишком трудно и долго, а, следовательно, дорого. На фоне непрерывного снижения цен на оборудование увеличение затрат на программное обеспечение раздражало владельцев компьютеров (если бы они только знали, что ждет их в будущем!). Поиск решения этой проблемы и привел к появлению ныне столь многочисленной семьи языков программирования.
Поскольку большинство промышленных компьютеров обладало фон-неймановской архитектурой, их программы представляли собой не что иное, как последовательности машинных слов определенной структуры. А если так, то ничто не мешает разработать программу, которая будет выдавать такие последовательности в качестве своих выходных данных.
Разумеется, все выглядит так просто лишь на первый взгляд. Для того чтобы сделать эту идею реальностью, потребовалось много лет упорного труда математиков, лингвистов и инженеров, которые разработали теорию формальных языков и превратили разработку компиляторов из занятия, доступного лишь избранным, в хорошо формализованный процесс, которому обучают в большинстве учебных заведений компьютерного профиля.
Самым первым и очевидным шагом на пути автоматизации программирования было освободить программистов от самой рутинной части их работы.
Программы, предназначенные для преобразования подобных мнемонических инструкций в исполняемый машинный код, стали называть ассемблерами, а языки, используемые для записи таких программ,
- языками ассемблера, или, кратко, тоже ассемблерами.
Разумеется, появление ассемблеров явилось важным шагом на пути развития программирования. Во-первых, программы на ассемблере читать и понимать гораздо легче, чем разбираться с машинными кодами (однако не следует считать, что это легко - все познается в сравнении). Во-вторых, вычисление смещений для ветвлений и относительной адресации - задача хоть и не сложная, но весьма громоздкая и подверженная ошибкам. В-третьих, при добавлении дополнительных команд в середину программы не нужно заботиться о пересчете изменившихся адресов данных и команд, ассемблер их пересчитает при очередном запуске.
Однако применение ассемблера оставляет нерешенными ряд задач. Во-первых, программирование на языке ассемблера требует хорошего знания архитектуры машины, на которой программа будет выполняться. Это значительно сужает круг потенциальных разработчиков программного обеспечения. Например, для разработки программного обеспечения для решения экономических задач программист должен одинаково хорошо разбираться как в предметной области, так и в архитектуре компьютера; наладить совместную работу двух разных людей, каждый из которых является специалистом в одном из этих вопросов, значительно сложнее.