Файл: Современные языки программирования (Классификация языков программирования по уровням).pdf
Добавлен: 25.05.2023
Просмотров: 398
Скачиваний: 2
СОДЕРЖАНИЕ
1. Развитие и содержание языков программирования
1.1 История развития языков программирования
1.2 Языки программирования, особенности и критерии отбора
2.Классификация языков программирования
2.1 Виды языков программирования
2.2 Классификация языков программирования по уровням
2.3 Языки программирования баз данных
Функция: язык программирования предназначен для написания компьютерных программ, применяемых для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека к компьютеру, в то время как естественные языки используются для общения людей между собой.
Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данными и управления процессом вычислений.
Отбор языка программирования, как правило, определяется тремя важными условиями:
- собственно характеристиками, особенностями самого языка;
- наличием удобного в обучении, доступного к использованию среды программирования;
- наличие методической поддержки (информационно-дидактического и учебно-методического обеспечения).[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]