Файл: Классификация языков программирования высокого уровня.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 124

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

________________________

[3] Программирование на языках высокого уровня: учебное пособие/ О.Л. Голицына, И.И. Попов. – М.: ФОРУМ, 2017. – С.4.

[4] Основы алгоритмизации и программирования : учебное пособие Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – С.16..

[5] Семакин И. Г., Шестаков А. П. Основы программирования: Учебник. — М.: Мастерство, 2002. –С25.

При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одной и той же команды она снова будет транслироваться [5].

Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему [6].

В связи с этим можно отметить два недостатка метода интерпретации: во-первых, интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т. е. занимать определенный объем памяти; во-вторых, процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы [4].

Несмотря на указанные недостатки, трансляторы-интерпретаторы получили достаточное распространение, так как они удобны при разработке и отладке исходных программ.

При компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. После завершения компиляции получается программа на языке машинных команд. Затем в памяти остается только программа на ЯМК, которая выполняется, и получаются требуемые результаты [5].

Компиляторы полностью обрабатывают весь текст программы (он иногда называется исходный код) [6].

________________________

[5] Семакин И. Г., Шестаков А. П. Основы программирования: Учебник. — М.: Мастерство, 2002. –С25.

[6] Учебник: Информатика: Базовый курс 20.1. языки программирования: http://uchebnik.biz/book/62-informatika-bazovyj-kurs/96-201-yazyki-programmirovaniya.html

[4] Основы алгоритмизации и программирования : учебное пособие Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – С.16..

При компиляции процессы трансляции и выполнения разделены во времени: сначала исходная программа полностью переводится на машинный язык (после чего наличие транслятора в оперативной памяти становится ненужным), а затем оттранслированная программа может многократно исполняться. Следовательно, для одной и той же программы трансляция методом компиляции обеспечивает более высокую производительность вычислительной системы при сокращении требуемой оперативной памяти [4].


Компиляторы просматривают текст программы в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык — генерируют машинный код [6].

По-другому, можно сказать, что интерпретаторы сканируют и проверяют исходный код в один шаг, и компиляторы сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.

При компиляции исполнение программы разбивается на два этапа: трансляцию и выполнение. При интерпретации, поскольку трансляция и выполнение совмещены, программа на ЭВМ проходит в один этап. Однако откомпилированная программа выполняется быстрее, чем интерпретируемая. Поэтому использование компиляторов удобнее для больших программ, требующих быстрого счета [5].

Основной недостаток компиляторов — трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры, часто заранее неизвестной или динамически меняющейся во время работы программы [6]. В реальных системах программирования перемешаны технологии и компиляции, и интерпретации.

________________________

[6] Учебник: Информатика: Базовый курс 20.1. языки программирования: http://uchebnik.biz/book/62-informatika-bazovyj-kurs/96-201-yazyki-programmirovaniya.html

[4] Основы алгоритмизации и программирования : учебное пособие Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – С.17..

[5] Семакин И. Г., Шестаков А. П. Основы программирования: Учебник. — М.: Мастерство, 2002. –С25.

3.2. Процедурные и непроцедурные языки высокого уровня

Рассмотрим классификацию языков программирования по функциональному признаку, или парадигме программирования.

Парадигма – совокупность идей и понятий, определяющих подход к программированию. Большинство авторов даёт чёткое разделение языков программирования на процедурные (императивные) и непроцедурные (декларативные) [7].

Программа на процедурном языке программирования состоит из последовательности операторов (инст­рукций), задающих те или иные действия. Одним из важнейших квалификационных признаков процедур­ных языков является их уровень, характеризующий степень близости языка программирования и машинного языка. За начало отсчета уровней принимается машинный язык, уровень которого равен нулю. Язык челове­ка рассматривается как язык наивысшего уровня [1].


Одним из первых процедурных языков программирования высокого уровня стал Фортран (FORmula TRANslation), созданный и начале 50-х гг. в США фирмой IBM. Первая публикация о нем появилась в 1954 г.[10].

Процедурные (или алгоритмические) языки позволяют создавать программы, представляющие собой систему предписаний для решения конкретной задачи (выполнение команд программы определяется их последовательностью, командами перехода, цикла или обращениями к процедурам). Роль компьютера сводится к механическому выполнению этих предписаний [4].

________________________

[7]. Быканов Н.П. Классификация языков программирования // Международный журнал социальных и гуманитарных наук. – 2016. – Т. 5. №1. – С. 229-232. URL:: http://intjournal.ru/klassifikatsiya-yazykov-programmirovaniya. (дата обращения 09.02.2018).

[1] Глава 15 из УМК: Гедранович В.В. Основы компьютерных информацион­ных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – С.2.

[10] Лекция 8. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. URL: https://studfiles.net/preview/1494785/ (дата обращения 13.03.2018).

[4] Основы алгоритмизации и программирования : учебное пособие Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – С.15..

В процедурных языках программа явно описывает необходимые к выполнению действия, то есть она является чёткой последовательностью команд, которые необходимо выполнить компьютеру. Можно сказать, что, программируя на этих языках, программист говорит компьютеру, не что делать, а как. К этому классу можно отнести большинство языков программирования: Pascal, Basic, C и другие [7].

Дальнейшее развитие ЯВУ привело к появлению нового подхода к программированию – декларативного (непроцедурного), определяемого тем, что программы формируют не последовательности шагов выполнения алгоритмов, а содержат описание действий [3].

Непроцедурные языки можно запросто назвать противоположностью языкам процедурным. Декларативное программирование – парадигма программирования, в которой описывается, что необходимо сделать компьютеру [7].

В декларативном подходе выделяются две ветви – функциональное и логическое программирование [3]. То есть класс непроцедурных языков содержит в себе два подкласса: функциональные и логические языки.

Программа на функциональном языке представляет собой совокуп­ность описаний функций и выражения, которые необходимо вычислить. Функциональное программирова­ние не использует концепцию памяти как хранилища значений переменных. Операторы присваивания от­сутствуют, вследствие чего переменные обозначают не области памяти, а объект программы, что полностью соответствует понятию переменной в математике. [1]. Наличие стройной математической основы обеспечивает возможность использования алгебраических методов создания структуры, преобразования и исследования


________________________

[7] Быканов Н.П. Классификация языков программирования // Международный журнал социальных и гуманитарных наук. – 2016. – Т. 5. №1. – С. 229-232. URL:: http://intjournal.ru/klassifikatsiya-yazykov-programmirovaniya. (дата обращения 09.02.2018).

[3] Программирование на языках высокого уровня: учебное пособие/ О.Л. Голицына, И.И. Попов. – М.: ФОРУМ, 2017. – С.4.

[1] Глава 15 из УМК: Гедранович В.В. Основы компьютерных информацион­ных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – С.3.

программ. Это в какой-то мере приближает их к описанию структуры мышления человека. Примером первого функ­ционального языка является язык LISP (List Processing – обработка списков). Разработан и реализован в Массачусетском технологическом институте в 1959 г. Рассматривается специалистами как основной язык про­граммирования систем искусственного интеллекта [1].

В функциональном программировании процесс вычисления можно описать как вычисление значений функций в математическом понимании. На практике, отличие математической функции от понятия «функция» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, таким образом, получая в разных местах программы разные выходные данные. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим один и тот же результат – выходные данные зависят только от входных. Это позволяет средам функционального программирования кэшировать результаты выполнения функций и вызывать их в нужный момент [7].

Отличительной особенностью языков функционального программирования является то, что любая программа, написанная на таком языке, может интерпретироваться как функция с одной или несколькими аргументами. Такой подход дает возможность моделировать программу математическими средствами. Сложные программы строятся посредством агрегирования функций. При этом программа представляет собой функцию, некоторые аргументы которой можно также рассматривать как функции [3]. Таким образом, повторное использование кода сводится к вызову ранее описанной функции, струк-

________________________

[1] Глава 15 из УМК: Гедранович В.В. Основы компьютерных информацион­ных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – С.3.

[7] Быканов Н.П. Классификация языков программирования // Международный журнал социальных и гуманитарных наук. – 2016. – Т. 5. №1. – С. 229-232. URL:: http://intjournal.ru/klassifikatsiya-yazykov-programmirovaniya. (дата обращения 09.02.2018).


[3] Программирование на языках высокого уровня: учебное пособие/ О.Л. Голицына, И.И. Попов. – М.: ФОРУМ, 2017. – С.4-5.

тура которой, в отличие от процедуры императивного языка, математически прозрачна [3].

Согласно логическому подходу программа представляет собой совокупность правил или логических высказываний. Языки логического программирования базируются на классической логике и применимы для систем логического вывода (например, для экспертных систем) [3].

Логика и программирование долгое время были непересекающимися об­ластями исследований. Только в 1973 впервые было опубликовано описание языка PROLOG (PROgramming in LOGic – программирование в терминах логики). Центральным понятием в логическом программировании яв­ляется отношение. Программа представляет собой совокупность определений отношений между объектами и цели. В логическом программировании нужно только специфицировать факты, на которых алгоритм основыва­ется, а не определять последовательность шагов, которые требуется выполнить [1].

В программах, написанных на языках логического программирования, вообще не описывается действий. Программист задаёт данные и отношения между ними, после этого программе можно задать вопрос, компьютер перебирает заданные данные и находит ответ [7].

Логические программы отли­чаются принципиально низким быстродействием, так как вычисления осуществляются методом проб и оши­бок (посредством поиска с возвратами).

В настоящее время для ПК существует около двух десятков реализации PROLOG’а, некоторые из них оформлены в виде интегрированных сред [1].

Следующим определяющим шагом совершенствования ЯВУ стало появление объектно-ориентированного подхода к программированию (ООП) и

________________________

[3] Программирование на языках высокого уровня: учебное пособие/ О.Л. Голицына, И.И. Попов. – М.: ФОРУМ, 2017. – С.4-5

[1] Глава 15 из УМК: Гедранович В.В. Основы компьютерных информацион­ных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – С.3.

[7] Быканов Н.П. Классификация языков программирования // Международный журнал социальных и гуманитарных наук. – 2016. – Т. 5. №1. – С. 229-232. URL:: http://intjournal.ru/klassifikatsiya-yazykov-programmirovaniya. (дата обращения 09.02.2018).

.

соответствующего класса языка [3].

Корни объектно-ориентированного программирова­ния уходят в одну из ветвей логики, в которой первичной является не отношение, а объект.