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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

Задачи курсовой работы были сформулированы в соответствии с поставленной целью и состот в раскрытии таких вопросов, как:

  • История развития языков программирования;
  • Языки программирования, особенности и критерии отбора;
  • Виды языков программирования;
  • Классификация языков программирования по уровням;
  • Языки программирования баз данных;
  • Языки программирования для интернета.

При написании курсовой работы был проведен анализ последних исследований и публикаций. Отечественными учеными активно исследуются проблемы разработки и внедрения новейших языков программирования. За основу были взяты научные и учебные материалы, изданные начиная с 2010 года таких известных программистов, как И.Г. Головин, И.А. Волкова, Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер, О.Л. Голицына, Т.Л. Партыка, И.И. Попов, Н. А. Давыдова, Е. В. Боровская, Е.Л. Федотова, А.А. Федотов.

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

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

1. Развитие и содержание языков программирования

1.1 История развития языков программирования

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

В 40-х годах, когда Грейс Хоппер еще только думала о работе под началом Джона Моучли, последний разработал систему Short Code. Это был уже язык программирования высокого уровня. Программист записывал задачу в виде определенных математических формул, а затем с помощью специальной таблицы переводил последовательно один символ за другим, преобразовывая формулы в двухлитерные коды. Далее специальная компьютерная программа, в свою очередь, преобразовывала их в двоичный машинный код.[1]

В 1951 году на основе разработок своего шефа Хоппер впервые в мире создала компилятор и ввела данный термин. Компилятор Хоппер выполнял функцию объединения команд и в процессе трансляции организовывал особым образом подпрограммы, выделял память компьютера, преобразовывал команды высокого уровня, в то время это были псевдокоды, в машинные команды.[2]

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

Первый, который получил наибольшее распространение, был Фортран. Первую версию этого языка разработала группа программистов фирмы IBM в 1954 году. В середине 60-х сотрудники Дартмутского колледжа Джон Кемени и Томас Курц создали специализированный язык BASIC, состоявший из самых простых слов английского языка.

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

Первым удачным вариантом стал Programm Language One (PL/I). Затем появился ALGOL (ALGOrithmic Language - алгоритмический язык), предназначенный для записи алгоритмов. Представлявших собой последовательность процедур, которые применялись для решения определенных задач.[3]

Развитие идеи ALGOL о структуризации алгоритмов получило наивысшее отражение в начале 70-х годов, когда разрабатывался язык Паскаль. История создания его отличается тем, что швейцарский ученый Никлаус Вирт изначально разрабатывал его исключительно как учебный. И он по сей день является одним из основных языков обучения программированию в школах и высших учебных заведениях.[4]

Навести порядок в хаосе трансляторов и учредить комитет, который бы разработал один универсальный язык, решил Пентагон в 1975 году. Новый язык получил название АDА.[5]

В истории языков программирования большое место принадлежит языку Си (1972), который стал очень популярным среди разработчиков систем ПО. История создания языка Си объединяет черты как машинно-ориентированного языка, так и языка высокого уровня, что открывает программисту допуск ко всем машинным ресурсам. Данную возможность не обеспечивали ни Бейсик, ни Паскаль.[6]

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

Объектно-ориентированный язык формирует окружение как множество независимых объектов, каждый из которых ведет себя, как отдельный компьютер. Эти объекты можно применять для решения задач в качестве неких «черных ящиков», не вникая в механизмы их функционирования. Среди профессионалов больше всех популярен Си++, а для более широкого круга предпочтительны Delphi и Visual Basic.[7]

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

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

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

В 1954 году в недрах IBM группой разработчиков во главе с Бэкус (John Backus) был создан язык программирования Fortran. Это первый шаг программирования высокого уровня. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры. Язык Фортран использовался и используется на сегодняшний день для научных вычислений.[10]

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

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

PL / 1. В 1964 году все та же корпорация IBM создала язык PL / 1, которая была призвана заменить Cobol и Фортран. Язык имел исключительное разнообразие синтаксических конструкций. В нем впервые появилась обработка исключительных ситуаций и поддержка параллелизма. Надо отметить, что синтаксическая структура языка была крайне сложной. Язык так и не стал популярным вне мира IBM.

В 1963 году Дартмурским колледжем (Dartmouth College) был создан язык программирования BASIC (Beginners 'All-Purpose Instruction Code - многоцелевая речь символических инструкций для начинающих).

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

Надо сказать, что BASIC действительно стал языком, на котором учатся программировать. Было создано несколько мощных реализаций BASIC, поддерживающих самые современные концепции программирования, к примеру Microsoft Visual Basic.

В 1960 году командой во главе с Петером Науру (Peter Naur) был создан язык программирования Algol. Этот язык дал начало целому семейству Алгол-подобных языков (важнейший представитель - Pascal).

В 1968 году появилась новая версия языка. Она не нашла такого широкого практического применения, как первая версия, но была весьма популярна в кругах теоретиков. Язык был достаточно интересен, поскольку обладал многими уникальными на тот момент характеристиками.

В 1970 году Никлаусом Виртом был создан язык программирования Pascal. Язык замечателен тем, что это первый широко распространенный язык для структурного программирования.[12]

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

В 1972 году Керниганом и Ритчи был создан язык программирования C. Он создавался как язык для разработки операционной системы UNIX. В 1986 году Бьярн Страуструп создал первую версию языка C ++, добавив в язык C объектно-ориентированные черты, взятые из Simula, и исправив некоторые ошибки и неудачные решения языка. C ++ продолжает совершенствоваться и в настоящее время.

В 1998 году вышла новая (третья) версия стандарта, которая содержит в себе некоторые весьма существенные изменения. Язык стал основой для разработки современных больших и сложных проектов.

В 1995 году в корпорации Sun Microsystems Кеном Арнольдом и Джеймсом Гослингом был создан язык Java. Он наследовал синтаксис C и C ++ и был избавлен от некоторых неприятных черт последнего. Отличительной особенностью языка является компиляция в код некоей абстрактной машины, для которой затем пишется эмулятор (Java Virtual Machine) для реальных систем.[13]

В 1983 году под эгидой Министерства Обороны США был создан язык Ada. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции.[14]

В 1995 году был принят стандарт языка Ada 95, которая развивает предыдущую версию, добавляя в нее обьекную ориентированность и исправляя некоторые неточности.[15]

1.2 Языки программирования, особенности и критерии отбора

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

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

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

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

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

Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данными и управления процессом вычислений.

Отбор языка программирования, как правило, определяется тремя важными условиями:

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

Относительно характеристики собственно языка программирования, наиболее важными, с точки зрения его учебного использования, являются: назначение; тип, распространение; особенности синтаксиса.[19]

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

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

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

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

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

1) синтаксис языков Basic и Visual Basic;

2) как Pascal и Delphi;

3) синтаксис языков, подобных языка C (C ++, C #, PHP, Java и др.).[21]

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

Проблема перехода с учебного на профессиональный язык программирования является актуальной для большинства специалистов по разработке программного обеспечения.Использование в обучении языков программирования с «С-образным синтаксисом» позволяет практически избежать проблем такого перехода.

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

2.1 Виды языков программирования

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

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

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

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

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

Большинство языков этого поколения успешно применяется и сегодня.

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

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

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

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

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

Используя процедурную язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов. К процедурным языкам относятся: Ada, Basic, C, Pascal.

Динамическае языкиь. Позволяют определять типы данных и осуществлять синтаксический анализ и компиляцию «на лету», непосредственно на этапе выполнения. Динамические языки больше подходят для быстрой разработки приложений. К динамическим языкам относятся: Perl, Python, PHP, Ruby, JavaScript. Visual Basic также обладает некоторыми динамическими характеристиками.

Учебные языки программирования. В качестве них разрабатывались такие языки как BASIC и Pascal. С разработанным для обучения языком ABC появился Python. Популярным языком, разработанной специально для образования является LOGO. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch.

Объектно-ориентированный язык программирования (ОО-язык) - язык, построенный на принципах объектно-ориентированного программирования. В основе концепции объектно-ориентированного программирования лежит понятие объекта - некой субстанции, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).[29]

К объектно-ориентированным языкам относятся: C #, C ++, Java, Delphi, Objective-C Object Pascal, Perl, Python, ActionScript (3.0), JavaScript, Ruby, Ada, PHP.[30]

Язык скриптов (язык сценариев) - язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. В приложении, сценарий (скрипт) - это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.[31]

К языкам скриптов относят: AngelScript, Perl, PHP, Python, REBOL, Ruby, AutoLISP, Game Maker Language, VBA, ActionScript, JavaScript.

Сюда же относятся командные оболочки: AppleScript, COMMAND.COM и cmd.exe, sh (bash, csh, ksh), Visual Basic Script.

Для погружения в программирование нужно всего 3 вещи:

  • Решить, с какого языка / технологии начать.
  • Решить, на каком ресурсе учиться.
  • Выделить время на самое программирования.[32]

Некоторые люди начинают с относительно низко уровневого программирования на C и C ++. Другие выбирают более традиционный путь, изучая Java или C #. Так же как есть и те, кто начинает с высокоуровневых или скриптовых языков вроде Python, Ruby или JavaScript. В таких подходах есть много преимуществ, однако есть и другие пути, просто эти самые популярные.[33]

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

Ниже описана классификация языков программирования.

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

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

Различные типы процессоров имеют разные наборы команд. Если язык программирования ориентированный на конкретный тип процессора и учитывает его особенности, то он называется на языке программирования низкого уровня. В данном случае «низкий уровень» не значит «плохой». Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

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

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

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

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

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

Примеры: C, C ++, Assembler.

Плюсы и минусы языка:

Плюсы:

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

Минусы:

  • Дополнительный контроль означает дополнительные сложности, которые могут сделать вроде бы простые задачи более тяжелыми в реализации.
  • Управлять памятью может быстро стать очень сложно.
  • Легко закопаться в синтаксисе и мелких деталях вместо того, чтобы понимать концепцию и общую картину.
  • Требуется предварительная оптимизация.
  • Изменения в плохой архитектуре могут быть болезненными. А хорошую архитектуру трудно придумать.
  • Относительно бедная стандартная библиотека означает, что часто необходимо полагаться на третьих лиц или изобретать колесо.
  • Необходимо часто вставлять вспомогательные куски кода (boilerplate), что увеличивает время на разработку.[40]

Языки среднего уровня программирования

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

Примеры: Java, C #.

Плюсы:

  • Управлять памятью необязательно, но при желании вы можете это делать самостоятельно.
  • Богатые стандартные библиотеки.
  • Компилируется в байт-код, что упрощает взаимодействие с другими языками.[41]

Минусы:

  • Многие абстракции мешают новичку в освоении концепций, так как непонятно, почему они созданы именно таким образом.
  • Байт-код требует установленной среды исполнения.
  • До сих пор нужно часто вставлять стандартные куски кода (boilerplate), несмотря на наличие абстракций.

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

Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом.[42]

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

Таблица 1

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

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

Неструктурные (BASIC, FORTRAN)

Структурные (Pascal, Algol)

Логические (Prolog, Simula)

Функциональные (Lisp, ЛОГО)

Объектно-ориентированные (Pascal, C++, Java)

Языки программирования баз данных (SQL, Oracle)

Языки программирования для Интернет (HTML, Perl, Vrml)

«Таблица составлена по Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – 184 с.»

Среди характеристик часто встречаются: сильное абстрагирование, динамическая и / или слабая типизация, полностью независимое управление памятью и / или наличие среды исполнения.[44]

Примеры: Python, Ruby, JavaScript, Common Lisp.

Плюсы:

  • Абстракции делают сложные задачи простыми.
  • В целом все просто и интуитивно, даже при внесении изменений.
  • Сравнительно большие стандартные библиотеки означают, что то, что необходимо сделать, скорее всего уже реализовано и доступно.
  • Меньше вставок стандартного кода (boilerplate) - синтаксис значительно проще.

Минусы:

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

2.3 Языки программирования баз данных

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

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

В базах данных удобно хранить различные данные с справочников, картотек, журналов, бухгалтерского учета и т.д.

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

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

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

Для управления большими базами данных и их эффективной обработкой, были разработаны системы управления базами данных.

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

Сегодня в мире насчитывается пять ведущих производителей системы управления базами данных, это Microsoft (SQL Server), IBM (db2), Oracle, Sybase, Software AG (Adabas). Их продукты направлены на поддержку одновременной работы тысячи пользователей в сети, а базы данных могут храниться на несколько серверах.[49]

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

Родоначальником современных языков программирования баз данных для персональных компьютеров принято считать системы управления базами данных dBase. Затем для нее были созданы компиляторы, появились системы управления базами данных FoxPro Clipper, поддерживающие диалекты этого языка.

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

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

Объектно-реляционные базы данных – объектно-ориентированные возможности (определение новых типов данных и функций их обработки) встраиваются в реляционное основание. [51]

Язык SQL сочетает средства ЯОД и ЯМД, то есть позволяет определять схему реляционной БД и манипулировать данными.

Взаимодействие между прикладными программами и сервером базы данных должно поддерживаться языком программирования, т.е. в языке программирования должен быть предусмотрен механизм отправки операторов SQL серверу и обработки результатов, возвращенных сервером.[52]

2.4 Языки программирования для интернета

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

HTML - язык разметки веб-страниц, состоящий из html-элементов, или тегов. Теги – строительные блоки, они формируют структуру веб-страницы и не имеют визуального отображения. [53]

HTML (HyperText Markup Language) – язык гипертекстовой разметки, позволяющий задать местоположение элементов веб-страницы. Просмотр HTML-документа осуществляется с помощью веб-браузера, который отображает документ на основе исходного кода, описывающего структуру HTML-документа.

Perl - до появления РНР широко использовался ранее в веб проектах, в восьмидесятых годах был разработан Ларри Уоллом. Задумывался как средство эффективной обработки больших текстовых файлов.[54]

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

Perl (Practical Extraction and Report Language ) является переносимым, интерпретируемым языком, идеально приспособленным для многочисленных приложений по обработке текста. Perl поддерживает структурированные программные конструкции, как и большинство языков программирования высокого уровня, и предлагает богатство встроенных возможностей, накопленных им за годы эволюции среде UNIX. [56]

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

В течение нескольких последних десятилетий сфера информационных и

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

Заключение

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

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

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

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

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

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

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

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

Языки программирования - искусственные языки. От природных они отличаются ограниченным числом "слов", значение которых понятны транслятора, и очень строгими правилами записи команд (операторов).

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

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

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

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

  1. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – 440 с.
  2. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. - 208 c.
  3. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. - 368 c.
  4. Безручко, В. Т. Информатика курс лекций: Учебное пособие / В.Т. Безручко . - М.: ИД. "Форум" : ИНФРА - М. 2013-432.с
  5. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. - 400 c.
  6. Голицина, О.Л., Попов И.И. Программирование на языках высокого уровня / О.Л. Голицина. - М.: ФОРУМ, 2011. - 496 с
  7. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. - 304 c.
  8. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. - 134 c.
  9. Давыдова, Н. А. Программирование: учебное пособие / Н. А. Давыдова, Е. В. Боровская. - 2 изд. - М. : БИНОМ. Лаборатория знаний, 2012. - 238 с. 
  10. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – 336
  11. Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. - 184 c.
  12. Ляхович, В.Ф. Основы информатики / В.Ф. Ляхович, В.А. Молодцов, Н.Б. Рыжикова. - М.: КноРус, 2016. - 348 с.
  13. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. - 236 c.
  14. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- 480с.

Приложение

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

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

Процедурные

Функциональные

Логические

Объектно-ориентированные

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

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

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

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

  1. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 28

  2. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. – С. 19

  3. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – С. 105

  4. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 40

  5. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. – С. 31

  6. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- С. 219

  7. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. – С. 28

  8. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. – С. 38

  9. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 31

  10. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 43

  11. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – С. 107

  12. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. – С. 39

  13. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- С. 222

  14. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 48

  15. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. – С. 39*

  16. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – С. 108

  17. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- С. 221

  18. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 39

  19. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. – С. 39

  20. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 103

  21. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. – С. 45

  22. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 52

  23. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. – С. 44

  24. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 43

  25. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 111

  26. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – С. 112

  27. Безручко, В. Т. Информатика курс лекций: Учебное пособие / В.Т. Безручко . - М.: ИД. "Форум" : ИНФРА - М. 2013-С. 166

  28. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 62

  29. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 48

  30. Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. – С. 62

  31. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 114

  32. Ляхович, В.Ф. Основы информатики / В.Ф. Ляхович, В.А. Молодцов, Н.Б. Рыжикова. - М.: КноРус, 2016. – С. 234

  33. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. – С. 62

  34. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. – С. 68

  35. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 118

  36. Безручко, В. Т. Информатика курс лекций: Учебное пособие / В.Т. Безручко . - М.: ИД. "Форум" : ИНФРА - М. 2013-С. 169

  37. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 58

  38. Ляхович, В.Ф. Основы информатики / В.Ф. Ляхович, В.А. Молодцов, Н.Б. Рыжикова. - М.: КноРус, 2016. – С. 236

  39. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. – С. 104

  40. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 103

  41. Давыдова, Н. А. Программирование: учебное пособие / Н. А. Давыдова, Е. В. Боровская. - 2 изд. - М. : БИНОМ. Лаборатория знаний, 2012. – С. 126 

  42. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. – С. 108

  43. Голицина, О.Л., Попов И.И. Программирование на языках высокого уровня / О.Л. Голицина. - М.: ФОРУМ, 2011. – С. 53

  44. Голицина, О.Л., Попов И.И. Программирование на языках высокого уровня / О.Л. Голицина. - М.: ФОРУМ, 2011. – С. 58

  45. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 106

  46. Алексеев, Е.Р. Учебник по программированию / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. – М.: ALT Linux: Издательский дом ДМК-пресс, 2010. – С. 116

  47. Безручко, В. Т. Информатика курс лекций: Учебное пособие / В.Т. Безручко . - М.: ИД. "Форум" : ИНФРА - М. 2013-С. 173

  48. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. – С. 60

  49. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 157

  50. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- С. 230

  51. Давыдова, Н. А. Программирование: учебное пособие / Н. А. Давыдова, Е. В. Боровская. - 2 изд. - М. : БИНОМ. Лаборатория знаний, 2012. – С. 129

  52. Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – С. 30

  53. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ ИНФРА-М, 2013. – С. 187

  54. Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – С. 32

  55. Федотова, Е.Л., Федотов, А.А. Информатика. Курс лекций : Учеб. Псоб / Е.Л. Федотова, А.А. Федотов. - М.: ИД. "Форум" : ИНФРА - М. 2011.- С. 235

  56. Иванова, Г.С. Технология программирования / Г.С. Иванова. – М.: КноРус, 2011. – С. 114

  57. Давыдова, Н. А. Программирование: учебное пособие / Н. А. Давыдова, Е. В. Боровская. - 2 изд. - М. : БИНОМ. Лаборатория знаний, 2012. – С. 135