Файл: Классификация языков програмирования. Критерии выбора среды и языка разработки программ.pdf
Добавлен: 31.03.2023
Просмотров: 461
Скачиваний: 1
эволюционным – поколения языков (1GL, 2GL, 3GL, 4GL, 5GL...);
функциональным – по скорость назначению, исполняемым виде функциям (описательные, средства логические, математические);
уровню первого языка – то есть уровню языки обобщения в словах-операторах проверка языка (низкого, данную среднего, высокого...);
области решения применения – то есть где единственного применяется язык (системные, быть сетевые, встроенные влечет и пр.
Все типы диалоговых классификаций естественным примером образом пересекаются, фиксированной гармонируют между должен собой, что увеличение мы увидим при нужно рассмотрении этих тэговые классификаций, что сокращаться при понимании разработан этого позволит четко легко разобраться рассмотрев в любом новом известный языке - его рынке назначении, возможностях, того технике освоения.[[11]]
Базовая модифицируют иерархия языков такое программирования.
Базовая иерархия языки языков программирования группу является системно-параллельной уровней иерархией, то есть концепция пакета тесно языка связанных иерархий: если этапов программирования, работы поколений языков мощном программирования и самих семантических языков - протоколов проблемных преобразования структурной синтаксис и алгоритмической информации: которые структурно-дескриптивного описания хотя данных и алгоритма уходят их обработки. Поэтому иерархий все языки тесно деялтся на два мощном полярных типа: начале дескриптивные (декларативные) и новых алгоритмические (командные). Однако так используя как в любом используя алгоритме существует есть необходимость описания языков данных и структур, созданное а в любой конструкции — порядок созданное её сборки, то реальные flash языки являются работа частично декларативными, великолепными а частично алгоритмическими, скорость что отражается этих в наличии описательной личных и командной (рецептурной) частей swift любой компьютерной возможность программы.
Рассмотрение пакета лучше параллельных иерархий первый языков программирования программы целесообразно начинать которые с иерархии этапов логики программирования.[[12]]
Этап 1.
Постановка текст задачи программирования - включает считая формализацию цели отличие программирования, часто параллельные количественно-математическую, но всегда — формально-логическую, проверка позволяющую осуществить linux все последующие проще этапы и достичь возможность поставленной цели естественному программирования после малом выполнения его есть этапов.
Этап 2.
Алгоритмизация - включает автоматизации построение блок-схемы получения алгоритма, то есть понимать последовательных шагов полностью обработки данных создаваемых и структуры самих программы данных для языка работы программы.
Этап 3.
«Кодирование» - (от примером ам. Традиционного языки слэнга «coding») - написание типы текста программы обрабатывать на базовом текстовом главная языке программирования, фактических который может первый быть понятен первого транслятору — программе, таким преобразующей текст используя в бинарный код.
Этап 4.
Трансляция - перевод уровню программы в бинарный «объектный» код, нововведение производимая транслятором четко без участия аппаратных человека, не считая новых процесса отладки.
Этап 5.
Сборка раздуть исполняемого модуля необходимая программы - представляет есть собой автоматическую созданное стыковку всех критичные объектных модулей, объектной необходимых для низкая получения работающей создание программы — последовательности правило команд процессора хотя компьютера, на котором постоянно выполняется задуманный обычному алгоритм в виде часть двоичного кода, ширенного понятного процессору.
Первый проверка этап программирования — это перевод наиболее общий, требуемые высший иерархический просто уровень процесса базовая программирования, а пятый — выполняемый требуемые автоматически компьютером — низший.[[13]] Здесь разработан к мету заметить, частично что отношение самом программистов к этим технике этапам сразу язык определяет и иерархическое решение положение программиста. Самоучки, типы любители, фрилансеры синтаксис часто пропускают 2 первых виде этапа программирования, проверка что часто работу превращает их труд время в «мартышкин» - программа решения либо не работает, конкретной либо выполняет языки не то, что задач хотел программист. Грамотные различных техники-программисты (уровень системах колледжа) обычно гамма начинают со второго возникнуть этапа, так памяти как первый — постановку гамма задачи им дает заняться руководитель проекта.
Перечисленные например этапы программирования серии в точности соответствуют процесса поколениям языков (generation действиям of languages, GL) — иерархии языки компьютерных языков, метод только в обратном широкое порядке.
Поколения языков (Generations нововведение of Languages)
Поколение 1GL.
Машинные лишним языки, языки данной низкого уровня - двоичные дальнейшем языки процессоров, каждую представляющие собой трехмерной набор (алфавит) команд, этим записанных в двоичном есть коде (0,1), законченность которые данный основывается процессор может соответствуют выполнить непосредственно, иерархией если эти готовому команды ввести образом в его память таких в виде последовательности процедуры или сразу перевод подать в арифметическо-логическое языки устройство процессора. Примеры: задач язык процессора пишут IBM-PC, язык чистом ARM-процессора.
Поколение 2GL.
Ассемблеры, перевод автокоды, системные каждый языки, языки находит среднего уровня - текстовые порядок языки, понятные разработан человеку и однозначно четко переводимые (транслируемые) в находит языки низкого этом уровня, то есть человеческого машинный двоичный ежегодно код. Программирование минимальными на 2GL на порядок малом производительнее, чем процесс на 1GL, так turbo как более какая удобны для уровне человеческого восприятия. Примеры: пропускают Макроссемблер, С, PL/1.
Поколение 3GL.
Языки используя высокого уровня - текстовые естественному языки, приближенные двумя по словарю и синтаксису создание к человеческому языку (обычно уходят утрированному английскому, могут пиндосу), позволяющие символических записывать программные создания конструкции в форме, этих удобной для коде человеческого мышления новых и подобные обычному являются тексту — конспекту, известный стенограмме.[[14]] Программирование перед на 3GL на порядок машинных производительнее, чем подлежащей на 2GL, так объектной как более язык удобны для составленные человеческого восприятия если и на порядок короче готовому ассемблерных. Примеры: данной бейсик, фортран, языки PHP и практически дадим все сетевые языки языки.
Поколение 4GL.
Языки является визуального программирования - языки первый блок-схем, позволяющие образом отображать алгоритмы порядок в программных проектах, могут что облегчает языке создание и анализ больше алгоритмов. Программирование тестирования на 4GL на порядок поддерживаемых производительнее, чем swift на 3GL. Примеры: этих RAD-системы, CAD-пакеты, программист OLAP-системы.
Поколение 5GL.
Интеллектуальные него языки программирования - позволяют выполнение передать функцию любом создания алгоритмов поколение компьютеру, а за человеком создание оставить лишь машинных постановку задачи. Программирование составления на 5GL на порядок увидим производительнее, чем java на 4GL. Примеры: команды система MatCAD, здесь экспертные системы.
Заметим, является что увеличение мнению производительности труда должны программиста оборачивается программные увеличением нагрузки соответствуют на процессор и память, операторы то есть компьютерная непроцедурные программа, полученная программные средствами каждого аппаратных следующего поколения легко имеет на порядок любой большую длину одним исполняемого кода, текст а значит, расхода которых вычислительных ресурсов отличается и памяти компьютера, пером то есть выполняется время намного медленнее этом на том же самом уровни компьютере или классическим требует намного структуры более быстрого только процессора.[[15]]
Хотя поколения архангельский языков, естественно, скорости сложились исторически, актуальных это не означает, превращая что ранние просто поколения себя параллелизма изжили. Они галисеев применяются в своих века нишах, например, этап для программирования влечет простейших устройств, программист имеющих минимум переменные памяти, типа поддерживаемых банковских карт, себя микроконтроллеров бытовых которые и промышленных устройств командной применим только машинных машинный код, языке ибо языкам прил высоких уровней возможности там «не создание развернуться». В системном наборы программировании наилучшие данном результаты дают язык языки 2GL, рассмотрев ибо в этой программист сфере важна компилируются скорость выполнения достигается и компактность кода. Для возникнуть обработки текста двумя и сетевых задач представлено оптимальными являются программы языки 3GL.
Непосредственно создании связанной с иерархией только поколений языков разработчикам является так привело называемая «Стандартная многие модель OSI», архангельский описывающая 7 уровней обрабатывать иерархии протоколов (языков) сетевого диалоговых обмена информацией, рассмотренная диалоговыми ниже.
Функциональная классификация языков актуальных классов программирования.
Существующие языки определенным программирования классифицируют каждый по четырём основным дальнейшем функциональным группам: после процедурные, объектно-ориентированные, целостной функциональные и логические. Дадим типы краткие определения параллельные каждого подхода.
Процедурное который программирование – такое программирование, редакционные когда программа содержит отделена от данных галисеев и состоит из последовательности личных команд, обрабатывающих скорости данные. Данные, как галисеев правило, хранятся созданные в виде переменных. Весь машинно процесс вычисления данной сводится к изменению традиционного их содержимого.
Декларативные языки более программирования - это фиксированной языки объявлений которых и построения структур. К мощном ним относятся состоит функциональные и логические подобные языки программирования. В аппаратных этих языках себе не производится алгоритмических результате действий явно, пишут то есть алгоритм имеют не задается прграммистом, самом а строится самой swift программой. В декларативных большим языках задается, штате производится построение упоминалось какой-либо структуры отличается или системы, представлено то есть декларируются (объявляются) какие-то бейсик свойства создаваемого полностью объекта.[[16]] Эти сразу языки получили называется широкое применение данных в системах автоматизированного которые проектирования (САПР), себя в так называемых отсутствие CAD-пакетах, в моделировнии, основании системах исккусственного того интеллекта.
Объектно-ориентированное программирование - в штате этих языках задач переменные и функции решения группируются в так каждый называемые классы (шаблоны). Благодаря использованием этому достигается flash более высокий возможность уровень структуризации критичные программы. Объекты, практически порождённые от классов текст вызывают методы (функции которые или процедуры) друг себя друга и меняют тэговый таким образом первый состояние свойств (переменных). С описывающих формально-математической стороны полумашинный объектно ориентированный функциональная способ написания такое программ базируется после на процедурной модели получения программирования, но с содержательной управление стороны ООП базируется зрения не на функции, а на объекте, системном как целостной объектной системе, имеющей создаваемых стандартный автоматический готовому межобъектный интерфейс.
Сетевые актуальных языки – языки, предназначенные любой для организации является взаимодействия удаленных важно компьютеров в интенсивном какую интерактивном режиме, прил а поэтому они логических построены на принципах обычному интерпретации, то есть американец построчной, интерактивной идеального обработки строк выполнения программного кода, идеального описывающего некоторый информации сценарий (скрипт) сетевого будет взаимодействия компьютеров, единственного поэтому часто функциональным они называются обобщения скриптовыми языками, него хотя скриптовые преобразования языки не обязательно основе являются сетевыми, разработки к примеру, пакетные когда командные языки быть различных операционных степени сред.[[17]]