Файл: Классификация языков программирования высокого уровня (Обзор и характеристика языков программирования высокого уровня).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

Введение

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

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

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

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

Предмет курсовой работы – языки программирования и история их развития.

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

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

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

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

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

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

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

В третьей главе рассматриваются общее сведения об алгоритме и его свойствах.

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


Основными источниками, раскрывающими теоретические основы классификации языков программирования, явились работы Хайдарова К.А., Трофимовой В.В., Г. Р. Кадырова и статьи с сайтов.

Обзор языков программирования помогли сделать работы Макарова В.Л., Кадырова Г. Р., Трофимовой В.В. Аузяк А.Г., Богомолова Ю.А., Маликова А.И. и статьи с сайтов.

Основы алгоритмов были раскрыты работами Аузяк А.Г., Богомолова Ю.А., Маликова А.И., Старостина Б.А., Жданова Т.А., Бузыкова Ю.С., Белова П.М., Рака И.П., Терехова А.В., Селезнева А.В. и курс лекций.

Глава 1. Поколения и классификация языков программирования

1.1 Пять поколений языков программирования

Иногда различают пять поколений языков программирования, правда данное разделение является спорным:

Первое поколение (Поколение 1GL).

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

Машинные языки, языки низкого уровня - двоичные языки процессоров, представляющие собой набор (алфавит) команд, записанных в двоичном коде (0,1), которые данный процессор может выполнить непосредственно, если эти команды ввести в его память в виде последовательности или сразу подать в арифметическо-логическое устройство процессора. Примеры: язык процессора IBM-PC, язык ARM-процессора. [2]

Основная отличительная особенность: ориентирование на конкретный компьютер. [11]

Второе поколение (Поколение 2GL).

Конец 1950-х - начало 1960-х г.г. Разработан символьный ассемблер, в котором появилось понятие переменной. Это первая полноценная язык. [11]

Ассемблеры, автокоды, системные языки, языки среднего уровня - текстовые языки, понятные человеку и однозначно переводимые (транслируемые) в языки низкого уровня, то есть машинный двоичный код. Программирование на 2GL на порядок производительнее, чем на 1GL, так как более удобны для человеческого восприятия. Примеры: Макроссемблер, С, PL/1. [2]

Основная отличительная особенность: ориентирование на абстрактный компьютер с такой же системой команд. [11]

Третье поколение (Поколение 3GL).


1960-е гг. - Языки программирования высокого уровня. Их характеристики [11]:

  • относительная простота;
  • независимость от конкретного компьютера;
  • возможность использования мощных синтаксических конструкций.

Простота языка позволяет писать небольшие программы и людям, которые не являются профессиональными программистами. [11]

Основная отличительная особенность языка третьего поколения: ориентирование на алгоритм (алгоритмические языки). [11]

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

Всего в мире существует около 200 популярных языков программирования третьего уровня. [11]

Четвертое поколение (Поколение 4GL).

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

Языки визуального программирования ‑ языки блок-схем, позволяющие отображать алгоритмы в программных проектах, что облегчает создание и анализ алгоритмов. Программирование на 4GL на порядок производительнее, чем на 3GL. Примеры: RAD-системы, CAD-пакеты, OLAP-системы. [2]

Часто относят: SQL, SGML (HTML, XML ), Prolog, и многие другие узкоспециализированных декларативных языков. Правда ряд языков, которые относят к четвертому поколению, не являются языками программирования как таковыми. Например, SQL является языком запросов к базам данных, HTML является языком разметки гипертекста, а не полноценными языками программирования, скорее они выступают своеобразными специализированными дополнениями к языкам программирования. Тоже самое касается XML. [11]

Основная отличительная особенность языка четвертого поколения: приближение к человеческой речи (декларативные языки). [11]

Некоторые языки имеют черты одновременно и третьего и четвертого поколений. [11]


Пятое поколение (Поколение 5GL).

Пятого поколения языков программирования пока не существует. [11]

Производители пропроиетарних программных продуктов часто пытаются приписать своим продуктам какие маркетинговые особенности, и порой указывают что их продукт - это «язык пятого поколения». В действительности, все эти продукты - это просто среды для ускоренного создания продуктов (Rapid Application Development - RAD), и используют языки третьего и четвертого поколений. [11]

Речь пятого поколения вытеснит ли существенно потеснит языка третьего (напр. Java) и четвертого поколения (например SQL) за счет значительно увеличенной производительности труда программиста - в 10-1000 раз. По прогнозам, 5GL будет оперировать мета-мета-данными. [11]

Интеллектуальные языки программирования - позволяют передать функцию создания алгоритмов компьютеру, а за человеком оставить лишь постановку задачи. Программирование на 5GL на порядок производительнее, чем на 4GL. Примеры: система MatCAD, экспертные системы. [2]

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

Существует множество классификаций языков программирования по различным критериям.

Можно классифицировать языки на вычислительные и языки символьной обработки. К первому типу относят ФОРТРАН, ПАСКАЛЬ, АЛГОЛ, БЕЙСИК, С, ко второму – ЛИСП, ПРОЛОГ, СНОБОЛ и др. [10]

Классификация языков программирования по типам задач приведена в таблице Таблица 1. [10]

Таблица 1 ‑ Классификация языков программирования по типам задач [10]

Тип задачи

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

Задачи искусственного интеллекта

ЛИСП, ПРОЛОГ, Common Lisp, РЕФАЛ, Planner, QLisp

Параллельные вычисления

Fun, Apl, ML, SML, Occam, Actus, параллельный КОБОЛ, ОВС-АЛГОЛ, ОВС-ФОРТРАН

Задачи вычислительной математики и физики

Occam, Actus, параллельный КОБОЛ, ОВС-АЛГОЛ, ОВС-ФОРТРАН

Разработка интерфейса, программ-оболочек, систем

Forth, С, C++, АССЕМБЛЕР, МАКРОАССЕМБЛЕР, СИМУЛА-67,0 А К, Smalltalk, Java, РПГ

Задачи вычислительного характера

АЛГОЛ, ФОРТРАН, КОБОЛ, Ada, PL/1, БЕЙСИК, ПАСКАЛЬ

Оформление документов, обработка больших текстовых файлов, организация виртуальных трехмерных интерфейсов в Интернете, разработка БД

HTML, Perl, SQL, Informix 4GL, Natural, DDL, DSDL, SEQUEL


Еще одна распространенная классификация языков программирования основана на принципе их организации. По этой классификации языки делят на две группы: процедурные (употребляются также термины императивные и структурные, хотя это не совсем одно и то же) и непроцедурные (объектно-ориентированные, функциональные и логические) (Рисунок 1). [5]

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

В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. В эту большую группу входят, например, ПАСКАЛЬ, С, АДА, ПЛ/1, ФОРТРАН и БЕЙСИК. [10]

Рисунок 1 ‑ Общая классификация языков программирования [5]

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

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

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

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

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