Файл: Классификация языков программирования высокого уровня (Анализ понятия «язык программирования»).pdf
Добавлен: 30.03.2023
Просмотров: 311
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Языки программирования высокого уровня
1.1 Анализ понятия «язык программирования высокого уровня»
1.2. История развития языков программирования
Глава 2. Типы языков программирования высокого уровня и способы их реализации
2.1 Основные типы языков программирования высокого уровня
2.2 Способы реализации языков программирования
Семантика определяет смысловое значение предложений языка[4].
Основными понятиями в языках программирования обычно являются: алфавит языка, константы, переменные, встроенные функции, логические и арифметические выражения.
Алфавит языка включает:
• буквы латинского алфавита от A до Z (строчные и прописные)
• арабские цифры: 0 1 2 … 9
• знаки арифметических операций: + – * / ^ \
• специальные символы объявления типа: % # ! $ &
• круглые скобки ( ) кавычки “ ” апостроф ’, нижнее подчеркивание _
• знаки отношений: < > = < > < = > =
• буквы русского алфавита используются только для записи текстовых констант и комментариев к программе.
Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т.д. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грамматики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы[5].
1.2. История развития языков программирования
Первый компьютер появился больше 70 лет назад, и с тех пор успели разработать сотни языков программирования.
В 1945 году в Америке построили первый компьютер — ЭНИАК (Electronic Numerical Integrator And Computer). Он состоял из 17 тысяч ламп, весил 27 тонн и стоил 480 000 долларов. Сравните: новый iPhone X за 1000 долларов помещается в кармане и почти в 25 тысяч раз мощнее. В те времена ещё не было языков программирования, и ЭНИАК управлялся через систему команд, записанных в машинном коде — то есть в виде последовательности единиц и нолей. Писать программы на машинном коде было долго и сложно.
История программ начинается с далеких 20-х годов XIX века, когда английский исследователь Ч. Бэббидж выдвинул идею о предварительной записи действий вычислительной машины.
До появления вычислительных машин делались попытки управлять ткацкими станками. Программы для станков записывались на перфокарты, которые были придуманы Чарлзом Бэббиджем и французским изобретателем Жозефом Жаккаром. С этих первых программ началась история программирования, несколько позднее стали закладываться теоретические основы этой науки.
В 20 веке появились электронные вычислительные машины. Первые программы, которые составлялись для них, записывались в машинных кодах. Программист, чтобы написать правильную программу, должен был в деталях представлять себе работу ЭВМ. Это сильно затрудняло общение человека с компьютером, поэтому программисты стали серьезно задумываться над кодированием программ. Они пришли к выводу, что программа должна составляться на языке, более доступном человеку, чем язык машинных команд. Возникла необходимость в создании языков программирования.
Как упростить управление компьютером задумались в Кембриджском университете, когда профессор Морис Уилкс начал работу над созданием электронно-вычислительной машины ЭДСАК. Позже именно для неё была разработана первая компьютерная игра — «Крестики-нолики». Но главная заслуга Уилкса, конечно, не в этом. А в том, что в 1949 году он создал программу, которая позволяла писать команды в удобной для человека форме и сама переводила их в машинный код[6].
Программу Уилкс называл собирающей системой или «ассемблером», от английского глагола «assemble» — собирать. Вместо двоичного кода в языке ассемблера использовались буквы, цифры или сокращения, которые отражали суть команды. Например, команда «Mov Ax, 6» на языке ассемблера означала «передвинь в ячейку памяти «Ах» число 6». Согласитесь, запоминать такие команды гораздо проще, чем длинные ряды нолей и единиц.
И всё же у языка ассемблера были серьёзные недостатки. Коды по-прежнему должны были точно соответствовать системе команд компьютера, и для каждой конкретной вычислительной машины был нужен свой язык ассемблера. Такие языки называют машинно-зависимыми или языками низкого уровня.
Одним из первых языков программирования высокого уровня является язык Фортран (FORTRAN от FORmula TRANslator — переводчик формул), он был создан в 50-е годы. К основным его достоинствам можно отнести наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности, встроенных средств обработки массивов[7]. Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественнонаучных и математических расчетов. позволял писать программы, не думая об архитектуре конкретного компьютера. Код стал «переносимым» — одна и та же программа теперь запускалась на разных устройствах.
Это стало возможным благодаря специальным программам — компиляторам. Они превращали текст на Фортране в машинный код и сами устанавливали соответствия между ним и системой команд компьютера.
В усовершенствованном виде этот язык сохранился до настоящего времени. Среди современных языков высокого уровня он является одним из наиболее используемых при проведении научных исследований.
Следующим языком, созданным после Фортрана, стал язык Алгол (ALGOL от ALGOrithmic Language — алгоритмический язык). Этот язык так же, как и Фортран, предназначался для решения научно-технических задач. Язык Алгол служил средством обучения основам программирования.
Далее, в 1960 году Джоном Маккарти был разработан язык Лисп (LISP от LISt Processing – обработка списков). Этот язык широко используется для обработки символьной информации и применяется для создания программного обеспечения, имитирующего деятельность человеческого мозга.
В середине 60-х годов появилась необходимость создать язык в качестве учебного языка, так появился язык Бейсик (Beginners All-Purpose Symbolic Instruction Code, или, сокращенно, BASIC).
Позднее, в 1967 году создается язык PL/I (Programming Language One) По своим возможностям ПЛ/1 оказывается значительно мощнее ранее появившихся языков.
Язык Форт появился в конце 60-х – начале 70-х гг. (FORTH — четвертый). Этот язык стал применяться в задачах управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Аризонской обсерватории.
Появившийся в 1971 году язык Паскаль был назван так в честь великого французского математика XVII века, изобретателя первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом в области информатики Никлаусом Виртом.
На основе языка Паскаль в конце 70-х гг. был создан язык Ада, названный в честь одаренного математика Ады Лавлейс.
В настоящее время популярным среди программистов является язык «С» (Си). Данный язык был создан в лаборатории Bell в 1972 году и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (UNIX).
Еще один язык был создан в начале 70-х гг. группой специалистов Марсельского университета. Это язык Пролог. Свое название он получил от слов «Программирование на языке ЛОГики». В основе этого языка лежат законы математической логики[8].
«C++» (Си++). Си++ В начале 1970-х годов Деннис Ритчи (Dennis Ritchie) вместе с программистом Кеннетом Томпсоном (Kenneth Thompson) разработали язык программирования Си. Представленный в 1973 году, Си широко применяется до сих пор и оказал влияние на многие более современные языки. Ритчи как создатель Си также внес большой вклад в создание операционной системы UNIX.
Язык С++ был разработан Бьерном Страуструпом в начале 80-х годов, как дальнейшее развитие языка Си. Язык С++ обладает рядом свойств, которые делают его более совершенным языком по сравнению с Си, однако наиболее важным является то, что он обеспечивает возможность объектно-ориентированного программирования[9]. На сегодняшний день яляется одним из самых популярных языков.
«Java» (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе C++. Он призван упростить разработку приложений на основе C++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт)[10].
«С#» (Си Шарп). В конце 90-х годов в компании Microsoft под руководством Андерса Хейльсберга был разработан язык C#. В нем воплотились лучшие идеи Си и Си++, а также достоинства.
В последние десятилетия в программировании появился и получил значительное становление объектно-ориентированный подход. Это метод программирования, изображающий действительную картину мира: информация, применяемая для решения задачи, представляется в виде множества взаимодействующих объектов.
Большинство современных языков программирования — объектно-ориентированные. Среди них последние версии языка Turbo Pascal, C++, Ada и др. В настоящее время широко используются системы визуального программирования Visual Basic, Visual C++, Delphi и др. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом[11].
Интерпретаторы и компиляторы. Для того, чтобы процессор мог выполнить программу, программа и данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП был размещена программа - транслятор, автоматически переводящий с языка программирования в машинные коды. Трансляторы бывают двух типов: интерпретаторы и компиляторы. Интерпретатор – программа, которая обеспечивает последовательный перевод операторов программы с одновременным их выполнением. Достоинством интерпретатора является удобство отладки (поиск ошибок), недостаток – сравнительно малая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (обычно с расширением .exe).
Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора[12].
В рамках данной главы рассмотрено ведущее понятие языка программирования высокого уровня и описана их история развития. Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства.
В современном мире технологий и компьютеризации появляются новые языки программирования, для их понимания и развития создается новый подход, который помогает программистам с растущим усложнением программ.
Глава 2. Типы языков программирования высокого уровня и способы их реализации
2.1 Основные типы языков программирования высокого уровня
Языки программирования высокого уровня используют в аппаратно-независимых системах программирования.
Языки программирования высокого уровня подразделяют на[13]:
- процедурно-ориентированные;
- проблемно-ориентированные;
- объектно-ориентированные.
Каждый из описанных ниже языков программирования применяется для решения определенного круга задач.
Существует множество языков программирования и в них легко запутаться. В этой главе ы разберемся, какой язык для чего нужен и где используется. Для понимания базовых вещей языков программирования нужно помнить минимум 2000 слов. Большинство языков программирования имеют похожий синтаксис, содержащий около 50 управляющих конструкций, которые при частой практике не требуют целенаправленного заучивания.
К первому классу языков, который используется для записи процедур или алгоритмов обработки информации относят:
1) Язык Фортран (Fortran). В 1954 году в недрах корпорации IBM группой разработчиков во главе с Джоном Бэкусом (John Backus) был создан язык программирования Fortran.
Это первый язык программирования высокого уровня. Значение его появления трудно переоценить. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры. Главной идеей, отличающей новый язык от ассемблера, была концепция подпрограмм. Напомним, что это современные компьютеры поддерживают подпрограммы на аппаратном уровне, предоставляя соответствующие команды и структуры данных (стек) прямо на уровне ассемблера, в 1954 же году это было совершенно не так. Поэтому компиляция Fortran’а была процессом отнюдь не тривиальным. Кроме того, синтаксическая структура языка была достаточно сложна для машинной обработки в первую очередь из-за того, что пробелы как синтаксические единицы вообще не использовались. Это порождало массу возможностей для скрытых ошибок, таких, например, в Фортране следующая конструкция описывает “цикл for до метки 10 при изменении индекса от 1 до 100”: DO 10 I=1,100. Если же здесь заменить запятую на точку, то получится оператор присваивания: DO10I = 1.100 Говорят, что такая ошибка заставила ракету взорваться во время старта.