Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования высокого уровня

Содержание:

ВВЕДЕНИЕ

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

Объектом исследования послужили языки программирования высокого уровня и их классификация.

Целью курсовой работы является изучение классификации языков программирования высокого уровня и их развития.

Цели исследования:

  1. Просмотреть общее сведения и уровни языков программирования.
  2. Просмотреть поколения развития языков программирования.
  3. Сделать обзор современных языков программирования.

Задачи исследования:

  1. Ознакомления с языками программирования высокого уровня.
  2. Рассмотрение поколений развития языков программирования высокого уровня.
  3. Обзор современных языков программирования.

В первой главе рассматриваются основные понятия алгоритма, программы, языков программирования.

Во второй главе рассматривается поколения развития языков программирования.

В третьей главе рассматривается классификация языков программирования высокого уровня.

В четверной главе рассматривается краткий обзор языков программирования высокого уровня.

Глава 1. Основные понятия алгоритма, программы, языков программирования

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

Информационные технологии в настоящее время являются одной из наиболее быстро развивающихся областей современной жизни. Развитие информационных технологий обуславливает и развитие программного обеспечения (ПО), как одной из важнейших своих составляющих.

В создании ПО значительную роль играет уровень возможностей средств общения человека с ЭВМ. Во многом этот уровень определяется языками программирования (ЯП)[3].

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

Алгоритм решения задачи, заданный в виде последовательности команд на языке вычислительной машины (в кодах машины), называется машинной программой

________________________

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

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

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

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

Самому написать программу в машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Условно можно считать, что машинный код приемлем, если размер программы не превышает нескольких десятков байтов и нет потребности в операциях ручного ввода/вывода данных.

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

Процесс перевода алгоритма в машинную программу называется трансляцией.

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

Поэтому языки программирования — это формальные языки, специально созданные для общения человека с компьютером [2].

Язык программирования позволяет программисту точно определить то,

________________________

[11] Структурное программирование. URL: http://shkolo.ru/strukturnoe-programmirovanie/ (дата обращения 27.01.2018).

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

[2] Методы программирования. Компьютерные вычисления А. В. Могилев, Л. В. Листрова. — СПб.: БХВ-Петербург, 2008. —- C 19.

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

Для классификация языков программирования высокого уровня необходимо рассмотреть поколения развития языков программирования. Этому будет посвящена следующая глава.

________________________

[16] https://infourok.ru/konspekt-lekciy-po-discipline-informatika-na-temu-yaziki-programmirovaniya-2721699.html (дата обращения 09.02.2018).

Глава 2. Поколения развития языков программирования

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

Первые языки программирования возникли относительно недавно. Различные исследователи указывают в качестве времени их создания 20-е, 30-е и даже 40-е годы XX столетия [8].

Развитие языков программирования принято делить на пять поколений.

В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет [6]. Это был первый язык ассемблера, созданный по принципу «одна инструкция — одна строка».

Первые языки программирования (ЯП) представляли собой набор машинных команд в двоичном (бинарном) или восьмеричном формате, который определяется архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на которых были пригодны для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ [3].

Расцвет второго поколения языков программирования пришелся на конец 50-х — начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ [6].

В 1950-х гг. появляются первые средства автоматизации программирования — языки Автокоды.

________________________

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL:https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

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

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

Позднее для языков этого уровня стало применяться название «Ассемблеры» [5].

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

Появление языков типа Автокод-Ассемблер облегчило участь программистов. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (словесные) обозначения, которые легче запомнить [5]. Язык программирования стал понятнее для человека, но при этом удалился от языка машинных команд.

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

Таким образом, ранние языки программирования существенно зависели от того, что принято называть средой вычислений и приблизительно соответствовали современным машинным кодам или языкам ассемблера [8].

Следующее десятилетие 60-е гг. – 70-е гг. ознаменовалось появлением языков программирования так называемого «высокого уровня», по сравнению с ранее рассмотренными предшественниками, соответственно именуемыми низкоуровневыми языками.

________________________

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

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

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL:https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

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

Языки высокого уровня (ЯВУ) открывают третье поколение ЯП. Основные черты высокоуровневых языков [3] – абстракция, то есть введение смысловых конструкций, кратко описывающих данные и операции над ними, описания которых в машинно-ориентированных языках очень длинны и сложны для понимания. Также они были призваны обеспечить платформенную независимость сути алгоритмов. С их появлением зависимость от платформы перекладывается на трансляторы, «переводящие» текст, написанный на языке высокого уровня, в элементарные машинные команды [7]. Примерами языков программирования высокого уровня являются C++, C#, PHP, Perl, Java и многие другие.

Первый ЯВУ – Fortran – был разработан под руководством Дж. Бекуса в фирме IBM в 1956 г.

В конце 50-х годов плодом международного сотрудничества в области программирования явился Алгол-60 (ALGOL, от ALGOrithmic Language — алгоритмический язык, версия 1960 г.).

Развитие идеи Алгола о структуризации разработки алгоритмов нашло наивысшее отражение при создании в начале 1970-х годов языка Паскаль швейцарским ученым Никлаусом Виртом [2].

Большое количество языков программирования появилось в 1960—1970-х гг. А за всю историю ЭВМ их было создано более тысячи. Но распространились, выдержали испытание временем немногие.

В середине 1960-х годов сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализирован-

________________________

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

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

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

[2] Методы программ-ния. Компьют-ые вычисления /А.В. Могилев, Л.В. Листрова. - СПб.: БХВ-Петербург,

ный язык программирования, который состоял из простых слов английского языка. Новый язык назвали «универсальным символическим кодом для начинающих» (Beginners All Purpose Symbolic Instruction Code, или, сокращенно, BASIC, а по-русски — Бейсик). Годом рождения нового языка можно считать 1964 г. [2].

Языки Фортран и Алгол были ориентированы на научно-технические расчеты математического характера. Кобол — язык для программирования экономических задач [2].

В эпоху ЭВМ третьего поколения получил большое распространение язык PL/1 {Program Language One), разработанный фирмой IBM. Это был первый язык, претендовавший на универсальность, т. е. на возможность решать любые задачи: вычислительные, обработки текстов, накопления и поиска информации. Однако PL/1 оказался слишком сложным языком.

Значительным событием в истории языков программирования высокого уровня стало создание в 1971 г. языка Паскаль. Его автор — швейцарский профессор Н.Вирт — разрабатывал Паскаль как учебный язык структурного программирования [2].

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

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

________________________

[2] Методы программирования. Компьютерные вычисления /А. В. Могилев, Л. В. Листрова. — СПб.: БХВ-Петербург, 2008. — С.13.

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

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

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL:https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

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

Такие блоки получили название функций или процедур, и программирование приобрело более упорядоченный характер [8].

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

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

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

С начала 70-х годов по настоящее время продолжается период языков четвертого поколения. Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Они обычно

________________________

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

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL:https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

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

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

К языкам программирования четвёртого поколения чаще всего относят языки объектно-ориентированные, декларативные (непроцедурные) и визуальные. Но эти языки с уверенностью можно отнести и к языкам третьего поколения. Также очень часто сюда относят языки запросов, например, SQL. Вообще, часто можно прочитать о том, что языки программирования четвёртого поколения – это языки, встроенные в определённую программную оболочку и используемые для узкоспециализированных задач, например, для создания баз данных и управления ими (встроенные языки систем управления базами данных). Вернее сказать, что языки программирования четвёртого поколения – логичное развитие языков третьего поколения, упрощающее работу программистов ввиду того, что в основе своей эти языки встроены в собственную программную оболочку с функциями, помогающими разработчикам. Также к языкам четвёртого поколения нужно отнести языки параллельного программирования, ориентированные на создание программных средств многопроцессорной архитектуры [7].

Языки четвертого поколения – это ЯВУ усовершенствованные, разработанные для создания специальных прикладных программ, для управления базами данных [14].

________________________

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

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

[14] Язык программирования и их классификация С.2. URL: http://megapredmet.ru/1-44152.html (дата обращения 09.02.2018 ).

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

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

Языки пятого поколения – это языки программирования для Интернета – скрипт-языки – HTML, Perl, PHP, XML, JavaScript, VBScript [17].

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

Развиваются старые языки программирования, разрабатываются новые. Необходимо языки программирования классифицировать [7]. В следующей главе будет рассмотрена классификация языков программирования высокого уровня, даны их характерные признаки.

________________________

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

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

[17] https://infourok.ru/konspekt-lekciy-po-discipline-informatika-na-temu-yaziki-programmirovaniya-2721699.html (дата обращения 09.02.2018).

ГЛАВА 3. Классификация языков программирования высокого уровня

3.1. Машинные, машинно-ориентированные, машинно-независимые языки, языки программирования низкого уровня и высокого уровня

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

Прежде всего, языки программирования нужно классифицировать по уровням. Разные авторы разбивают языки либо на три уровня (машинные, машинно-ориентированные и машинно-независимые языки), либо на два уровня (языки программирования низкого уровня, языки программирования высокого уровня) [7].

Языки программирования, имитирующие естественные, обладающие укрупненными командами, ориентированные отдельные прикладные области обработки информации, называют языками высокого уровня [10].

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

По этому критерию можно выделить следующие уровни языков программирования:

  • машинные;
  • машинно-оpиентиpованные (ассемблеры);
  • машинно-независимые (языки высокого уровня) [4].

________________________

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

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

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

В случае деления языков программирования на три уровня, низшим уровнем будет являться машинный код – набор команд, выполняемых конкретным процессором и разработанных специально для него. Средним уровнем будут являться машинно-ориентированные языки, то есть языки, призванные управлять непосредственно командами процессора, но более доступным для человеческого восприятия языком. Примером являются языки ассемблера. Как правило, язык ассемблера использует особенности конкретного семейства процессоров. Высшим же уровнем будут считаться машинно-независимые языки. Они разработаны для удобства восприятия, быстроты понимания и работы с ними [7].

Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека [4].

ЯВУ характеризовались следующими чертами:

  • от пользователя не требуется знания машинного языка;
  • язык не связан с определенным типом ЭВМ, поэтому обеспечивает перевод программ с одной ЭВМ на другую;
  • одна инструкция ЯВУ переводится в несколько команд машинного кода;
  • выражения языка соответствуют области его применения и представляют собой жесткую табличную форму [3].

В современной классификации языков программирования по уровням всё чаще используют деление на два уровня: языки высокого и низкого уровней [7].

________________________

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

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

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

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

Языки программирования

Низкого уровня

Высокого уровня (машинно-независимые)

машинно-оpиентиpованные (ассемблеры)

Машинные коды

Рис.1 Классификация языков программирования по уровням

3.1.1. Трансляторы – интерпретаторы и компиляторы языков высокого уровня

Существенное сокращение зависимости программ от аппаратного обеспечения было достигнуто за счет появления специализированных программ-трансляторов, преобразующих конструкции ЯВУ в коды конкретной вычислительной машины [3].

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция [4].

Транслятор, работающий по принципу компиляции, называется компилятором; транслятор, работающий методом интерпретации, — интерпретатором.

Интерпретатор в течение всего времени работы программы находится во внутренней памяти. В ОЗУ помещается и программа на ЯПВУ. Интерпретатор в последовательности выполнения алгоритма «читает» очередной оператор программы, переводит его в команды и тут же выполняет эти команды. Затем переходит к переводу и выполнению следующего оператора [5].

________________________

[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].

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

Понятие программного объекта впервые было использовано в языке Simula-67. При ООП программа представляет собой описание совокупностей (классов) объектов, их свойств (атрибутов), отношение между ними, а также операций над объектами (методов). Механизм наследования атрибутов и методов позволяет строить производные понятия на основе базовых и, таким образом, создавать модель определенной предметной области с заданными свойствами. Кроме того, использование ранее разработанных библиотек объектов и методов дает возможность значительно сэкономить трудозатраты при создании программного обеспечения [3].

Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic и Delphi [1].

В языках объектно-ориентированного программирования переменные и функции группируются в классы, благодаря чему достигается высокий уровень структуризации программы. Объекты, порождённые от классов, вызывают методы (функции) друг друга и, таким образом, меняют состояние свойств (переменных). С формальной стороны объектно-ориентированное программирование базируется на процедурной модели, но с содержательной – оно базируется не на функции, а на объекте, как на целостной системе [7].

________________________

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

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

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

ООП является более естественным, так как предоставляет воз­можность выбрать имеющиеся или создать новые объекты и органи­зовать взаимодействия между ними. Следовательно, объектно-ориен­тированные языки по сравнению с процедурными являются языками более высокого уровня.

К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java [10].

С развитием Internet-технологий и событийно управляемой концепции ООП в 90-х годах XXв. появился целый класс ЯВУ, которые получили название языков сценариев или скриптов.

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

Наиболее часто используемые из таких языков – JavaScript, VBScript, PowerScript, LotusScript.

Основные достоинства языков данного класса унаследованы от объектно-ориентированных языков программирования. Это интуитивная ясность описаний, близость к предметной области, высокая степень абстракции, хорошая переносимость.

Существенным преимуществом языков сценариев является их совместимость с передовыми инструментальными средствами автоматизированного проектирования и быстрой реализации программного обеспечения [8].

________________________

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

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

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL: https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

Широкие возможности повторного использования кода также унаследованы сценарными языками от объектно-ориентированных предков [8].

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript [12].

Языки веб-программирования – это языки, которые в основном предназначены для работы с веб-технологиями. Языки веб-программирования можно условно разделить на две пересекающиеся группы: клиентские и серверные.

Как следует из названия, программы на клиентских языках обрабатываются на стороне пользователя, как правило их выполняет браузер. Это и создает главную проблему клиентских языков – результат выполнения программы (скрипта) зависит от браузера пользователя.

Серверные языки. Когда пользователь дает запрос на какую-либо страницу, то вызванная страница сначала обрабатывается на сервере, то есть выполняются все программы, связанные со страницей, и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, ASPX, Perl, XML, DHTML, XHTML.

Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми [10]. Интерпретаторы для них распространяются

________________________

[8] Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL: https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

[12] Языки программирования .URL: http://mschool.kubsu.ru/mmf/index.php?option=com_content&view=article&id=199:2014-04-29-10-33-26&catid=27:2014-04-29-10-15-30&Itemid=64 (дата обращения 27.01.2018).

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

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

К серверным языкам программирования можно отнести: PHP, Perl, Python, Ruby, любой .NETязык программирования (технология ASP.NET), Java, Groovy [10].

В данной главе были рассмотрены две основные и самые популярные классификации языков программирования.

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

Число языков программирования с каждым денём растет. В следующей главе будет дан краткий обзор наиболее популярных языков программирования высокого уровня.

________________________

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

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

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

Глава 4. Краткий обзор языков программирования высокого уровня

Фортран (FORmula TRANslating system – система трансляции формул); старейший и сегодня активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач [4].

Язык Фортран был разработан фирмой IBM. Профессор Дж. Букс и группа американских специалистов в области программирования в 1954 году опубликовали первое сообщение о языке [11].

Первая версия системы FORTRAN для компьютера IBM была выпущена в начале 1957 г. Язык постепенно избавлялся от недостатков. Так появился FORTRAN IV, затем в 1977 г. – FORTRAN 77, в 1991 г. – очередной стандарт FORTRAN 91 [1].

Это первый компилируемый язык. Программисты, разрабатывавшие программы исключительно на ассемблере, выражали серьезное сомнение в возможности появления высокопроизводительного языка высокого уровня, поэтому основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях [6].

________________________

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

[11] Структурное программирование. URL: http://shkolo.ru/strukturnoe-programmirovanie/ (дата обращения 27.01.2018 ).

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

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

Фортран в 60-70-е годы являлся одним из самых распространенных языков в мире. Он имеет простую структуру, программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации) и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой.

Фортран был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т. д.), некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т. д.)[11].

Basic (Бейсик). В середине 1960-х годов сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали "универсальным символическим кодом для начинающих" (Beginners All Purpose Symbolic Instruction Code, или, сокращенно, BASIC, а по-русски — Бейсик). Годом рождения нового языка можно считать 1964 г.[2]. По замыслу авторов это простой язык, предназначенный для программирования несложных расчетных задач [5].

Для этого языка имеются и компиляторы, и интерпретаторы, Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении [6].

________________________

[11] Структурное программирование. URL: http://shkolo.ru/strukturnoe-programmirovanie/ (дата обращения 27.01.2018 ).

[2] Методы программирования. Компьютерные вычисления /А. В. Могилев, Л. В. Листрова. — СПб.: БХВ-Петербург, 2008. — С.13.

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

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

Наибольшее распространение Бейсик получил на микроЭВМ и персональных компьютерах [5].

С ним легко работать, программы на нем пишутся обычно быстрее, чем на других языках программирования высокого уровня. Долгое время Бейсик был встроен в ПЗУ персональных компьютеров.

Бейсик считается деловым языком, снабженным мощными средствами решения специфических задач, которые обычно большинство пользователей решают при помощи небольших компьютеров, а именно: работая с файлами и выводя текстовое и графическое изображение на экране дисплея.

Версия Бейсика от компании Microsoft — Visual Basic — является самым распространенным средством программирования в мире [11].

Несмотря на многие недостатки и изобилие плохо совместимых версий – Бейсик самый популярный по числу пользователей. Широко употребляется при написании простых программ [4].

Паскаль (Pascal– назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты.

Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в

________________________

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

[11] Структурное программирование. URL: http://shkolo.ru/strukturnoe-programmirovanie/ (дата обращения 27.01.2018 ).

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

едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи) [4].

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

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

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

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

ADA (АДА) - является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка Паскаль[4].

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

В языке четко выражена модульность его конструкций, причем обеспе-

________________________

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

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

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

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

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

Язык C (Си ) – это самый распространённый язык программирования. На нём написано больше программ, чем на любом другом. Подавляющее большинство профессиональных программистов владеют им. Истори­чески этот язык неотделим от операционной системы UNIX, которая в наши дни переживает своё второе рождение. Язык с самого начала создавался так, чтобы на нём можно было писать системные задачи. Разработ­чики языка – Кеннет Томсон и Деннис Ричи [1].

Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль [4].

Язык программирования Си создавался как инструментальный язык для разработки операционных систем, трансляторов, баз данных и других системных и прикладных программ.

Так же как и Паскаль, Си — это язык структурного программирования, но, в отличие от Паскаля, в нем заложены возможности непосредственного

________________________

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

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

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

обращения к некоторым машинным командам, к определенным участкам памяти компьютера. Дальнейшее развитие Си привело к созданию языка объектно-ориентированного программирования Си++ [5].

Языки С и C++ пользователи называют двумя братьями. Существует версия, что это два различных языка программирования, однако это неверно. С++ выступает в качестве некоторого усовершенствования предыдущего языка, которое облегчает написание программ и сохраняет прежний синтаксис. Разработка С была начата еще в семидесятых годах прошлого века. Приблизительно через десять лет началось создание С++. В настоящий момент последний является одним из наиболее известных. Он содержит множество функций, позволяет создать операционную систему, а также драйверы, предназначенные для устройств, игры и прочее [9].

C++ (Си++). Си++ — это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Однако тогда многие особенности Си++ были еще не придуманы. Название Си++ выдумал Рик Масситти [13].

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

Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен.

_______________________

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

[9] Компьютерные языки программирования: виды, описание, применение и отзывы. URL: http://computerologia.ru/kompyuternye-yazyki-programmirovaniya-vidy-opisanie-primenenie-i-otzyvy/ (дата обращения 09.02.2018).

[13] Языки программирования, их классификация и развития . URL: http://robotix.narod.ru/yziki_progr.htm (дата обращения 09.02.2018).

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

Созданный на базе языка Паскаль специалистами фирмы Borlandязык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет [4].

Delphi – это не что иное, как Visual Pascal. Благодаря созданию этой среды программирования простые программы (Windows-приложения) может писать практически любой пользователь[1].

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

Java - платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц.[4]

Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-машины  JVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика [6].

Лисп (Lisp) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную

_______________________

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

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

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

обработку больших объемов текстовой информации.

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

HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста, используемый для подготовки Web-документов для сети Internet. Язык представляет собой набор элементарных команд форматирования текста, добавления графических объектов (рисунков), задания шрифтов и цвета, организации ссылок и таблиц. В основе языка HTML лежит механизм гипертекстовых ссылок, обеспечивающий связь одного документа с другим. В HTML текст кодируется в ASCII и поэтому может быть создан и отредактирован в любом текстовом редакторе. Все Web-страницы написаны на HTML или используют его расширение [10].

Perl. В 80-х гг. Ларри Уолл разработал язык Perl, который предназначался для эффективной обработки больших текстовых файлов, создания текстовых отчетов и управления задачами.

По мощности Perl значительно превосходит языки типа Си.[6].

В его состав входят многочисленные функции работы со строками,

_______________________

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

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

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

массива ми, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и др.

На этом закончим рассмотрение основных языков программирования языков высокого уровня.

ЗАКЛЮЧЕНИЕ

Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её.

Языки развиваются в сторону все большей и большей абстракции.. Повышение уровня абстракции влечет за собой повышение уровня надежности программирования. С низкой эффективностью можно бороться путем создания более быстрых компьютеров Это, конечно, требует времени и средств, но это решаемо. А вот с ошибками в программах можно бороться только одним способом: их надо исправлять.

Но если мы обратим внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста

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

В данной курсовой работе, были рассмотрены самые распространенные языки программирования, классификация ЯВУ, а также даны представления о всем многообразии существующих языков программирования высокого уровня , их характерных признаков.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

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

2. Методы программирования. Компьютерные вычисления /А. В. Могилев, Л. В. Листрова. — СПб.: БХВ-Петербург, 2008. — 320 с.

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

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

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

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

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

8. Введение в теорию программирования. Функциональный подход. Лекция 2: Классификация языков программирования. URL: https://www.intuit.ru/studies/courses/39/39/lecture/1153?page=2. (дата обращения 09.02.2018).

9. Компьютерные языки программирования: виды, описание, применение и отзывы. URL: http://computerologia.ru/kompyuternye-yazyki-programmirovaniya-vidy-opisanie-primenenie-i-otzyvy/ (дата обращения 09.02.2018).

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

11. Структурное программирование. URL: http://shkolo.ru/strukturnoe-programmirovanie/ (дата обращения 27.01.2018 ).

12. Языки программирования .URL: http://mschool.kubsu.ru/mmf/index.php?option=com_content&view=article&id=199:2014-04-29-10-33-26&catid=27:2014-04-29-10-15-30&Itemid=64 (дата обращения 27.01.2018).

13. Языки программирования, их классификация и развития . URL: http://robotix.narod.ru/yziki_progr.htm (дата обращения 09.02.2018).

14. Язык программирования и их классификация С.2. URL: http://megapredmet.ru/1-44152.html (дата обращения 09.02.2018 ).

15. http://megaobuchalka.ru/6/38727.html (дата обращения 27.01.2018).

16. https://infourok.ru/konspekt-lekciy-po-discipline-informatika-na-temu-yaziki-programmirovaniya-2721699.html (дата обращения 09.02.2018).

17. https://infourok.ru/konspekt-lekciy-po-discipline-informatika-na-temu-yaziki-programmirovaniya-2721699.html (дата обращения 09.02.2018).