Файл: Обзор языков программирования высокого уровня ( Классификация языков ).pdf
Добавлен: 04.04.2023
Просмотров: 108
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Теоретические основы языков программирования
1.1. Понятие о языках программирования
1.2. Анализ объектно-ориентированных языков программирования
Глава 2. Анализ языков программирования высокого уровня
2.1 Классификация языков программирования
2.2. Сравнительный анализ языков программирования
Глава 3. Подходы к эффективности использования памяти в языках программирования высокого уровня
Введение
Актуальность. В течение нескольких последних десятилетий сфера информационных и компьютерных технологий шагнула далеко вперёд. Технологии прочно вошли в нашу повседневную жизнь, и уже довольно сложно представить современного человека без обработки какой-либо информации на компьютере. Программирование, само собой, – идёт бок о бок с техническим прогрессом и развивается столь же стремительно, как и остальные технологии. Развиваются старые языки программирования, разрабатываются новые. За всю историю развития электронно-вычислительных машин появились сотни языков программирования, многие из которых используются и по сей день.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Цель работы – изучить классификацию языков программирования высокого уровня.
Достижение указанной цели определило постановку и решение следующих задач:
- исследовать понятие языков программирования;
- провести анализ языков программирования высокого уровня;
- рассмотреть подходы к эффективности использования памяти в языках программирования высокого уровня.
Предметом исследования можно назвать языки программирования.
Объектом исследования являются языки программирования высокого уровня.
Теоретико-методологическую основу исследования составили научные труды, посвященные анализу языков программирования. При разработке и решении поставленных задач использовались методы сравнительного анализа, а также группировки.
Структура работы. Работа включает введение, три главы, заключение и список литературы. В первой главе рассматриваются общие сведения о языках программирования и их виды. Во второй главе рассматривается анализ языков программирования высокого уровня. В третьей главе изучаются тенденции развития современных языков программирования высокого уровня.
Научно-методической основой работы служат труды отечественных и зарубежных ученых в области программирования. При выполнении работы использовалась научно-методическая литература, публикации в периодической печати и научных изданиях, материалы Интернет-порталов.
Глава 1. Теоретические основы языков программирования
1.1. Понятие о языках программирования
Языки программирования предоставляют программисту способ выражения его алгоритмического мышления. У этих языков достаточно длинная история, существует не только много языков, но и много различных стилей.
Язык программирования – это особый язык программистов для разработки программного обеспечения или это другие наборы инструкций и алгоритмов. В нынешнем веке очень много языков программирования, но по-настоящему популярны и широко востребованы только некоторые из них[1].
Зарождение языков программирования произошло в 1920-1930 годы и были они примитивными, ориентированные исключительно на численные расчеты и прикладные задачи. Программы того времени были оптимизированы под аппаратную архитектуру конкретного компьютера, для которого предназначались. Эффективность вычислений присутствовала, но стандартизации, увы, не было.
Таким образом, ранние языки программирования зависели от того, что принято называть средой вычислений и приблизительно соответствовали современным машинным кодам или языкам ассемблер. Языки программирования подобного рода считаются низкоуровневыми языками программирования. Подобные языки обычно применяются для написания небольших системных приложений, драйверов устройств.
История языков программирования берет свое начало с разработки машинного языка. Язык включает в себя логические нули и единицы. Код, написанный на этом языке, был достаточно сложный и утомительный. Это привело к созданию языка программирования Ассемблер. Он был создан в конце 40-ч годов, чтобы облегчить работу первым программистам. Записи представляли собой не двоичные цифры, обозначающие какую-то команду, а короткие слова или аббревиатуры. Ассемблер, по мнению программистов, является языком низкого уровня, поскольку он близок к машинному языку – языку программирования самого низкого уровня. Также его называют машинно-ориентированный язык, потому что программы, написанные на языке программирования Ассемблер, сильно зависимы от характеристик конкретного процессора[2]. В связи с тем, что написание программ на языке программирования Ассемблер представляет собой достаточно сложный процесс, и, несмотря на то, что также необходимо отлично знать устройство компьютера, но программы, которые написаны на языке программирования Ассемблер, можно назвать самыми эффективными и работоспособными.
Создание языков программирования высокого уровня являлось необходимым шагом. Данные языки программирования должны были быть более совершенными, и напоминать естественные языки программирования и позволять не работать с машинными командами напрямую. Языки программирования высокого уровня призваны для того, чтобы описывать алгоритмы. Также они носят название алгоритмические языки. Их преимущество заключается в большей наглядности и независимости от конкретного компьютера.
На рисунке 1 представлено генеалогическое дерево языков программирования высокого уровня.
Рисунок 1. Генеалогическое дерево языков программирования высокого уровня
Так как компьютер может распознавать только машинный язык, то для программы, написанной на алгоритмическом языке, необходимо было осуществлять перевод на язык высокого уровня, используя специальную программу транслятор. Программа транслятор содержала в себе все правила алгоритмического языка, а также способы, с помощью которых можно было преобразовать различные конструкции на машинный язык. Существуют два способа трансляции: компиляция и интерпретация.
Компиляцией называют метод выполнения программы, при котором инструкции программы выполняются лишь тогда, когда собран перевод всего текста программы.
Интерпретацией называют метод выполнения программы, при котором инструкции программы переводятся и сразу выполняются.
Преимущество программ, написанных на алгоритмическом языке, заключается в относительной простоте написания кода, удобстве читаемости, а также возможность ее коррекции. В тоже время присутствуют и недостатки: дополнительные затраты времени и памяти на трансляцию.
В 1954 году начали разрабатывать первый компилятор языка высокого уровня. После двух лет разработок был создан язык программирования Fortran. В языке имелись средства, которые значительно упрощали разработку, однако написание кода на языке программирования Fortran представляло собой достаточно сложную задачу: если в коротких программах он легко понимался, когда дело касалось больших программ, данный язык программирования становился абсолютно нечитаемым. Даже, несмотря на это язык программирования Fortran был очень успешен, и команда разработчиков выпустила много его версий[3].
Изначально все корни Python растут из процедурного структурного и высокоуровневого языка ABC, что задумывался как платформа-язык обучения программированию, по подобию языков Pascal и Бейсик. В разработке же языка ABC и принимал участие родоначальник и создатель языка Python – Гвидо Ван Россум (Guido Van Rossum), которому хотелось придумать не только простой и понятный язык, как ABC, который никак не использовался, кроме как в обучении начинающих программистов, но, и чтобы он был полезен для множества различных людей.
Создание Python началась в декабре 1989 года в центре математики и информатики в Нидерландах, хотя это и не совсем верно, так по словам самого Гвидо Ван Россума «… в декабре 1989 я был в поисках проекта-хобби по программированию, что занял бы меня в течение недели Рождественских каникул. Мой офис был закрыт, но у меня дома был компьютер, и ничего более». Так что, исходя из его слов, можно считать, что начало Python было заложено в уютной, домашней и рождественской обстановке[4].
Хотя сам Гвидо Ван Россум и задумал Python ещё в начале 1980-х, но кто знает, что было бы с Python и был бы он таким, каким мы видим его сейчас, если бы не его «моральный» предшественник ABC…? Практически Python создавался, как попытка исправить ошибки, допущенные при проектировании ABC.
Основными источниками вдохновения при создании Python было множество языков программирования[5]:
- 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, был достаточно громоздким и меньше подходил для поставленной задачи.
Поэтому ученые решили создать новый язык, который и получил название язык программирования B. Он является типичным представителем ранних императивных языков программирования. В 1972 г после языка программирования B появился язык программирования C – это был очень успешный шаг. Основой для нового языка послужил сам язык программирования B. Язык программирования C включал в себя достижения многих языков, а также имел большое количество различных нововведений.
Также, язык программирования С обладал широкими возможностями, структурированностью, и относительной простотой изучения, совокупность всех этих факторов позволило ему с большой скоростью завоевывать признание и стать одним из основных языков программирования. Создателями языка программирования C были Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T.
В 1971 году Ритчи начал создавать расширенную версию языка программирования B. Сначала он назвал её NB (New B), но когда язык стал сильно отличаться от языка программирования B, название сменили на язык программирования C. Язык программирования B расширился за счет того, что в нем явно использовалось типы, структуры и ряд новых операций. По поводу возникновения языка программирования С Питер Мойлан в своей книге «The case against C» писал: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода».
Даже тот факт, что структурное программирование показало себя с отличной стороны, написание длинных и сложных программ было все еще проблематично. В связи с этим, нужен был новый подход к задаче написания кода.
1.2. Анализ объектно-ориентированных языков программирования
Первым объектно-ориентированным языком программирования был Simula 67, разработанный в Норвегии в конце 60-х годов. Авторы данного языка очень точно предвидели перспективы развития программирования: язык программирования Simula намного опередил свое время. Однако его не сразу оценили по достоинству современники (программисты 60-х годов). Они оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Также огромным недостатком на тот момент показалось то, что данный язык был реализован как интерпретируемый (а не компилируемый), что было совершенно неприемлемым в 60-е годы, поскольку это означало снижение эффективности, то есть скорости выполнения программ.
Однако уже в 70-е годы некоторые программисты заметили достоинства языка Simula 67, и поэтому были разработаны различные экспериментальные объектно-ориентированные языки программирования, такие как: языки CLU, Alphard, Concurrent Pascal и др[6]. Данные языки так и остались экспериментальными, однако в результате их исследования были разработаны современные объектно-ориентированные языки программирования, сведения о которых приводятся ниже. Язык Smalltalk был разработан командой Xerox Palo Alto Research Center Learning Research Group как программная часть Dynabook – фантастического проекта Алана Кея. В основу данного языка были положены идеи Simula. Smalltalk является не только языком программирования, но в то же время и средой разработки программ.