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

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

Содержание:

ВВЕДЕНИЕ

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

В период 60-х — 1970-х гг. были разработаны основные парадигмы языков программирования, используемые в настоящее время. Как раз в этот период начинается бурное развитие языков программирования высокого уровня, о которых пойдет речь в настояшей курсовой работе.

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

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

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

  1. Дать понятие языков программирования и их обшую классификацию;
  2. Дать определение языков программирования высокого уровня и их основные классификации;
  3. Охарактеризовать основные типы языков программирования высокого уровня, как обоснование их классификации, описать их основные особенности и области применения.

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

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

ПОНЯТИЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ И ИХ ОБШАЯ КЛАССИФИКАЦИЯ

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

  1. алфавит — набор основных символов,фиксированный для данного языка, которые допустимы для составления текста программы на этом языке;
  2. синтаксис — систематизированные правила, определяющие, какие конструкции языкадопустимы в ходе программирования;
  3. семантика – систематизированные правила однозначного толкования отдельных конструкций языка, которые позволяют воспроизводить процесс обработки данных[22, с.19].

Для описания языка и его применения используются понятия языка. Понятие —это некая синтаксическая конструкция и свойства программных объектов или процесса обработки данных, которые ею определяются [3, с 24].

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

Классификация языков программирования по категориям определяется методами, используемыми в процессе написании программ. Языки высокого уровня применяются в машинно-независимых системах программирования. Такие системы программирования, по сравнению с машинно-ориентированными системами являются более простыми в использовании[22, с. 166].

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

Классификация языков программирования. Автор24 — <a href=

Рисунок 1— Общая классификация языков программирования[19, с. 116]

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

Языки программирования, которые имитируют естественные языки, и ориентированы на решение содержательных прикладных задач, называют языками высокого уровня (high-level programming language) [3, с. 199]. В этих языках присутствуют элементы, которые допускают описание задач в легко воспринимаемом, наглядном виде, делающие процесс программирования более простым и автоматизированным, а также упрощающие конструкции и структуры данных. В языках программирования высокого уровня отражается не архитектура вычислительной системы, а естественные для человека понятия [12, с.87]. Поэтому программа, которая составленана языке программирования высокого уровня,вначалетранслируется компьютеру на машинный язык низкого уровня (компиляция), а после этого выполняется.

Алфавит языков программирования высокого уровня может состоятьиз букв, цифр, математических символов,а также так называемые ключевые слова, к примеру: if (если); then (тогда); else (иначе) и др [17, с 263].
Исходные символы по правилам синтаксиса составляются в предложения, которые называются операторами.

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

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

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

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

Таким образом, языки программирования высокого уровня, являясь машинно-независимыми, требуют использования соответствующих программ-трансляторов, которые могут представить программу на языке компьютера, на котором она будет выполняться[3, с. 119].

Самая распространенная классификация языков программирования основана на принципе их организации, или парадигме. По этой классификации языки подразделяются на процедурно-ориентированные, объектно-ориентированные и декларативные (рисунок 2).

9.3. Классификация языков программирования высокого уровня Основные элементы языков программирования - портал intellect.ml

Лисп

Рисунок 2 — Классификация языков программирования высокого уровня[3, с. 122]

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

а) Фортран (Fortran), название которого происходит от слов «fоrmulaetranslatijn»– «преобразование формул». Фортран является одним из самых старых языков программирования высокого уровня. Столь длительное его существование и применениеобъясняется простотой структуры данного языка [17, с. 200];

б) Бейсик (Basic), название которого расшифровывается как «Beginner'sAll-purposeSymbolicInstructionCode», что переводится как «многоцелевой символический обучающий код для начинающих», был разработан в 1964 г., для обучения программированию;

в) Си (С), который активно используется с 70-х гг., как язык системного программирования. В 80-е гг. на его основе был разработан язык C++, который на практике включает в себя язык С и дополнительные средства объектно-ориентированного программирования[13, с. 145];

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

Декларативные языки программирования высокого уровня применяются для решения целых классов новых задач, которые появились в связи с постоянным увеличением области применения вычислительной техники [13, с. 169]:

а) Лисп (Lisp – ListInformationSymbolProcessing), изобретенныйв 1962 г. Дж. Маккарти. Изначально он использовался, как средство для работы со строками символов. Лисп применяется в системах аналитических вычислений,экспертных системах и т. п.

б) Пролог (Prolog – ProgramminginLogic) — используется для логического программирования в системах искусственного интеллекта[12, с. 192].

Объектно-ориентированные языки продолжают свое развитие и в настоящее время. Практически каждый из них является версией процедурных и проблемных языков, однако программирование с помощью языков этой группы более наглядный и простой процесс. К наиболее часто употребляемым языкам относятсяVisualBasic, Delphi, VisualFortran,  C++, Prolog++[22, 301].

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, С, ко второму – Лисп, Пролог, Снобол и др. Также сушествует классификация языков программирования по типам задач , которая представлена в Приложении 1.

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

Характеристика процедурно-ориентированных и декларативных языков программирования высокого уровня

2.1. Процедурно-ориентированные языки программирования высокого уровня: краткое описание и особенности

Фортран (Fortran) —первый компилируемый язык, созданный Джоном Бэкусом в 50-е гг. Для данного языка было разработанобольшое количество библиотек, начиная от статических комплексов и заканчивая пакетами управления спутниками. По этой причине Fortran продолжают активно использовать в большом числе организаций, а в настоящий момент идет работа над новым стандартом Фортрана — F2k. Существует стандартная версия Фортрана HPF (HighPerfomanceFortran) для параллельных многопроцессорных суперкомпьютеров. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). Фортран широко применяется, прежде всего, в научных и инженерных вычислениях[1, с. 31].

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

У современного Фортрана (Fortran 95 и Fortran 2003) можно выделить черты, которые необходимы для продуктивного программирования, создания новых вычислительных архитектур[8, с. 29]. Он дает возможность использовать современные технологии программирования, к примеру, обобщённое и модульное программирование, объектно-ориентированное программирование, но при этом сохраняется преемственность с более старыми версиями. Одной из основных концепций развития современного Фортрана являются средства поддержки параллельности и векторные операции.

Кобол (Cobol) является компилируемым языком, который применяется в основном в экономической области и решения бизнес-задач. Для него характерна большая«многословность», т.е. операторы языка выглядят как обычные английские фразы[16, с. 320]. В Коболе присутствуютмощнейшие средства для работы с большими объемами информации, которые хранятся на разнообразных внешних носителях. На Коболенаписано большое количество самых разных приложений, которые активно используются и по сей день.

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

Для Кобола были утверждены в 1968, 1974, 1985 и 2002 гг.В последнемиз них в язык была добавлена поддержка объектно-ориентированной парадигмы.

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

Алгол (Algol). (от англ. algorithmic — алгоритмический и language — язык) Этот компилируемый язык был разработан в 1960 г. с целью заменить Фортран, но более сложная структура не позволила ему получить широкого распространения. В 1968 г. появилась версия Алгол68,по своим возможностям опережающая и по сей день многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для этой версии не удалось своевременно разработать хорошие компиляторы [16, с 166].

Алгол пользовался популярностью в Европе, в том числе вСССР, и как язык практического программирования, и как академический язык (для публикации алгоритмов в научных работах), но в США и Канаде не смог обойти по популярности Фортран. Заметное влияние на все разработанные позднее императивные языки программирования — в частности, на язык Pascal.

Паскаль (Pascal), который был разработан в конце 70-х гг. основоположником большого числа идей современного программирования Николаусом Виртом, имеет сходства с Алголом, однако он отличается ужесточением ряда требований к структуре программы. Также в языке Паскаль есть возможности, которые позволяют успешно использовать его для разработки крупных проектов. Pascal (назван в честь Блеза Паскаля) является чисто процедурным языком программирования, он часто используется для обучения структурному программированию [19, с. 132].

В 1983 г. был разработан первый стандарт языка, ISO 7185:1983, который также носит название Standart Pascal. Данный стандарт формально описывал существующие особенности языка. В 1990 г. был принят стандарт ISO/IEC 10206, который определял так называемый Extended Pascal. Главным изменением стало добавление модульности [3, с. 99].

Особенности языка Pascal — строгая типизация и имшиеся средства структурного (процедурного) программирования. Кроме того, в Pascal минимализированы возможные синтаксические неоднозначности, синтаксис интуитивно понятен даже при первом знакомстве с языком. Это делает более простым разработку компиляторов языка. Pascal также предоставлял ряд встроенных структур данных: записи, массивы, файлы, множества и указатели [3, с.101].

Диалект Object Pascal, разработанный в 1985 г., поддерживает объектно-ориентированное программирование. Имеется ряд современных компиляторов, поэтому язык достаточно популярен и в настоящее время.

Бейсик (Basic) по популярности находится на первом месте в мире. Он разрабатывался в конце 60-х гг., как учебное пособие и весьма прост в изучении.

Бейсик (BASIC — сокращение от англ. Beginner’sAll-purposeSymbolicInstructionCode — универсальный код символических инструкций для начинающих) — это целое семейство языков программирования высокого уровня [3, с. 72].

Бейсик был создан в 1963 г. преподавателями Дартмутского Колледжа Джоном Кемени и Томасом Куртцом и реализован под их руководством студенческой командой колледжа. При разработке языка были сформулированы восемь требований, которым он должен отвечать:

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

Наибольшую же популярность язык получил в середине 70-х гг. после его появления на микрокомпьютерах. Большинство языков программирования были слишком громоздкими и не умещались в небольшой памяти [13, с.90]. Для компьютеров с такими медленными носителями, как бумажная лента или аудиокассета, и без совместимого текстового редактора такой компактный язык, как Бейсик, был удачной находкой.

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

Вторую жизнь Бейсик обрел с появлением в 1991 г. Visual Basic от Microsoft. Этот язык был схож с оригинальным только в плане синтаксиса, однако это была гораздо более современная версия.

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

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

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

Язык Си был разработан американцем Деннисом Ритчи в исследовательском центре Computer Science Research Center of Bell Laboratories корпорации AT&T в 1972 г. Разработка планировалась для создания операционной системы UNIX. Впоследствии он был перенесен в среду многих операционных систем и существует независимо от какой бы то ни было из них. Язык Си также применяется при написании программ для микроконтроллеров. Синтаксис этого языка лег в основу таких языков программирования как C++, C#, Java, PHP и др. [18, с.31]

PL/SQL (Procedural Language / Structured Query Language) — процедурное расширение языка SQL, которое было разработано корпорацией Oracle. PL/SQL встроен в разнообразные СУБД, а также применяется в качестве встроенного языка для средства быстрой разработки Oracle Forms, инструмента разработки отчётов Oracle Reports, а также в Oracle Application Express [19, с. 113].

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

Язык PL/SQL дает возможность определять следующие типы именованных блоков: процедуры, функции, объекты, пакеты. Каждый из них может быть скомпилирован и сохранен, как объект базы данных в определенной её схеме [17, с. 193].

Пакеты обеспечивают модульность для больших проектов, поскольку позволяют сгруппировать наборы именованных блоков кода. Кроме этого, пакеты дают возможность хранить состояния на время жизни сессии базы данных, доступное для функций и процедур, которые входят в пакет. Пакеты в PL/SQL состоят из спецификации и тела. В спецификации пакета могут содержаться определение констант, переменных, типов данных, объявление процедур и функций. В теле пакета определяются объявленные в спецификации процедуры и функции, кроме того оно может содержать блок кода инициализации пакета, определения внутренних констант, переменных, типов данных, процедур и функций [17, с. 198]. Все компоненты пакета, которые объявлены в его спецификации, доступны для использования вне пакета, в то время как тело пакета инкапсулирует реализацию этих компонентов, и извне недоступно. Тело и спецификация пакета можно модифицировать, компилировать и сохранять отдельно друг от друга.

FoxPro, как язык программирования, в большинстве случаев, использкется для создания файл-серверных реляционных СУБД, однако за счет гибких и богатых средств языка есть возможность разрабатывать и другие классы программ [7, с. 47]. Изначально FoxPro создавалась фирмой FoxSoftware, начиная с 1984 г. В 1992 г. FoxTechnologies была куплена Microsoft, впоследствии версии продукта сильно видоизменились и приобрели префикс «Visual».

2.2 характеристики и возможности декларативных языков программирования высокого уровня

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

SQL (Structured Query Language — Структурированный язык запросов) — язык управления реляционными базами данных [5, с. 66]. Сам по себе, SQL нельзя назвать Тьюринг-полным языком программирования, однако его стандарт дает возможность разрабатывать для него процедурные расширения, увеличиваюшие его функциональность до полноценного языка программирования [21, с. 16].

SQL был разработан в 70-х гг. В 1979 г. SQL был впервые опубликован, как коммерческий продукт Oracle V2. Первый официальный стандарт языка был принят ANSI в 1986 г., а ISO — в 1987 г.. С того времени были разработаны еще несколько версий стандарта, одни из них повторяли предыдущие с незначительными вариациями, в других присутствовали существенно новые черты [5, с. 69].

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

Подвидами декларативного программирования являются функциональное и логическое программирование. Функциональные языки - это языки искусственного интеллекта. Программа, написанная на функциональном языке, представляет собой последовательность функций и выражений, которые требуется вычислить. Основной структурой данных является связный список. Функциональное программирование в корне отличается от процедурного. Основными функциональными языками являются Lisp, Miranda, Haskel.

Лисп (Lisp) (от англ. LISt Processing — «обработка списков») — это семейство языков программирования, которые основаны на представлении программы в виде системы линейных списков, состояших из символов, которые притом являются основной структурой данных языка [14, с. 19]. Лисп является вторым по возрасту после Fortran языком программирования высокого уровня.

Язык Лисп был написан Дж. Маккарти в 1960 г. и предназначен для разработки программ для решения нечисленных задач. Понятие «список» оказалось весьма емким. В форме списков удобно представлять алгебраические выражения, элементы конечных групп, графы, множества, и прочие сложные объекты [15, c. 205] . Списки — наиболее гибкая форма представления данных в памяти компьютера. Поэтому вполне естественно, что удобный язык, который специально был разработан для обработки списков, стремительно набрал популярность.

В течение почти сорокалетней истории существования LISP появился ряд его диалектов: Common LISP, Mac LISP, Inter LISP, Standard LISP и другие. Они не отличаются принципиально, разница заключается в незначительно отличающемся наборе встроенных функций и небольшой разнице форм записи программ.

Главным достоинством Лиспа является его функциональная направленность, так как разработка происходит с помощью функций. Это дает возможность относительно простого написания и отладки больших программных комплексов [14, c. 44]. Понятность программ, четкое разграничение их функций, отсутствие побочных эффектов в ходе их выполнения —все это является обязательным требованием к разработке таких логически сложных задач, как задачи искусственного интеллекта.

Miranda— нестрогий чисто функциональный язык программирования со строгой полиморфной типизацией и развитой системой модулей. Язык был разработан профессором Дэвидом Тэрнером [17, с. 226]. Главные особенности языка Miranda заключаются в следуюшем:

  • чисто функциональный язык с полным отсутствием эффектов;
  • функции поддерживаются в качестве данных;
  • поддержка нестрогих функций и бесконечных размерностей (так называемый «ленивый» язык);
  • строгая полиморфная типизация;
  • абстрактные модули и типы данных;

Miranda является первым коммерческим чисто функциональным языком программирования. Первый интерпретатор Miranda для Unix-подобных ОС, написанный на языке C был разработан в 1985 г. Позже появился язык Haskell, который имеет большое сходство с Miranda.

Haskell — один из мошнейших функциональных языков с нестрогой семантикой. Язык получил своё название в честь математика Хаскелла Карри [12, с. 188]. Он является одним из наиболее популярных функциональных языков и активно развивается и в настояшее время.

Наиболее важные особенности Haskell:

  • ленивый (non-strict) язык;
  • чисто функциональный (т.е не содержит конструкций, неявно зависящих от состояния среды или ее изменяющих);
  • включает в себя простой и логичный механизм перегрузки функций, известный как «классы типов». Например, классы типов обеспечивают возможности, сопоставимые с возможностями шаблонов C++, но при этом сохраняется возможность раздельной трансляции;
  • императивные возможности выражаются с помощью так называемых монад, понимание которых — одна из наибольших проблем при изучении Haskell, но она стоит того, если в ней разобраться [13, с.299] .

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

Пролог (Prolog) — это представитель логического программирования, на котором разработаны практически все экспертные системы. Prolog (от «PROgramminginLOGic») является декларативным языком программирования общего назначения [19, с. 401].

Prolog был создан в 1972 г. и мел своей целью сочетание использования логики с представлением знаний. С того времени у него появился ряд диалектов, которые расширяют основу языка разнообразными возможностями. Стандарт языка появился в ISO/IEC 13211-1 (1995 г.).

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

Prolog был разработам под влиянием более раннего языка Planner, из которого был позаимствован ряд идей:

  • обратный логический вывод, т.е. вызов процедур по шаблону, который предполагается целью;
  • построение структуры управляющей логики в форме вычислений с откатами;
  • принцип «отрицание, как неудача»;
  • использование разных имен для разных сущностей и т.д. [19, с. 406]

Главной парадигмой, характеризуюшей язык Prolog, является логическое программирование. Программы, которые разработаны на чистом Prolog, описывают отношения между обрабатываемыми сущностями при помощи клауз Хорна (т.е. формул вида Голова — Тело, которая читается как «чтобы доказать/решить Голову, следует доказать/решить Тело» ) [13, с. 108].

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

Цель выполнения программы на Prolog — оценить один целевой предикат. Имея в наличии данный предикат и набор правил и фактов, заданных в программе, Prolog ишет привязки (значения) переменных, при которых целевой предикат принимает истинное значение [13, с. 110].

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

ОСОБЕННОСТИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

ОБЪЕКТНЫЕ ЯЗЫКИ, ИСПОЛЬЗУЕМЫЕ ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ

Объектно-ориентированные языки явились дальнейшим шагом в развитии процедурных языков. Основой их концепции является совокупность программных объектов [13, c. 246] . Разработка программы на объектном языке заключается в представлении последовательности создания экземпляров объектов и использовании их методов. К объектно-ориентированным языкам можно отнести первые языки — Simula и SmallTalk, позднее появились C++, Java.

Simula. В 1966 г. была разработана первая версия языка Simula, которая позже стала известна, как Simula 1. Язык Simula, имеюшая название Simula 67, была впервые описана в 1970 г.

Язык был разработан сотрудниками Норвежского Вычислительного Центра Осло и Кристеном Нюгором для моделирования сложных систем. Язык Simula основывался на идеях Algоl, но получил дополнительные механизмы наследования и инкапсуляции [12, с. 308]. Еще более существенным шагом в развитии стало то, что Simula, предназначенная для описания систем и моделирования, утвердил дисциплину разработки программ, отражающих словарь предметной области.

SmallTalk — объектно-ориентированный язык программирования с динамической типизацией. Был разработан в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглероми и др. в 1970-х гг. Smalltalk продолжает активно совершенствоваться и имеет преданное сообщество пользователей.

Smalltalk оказал большое влияние на развитие многих других языков, таких как Objective-C, Actor, Java и Ruby [22, с. 511]. Многие идеи 80-х и 90-х гг. по разработке программ появились в сообществе Smalltalk. К ним можно отнести рефакторинг, шаблоны проектирования применительно к программному обеспечению, карты Класс-Обязанности-Взаимодействие и экстремальное программирование в целом [22, с. 516].

Си++ (C++) — объектно-ориентированное расширения языка Си, разработанное Бьярном Страуструпом в 1980 г. Огромное число новых мощных возможностей, которые позволили резко увеличить производительность разработчиков, объединилось с унаследованной от языка Си определенной низкоуровневостью. В результате создание сложных и надежных программ потребовало от программистов высокого уровня профессиональной подготовки.

Си++ является компилируемым строго типизированным языком программирования общего назначения. В языке поддерживаются различные парадигмы программирования: процедурная, обобщённая, функциональная. Самое значительное внимание уделено поддержке объектно-ориентированного программирования [9, с.59].

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

Первый выпуск C++ для коммерческого использования состоялся в 1985 г., в 1989 г. появилась вторая версия языка. В 90-х гг. язык стал одним из самых используемых языков программирования общего назначения. Первым официальным стандартом языка стал ISO/IEC 14882:1998, более известный как C++98 [6, с. 87]. В 2003 г. появилась его дополненная версия, C++03, а в 2005 г. был опубликован документ, в котором описывались расширения стандартной библиотеки — TR1. Он не является стандартом, но большинство актуальных компиляторов C++ поддерживает его. Наконец, в 2011 г. был принят текущий стандарт, C++11.

Visual Basic является языком программирования, а также интегрированная среда разработки программного обеспечения от корпорации Microsoft. В Visual Basic сочетаются процедуры и элементы объектно-ориентированных, а также компонентно-ориентированных языков программирования. Интегрированная среда разработки Visual Basic включает в себя инструменты для визуальной разработки интерфейса пользователя, редактор кода, а также инструменты для отладки приложений.

Visual Basic также является прекрасным средством для быстрой разработки приложений (RAD),  баз данных для операционных систем семейства Microsoft Windows [13, c. 120]. Большое число готовых компонентов, которые поставляются вместе со средой, необходимы для помоши разработчику сразу же приступить к созданию бизнес-логики приложения и не отвлекаться на написание кода запуска программы, подписки на события и других механизмов, поскольку Visual Basic выполняет их автоматически.

Первое признание профессиональными программистами Visual Basic получил после выхода версии 3. Окончательное был признан, как полноценное средство программирования для Windows при выходе версии 5. Версия VB6, входящая в состав Microsoft Visual Studio 6.0, явилась по-настоящему зрелым и функционально наполненным продуктом [12, с. 187] .

Delphi является  императивным структурированным объектно-ориентированным языком программирования, для которого характерна строгая статическая типизация переменных. В основном Delphi используется для разработки прикладного программного обеспечения [10, с.13].

Этот язык программирования является диалектом языка Object Pascal. Первоначально среда разработки Delphi предназначалась только для разработки приложений Microsoft Windows, впоследствии появился вариант для платформ Linux под торговой маркой Kylix, однако после выхода в 2002 г. Kylix 3 его разработка прекратилась, и вскоре было объявлено о поддержке Microsoft.NET, которая, в свою очередь, была прекращена после выхода Delphi 2007. На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, появилась возможность разрабатывать приложения для Apple Mac OS X, iOS , Google Android, а также Linux Server x64 [10, с.19].

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

Для сравнения: сложность объектного C++, по сравнению с C, увеличилась весьма существенно, что затруднило его изучение в качестве первого языка программирования, чего нельзя сказать о Delphi по сравнению с Pascal [12, с.193].

Ява (Java), как язык программирования, был разработан компанией Sun в начале 60-х гг. Си++ и был предназначен для упрошения разработки приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Однако основная особенность этого языка — это компиляция не в машинный код, а в платформо-независимый байт-код, который может исполняться с помощью интерпретатора — виртуальной машины Javа, машины JVM (Java Virtyal Machine), версии которой сушествуют на сегодня для любых платформ [19, с. 321]. Благодаря Java-машинам, программы на Java можно переносить и на уровне исходных текстов, и на уровне обычного байт-кода, поэтому по популярности язык Ява находится на сегодняшний день на втором месте после Бейсика.

Первоначально новый язык программирования назывался Oak и создавался для бытовой электроники, но по мере развития был переименован в Java и стал применяться для разработки апплетов, приложений и серверного программного обеспечения.

Язык Java стал необходимым для создания интерактивных продуктов для сети Internet. Фактически, наибольшее количество архитектурных решений, принятых при создании Java, было основано на желании предоставить синтаксис, сходный с C и C++ [19, с. 326]. В Java применяются практически те же самые соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнения кода. Java унаследовала все самые лучшие черты C++.

Три ключевых элемента объединены в технологии языка Java:

  • предоставляет для широкого пользования свои апплеты — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, которые встаиваются в страницы Web. Апплеты Java могут настраиваться и распространяться пользователям с такой же легкостью, как любые HTML-документы [12, с. 360];
  • предоставляет мошные возможности объектно-ориентированной разработки приложений, в сочетании простого и знакомого синтаксиса с надежной и удобной в работе средой разработки. Это позволяет широкому кругу разработчиков быстро писать новые программы и новые апплеты;
  • предоставляет разработчику богатый набор классов объектов для понятного абстрагирования многих системных функций, которые используются при работе с окнами, сетью и для ввода-вывода. Основная черта этих классов заключается в том, что они способны обеспечить разработку независимых от используемой платформы абстракций для широкого спектра системных интерфейсов [3, с. 211].

ЯЗЫКИ СЦЕНАРИЕВ И ОБЪЕКТНЫЕ ЯЗЫКИ, ОРИЕНТИРОВАННЫЕ НА РАБОТУ С БАЗАМИ ДАННЫХ

Языки сценариев, или как их еше называют скрипты, также относятся к объектно-ориентированным языкам программирования. Они используются для разработки программ, исполняемых в определенной программной среде. Тексты программ, которые написаны на языке сценариев, можно встраивать в тело Html-документа [11, с. 253]. Первыми скриптами были Perl и Python, которые первоначально разрабатывались для операционной системы Unix, а уже в последствии были разработаны версии языков для операционных систем Windows и Macintosh. Для создания программ на языке сценариев необходимо знать процедуры и функции системных библиотек.

Perl — это высокоуровневый интерпретируемый динамический язык программирования общего назначения, разработанный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extractionand Report Language, что означает «практический язык для извлечения данных и составления отчётов» [20, с.66].

На сегодняшний день Perl содержится практически в каждом дистрибутиве Linux и других UNIX-систем, портирован на Windows и многие другие платформы. Администраторы во все мире применяют его для автоматизации своих повседневных задач. Репозиторий CPAN содержит множество модулей для языка буквально на все случаи жизни.

Python — высокоуровневый язык программирования общего назначения, который ориентирован на повышение производительности программиста и читаемости кода. Синтаксис ядра Python минималистичен, однако в тоже время стандартная библиотека включает большой объём полезных функций [23, c.45]

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

Эталонной реализацией Python является интерпретатор CPython, который поддерживает большинство активно используемых платформ. Он распространяется под свободной лицензией Python Software Foundation License, которая позволяет использовать его без ограничений в любых приложениях [23, с. 49].

Python, как язык программирования, активно развивается, появляются новые версии, к примеру, с добавлением/изменением языковых свойств, которые выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, роль которых выполняет CPython.

PHP (Hypertext Preprocessor — препроцессор гипертекста) — скриптовый язык общего назначения, активно используемый для разработки веб-приложений. В настояший момент язык поддерживается большинством хостинг-провайдеров и является одним из лидеров среди языков, использующихся для разработки  динамических веб-сайтов.

Язык и его интерпретатор (ZendEngine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL [25, с. 39].

Среди веб-программистов, в частности серверной части, PHP является один из самых популярных сценарных языков, наряду с JSP, Perl и другими. Его популярность в области построения веб-сайтов объясняется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений [19, с. 413]. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в мае 2016 г. PHP находился на 6 месте среди языков программирования. Крупнейшими сайтами, использующим PHP, являются Facebook, Wikipedia и др. Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов.

JavaScript — мультипарадигменный язык программирования. Поддерживает такие стили программирования, как объектно-ориентированный, императивный и функциональный стили. JavaScript обычно применяется как встраиваемый язык для программного доступа к объектам приложений [11, с.90]. Наиболее активно используется в браузерах в качестве языка сценариев для придания интерактивности веб-страницам.

Основные черты архитектуры JavaScript: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

JavaScript развивалась под влиянием многих языков программирования, при его создании преследовалась цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами [22, с. 519]. Язык JavaScript не является собственностью какой-либо компании или организации, что отличает его от ряда языков программирования, используемых в веб-разработке.

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

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

  • объекты с возможностью интроспекции;
  • функции как объекты первого класса;
  • автоматическое приведение типов;
  • автоматическая сборка мусора;
  • анонимные функции [11, с.91].

В языке отсутствуют такие полезные функции, как:

  • стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода-вывода, базовых типов для бинарных данных;
  • стандартные интерфейсы к веб-серверам и базам данных;
  • система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их [13, с. 192].

Представителем объектных языков, ориентированных на работу с базами данных, является Visual Fox Pro (VFP) — среда разработки систем баз данных, включающая объектно-ориентированную реляционную СУБД, объектно-ориентированный язык программирования для разработки приложений баз данных и систему построения отчётов [7, с.112].

Основой для данного программного продукта послужила система FoxPro, язык которой относится к семейству языков xBase, разработанных на базе синтаксиса языка программирования dBase. Другими членами данного семейства являются Clipper и Recital.

Заключение

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

    1. Язык высокого уровня [high-level language] - язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные кодыпрограммами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран , Бейсик , Паскаль , Си и др.
    2. Самая распространенная классификация языков программирования основана на принципе их организации, или парадигме. По этой классификации языки подразделяются на процедурно-ориентированные, объектно-ориентированные и декларативные.
    3. Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик. Представители второго типа – Лисп, Пролог, Снобол и др.
    4. Также сушествует классификация языков программирования по типам задач.
    5. Процедурные языки программирования предоставляют возможность разработчику определять каждый шаг в процессе решения задачи. Особенность таких языков программирования заключается в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.
    6. Декларативные языки программирования основаны на передигме, в которой задаётся спецификация решения задачи, т.е. описывается, в чем заключается проблема и каков ожидаемый результат.
    7. Объектно-ориентированные языки программирования — языки, построенные на принципах объектно-ориентированного программирования. В основе концепции объектно-ориентированного программирования лежит понятие объекта, который объединяет в себе поля (данные об объекте) и методы (действия, выполняемые объектом).

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

Список использованных источников

  1. Артемов И. Л. Введение в программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel / И.Л. Артемов, М.В. Национальный Открытый Университет «ИНТУИТ», 2016. - 260 с.
  2. Ачкасов В. Ю. Введение в программирование на Delphi: курс / В.Ю. Ачкасов. – М.: Интернет-Университет Информационных Технологий, 2008. - 260 с.
  3. Баженова И. Ю. Введение в программирование: учебное пособие / И.Ю. Баженова, В.А. Сухомлин. – М.: Интернет-Университет Информационных Технологий, 2007. - 327 с.
  4. Баженова И.Ю. SQL Windows. SAL – язык приложений баз данных с архитектурой клиент/сервер / И.Ю. Баженова. – М.: Диалог-МИФИ, 2006. - 252 с.
  5. Баженова И.Ю. SQL и процедурно-ориентированные языки / И.Ю. Баженова. – М.: Национальный Открытый Университет «ИНТУИТ», 2016. - 167 с.
  6. Баженова И.Ю. Visual С++ 6.0 (VISUAL STUDIO 98) : уроки программирования / И.Ю. Баженова. – М.: Диалог-МИФИ, 2011.- 345 с.
  7. Баженова И.Ю. Visual Fox Pro 3.0 / И.Ю. Баженова И. Ю. – М.: Диалог-МИФИ, 2016, 262 с.
  8. Бартеньев О.В.VISUAL FORTRAN : новые возможности: пособие / О.В. Бартеньев. – М.: Диалог-МИФИ, 2009. - 290 с.
  9. Белоцерковская И. Е. Алгоритмизация. Введение в язык программирования С++ / И.Е. Белоцерковская, Н.В. Галина, Л. Ю. Катаева. – М.: Национальный Открытый Университет «ИНТУИТ», 2016. - 197 с.
  10. Бескоровайный И. В. Азбука Delphi : программирование с нуля: учебное пособие / И.В. Бескоровайный. – Новосибирск: Сибирское университетское издательство, 2008. - 112 с.
  11. Брокшмидт К. Введение в разработку приложений для Windows 8 с использованием HTML, CSS и JavaScript / К. Брокшмидт. – М.: Национальный Открытый Университет «ИНТУИТ», 2016. - 460 с.
  12. Голицына О. Языки программирования / О. Голицына, Т. Партыка, И. Попов, — М.: Национальный Открытый Университет «ИНТУИТ», 2010 - 400 с.
  13. Головин И. Языки и методы программирования / И. Головин, И. Волкова, 2012 - 304 с.
  14. Городняя Л. В. Введение в программирование на Лиспе /Л.В. Городняя, Н.А. Березин. – М.: Интернет-Университет Информационных Технологий, 2007.- 118 с.
  15. Зыков С. В. Введение в теорию программирования. Функциональный подход / С.В. Зыков. – М.: Национальный Открытый Университет «ИНТУИТ», 2016. - 153 с.
  16. Зыков С.В. Основы современного программирования. Учебное пособие / С. В.Зыков. — М.: Высшая школа, 2012 - 444 с.
  17. Кауфман В. Языки программирования. Концепции и принципы /В. Кауфман. — М.: Высшая школа, 2010 - 464 с.
  18. Кетков Ю. Л. Введение в языки программирования C и C++: курс / Ю.Л. Кетков. - М.: Интернет-Университет Информационных Технологий, 2008. - 252 с.
  19. Мейер Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. – М.: Национальный Открытый Университет «ИНТУИТ», 2016 г. - 543 с.
  20. Мельников С.В. Perl для профессиональных программистов. Регулярные выражения / С.В. Мельников.- М.: Интернет-Университет Информационных Технологий, 2007. -  200 с.
  21. Нестеров С. А. Интеллектуальный анализ данных средствами MS SQL Server 2008 / С.А. Нестеров. М.: Национальный Открытый Университет «ИНТУИТ», 2016. - 338 с.
  22. Орлов С. Теория и практика языков программирования / С. Орлов.— М.: Высшая школа, 2013 - 688 с.
  23. Северенс Ч. Введение в программирование на Python / Ч. Северенс. – М.: Национальный Открытый Университет «ИНТУИТ», 2016, 231 с.
  24. Седжвик Р. Алгоритмы на С++ / Р.Седжвик. – М.: Национальный Открытый Университет «ИНТУИТ», 2016 . - 1 773 с.
  25. Строганов А. С. Ваш первый сайт с использованием PHP-скриптов: учебное пособие / А.С. Строганов. – М.: Диалог-МИФИ, 2015. - 288 с.

ПРИЛОЖЕНИЕ 1

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКГО УРОВНЯ ПО ТИПАМ ЗАДАЧ

Тип задачи

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

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

ЛИСП, Пролог, Cоmmоn Lisp, РЕФАЛ, Planner, QLisp

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

fun, Apl, ML, SML, параллельный Кобол, ОВС-Алгол, ОВС-фортран

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

параллельный Кобол, ОВС-Алгол, ОВС-фортран

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

С, С++, Симула, Smalltalk, Java

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

Алгол, фортран, Кобол, Бейсик, Паскаль

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

Perl, SQL, DDL, DSDL