Файл: Классификация языков программирования (Базовая иерархия языков программирования).pdf
Добавлен: 30.03.2023
Просмотров: 181
Скачиваний: 1
Введение
На современном этапе обучения компьютерным технологиям невозможно представить высококвалифицированного специалиста без участия информационных технологий. Потому что эффективность каждого предмета во многом зависит от уровня понимания данных, а также от возможности их эффективного применения. Чтобы получить управление свободным потоком, современный специалист, независимо от его профиля, должен иметь возможность извлекать, обрабатывать и использовать информацию, в частности, с использованием ПК, телекоммуникаций и других новых средств связи. В том числе умение работать с языками программирования.
Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть, по крайней мере, двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Может показаться удивительным, но конкретный компьютер способен работать с программами, написанными на его родном машинном языке. Существует почти столько же разных машинных языков, сколько и компьютеров, но все они суть разновидности одной идей простые операции производятся со скоростью молнии на двоичных числах. Персональные компьютеры IBM используют машинный язык микропроцессоров семейства 8086, т.к. их аппаратная часть основывается именно на данных микропроцессорах. Можно писать программы непосредственно на машинном языке, хотя это и сложно. На заре компьютеризации(в начале 1950-х г.г.), машинный язык был единственным языком, большего человек к тому времени не придумал. Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (т.е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.
Важность этой темы проистекает из того факта, что достижения в области компьютерных технологий обусловили процесс разработки новых языков программирования, то есть классификации языков программирования.
Предметом исследования были языки программирования и выбор среды программирования.
Целью курса является изучение классификации языков программирования и выбор среды программирования.
Цели исследования:
- Просмотреть общую информацию о классификации для языков программирования.
- Просмотреть типы классификации языков программирования.
- Просмотреть выбранных сред разработки.
Задачи исследования:
- Изучения классификации языков программирования.
- Рассмотрение классификации типов языков программирования.
- Обзор языковых сред программирования.
В первой главе рассматриваются общие сведения о классификации языков программирования и их типах.
Вторая глава содержит обзор языковых сред программирования.
-
Классификация языков программирования
За 60 лет компьютерного развития были разработаны сотни языков программирования, многие из которых все еще используются (например, Basic и Fortran были впервые использованы в конце 1950-х годов). Каждый год появляются несколько новых языков промышленного применения (кроме десятков экспериментальных). Чтобы понять их, языки классифицируются по наиболее важным признакам:
поколения с эволюционным языком (1GL, 2GL, 3GL, 4GL, 5GL ...);
функциональные - как ожидается, исполняемые функции (описательные, логические, математические);
уровень языка - то есть уровень обобщения в слове оператора языка (низкий, средний, высокий ...);
расширенный - то есть, где используется язык (системный, сетевой, встроенный и т. д.)
Все типы классификаций естественным образом пересекаются, находятся в гармонии друг с другом, что мы увидим при рассмотрении этих классификаций, которые, если они хорошо поняты, облегчат понимание любого нового языка - его цели, возможностей и техники обучения.
Самое простое деление на языках высокого и низкого уровня.
Низкоуровневый язык - это язык программирования, разработанный для определенного типа компьютера и отражающий его внутренний машинный код; Языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, так как для этого требуется хорошее знание внутренних принципов компьютера.
Язык высокого уровня - это язык программирования, разработанный для удовлетворения требований программиста; это не зависит ни от какого типа внутреннего компьютерного кода. Языки высокого уровня используются для решения проблем и поэтому часто упоминаются как проблемно-ориентированные языки. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.
Другая классификация делит языки на вычислительные и символические языки. Первый тип включает в себя FORTRAN, PASKAL, ALGOL, BASIC, S, второй - LISP, PROLOGUE, SNOBOL и т. д.
Другая распространенная классификация языков программирования основана на принципе их организации или парадигме. Согласно этой классификации языки делятся на процедуры (также используются императивные и структурные термины, хотя и не совсем одинаковые), объектно-ориентированные, функциональные и логические.
Базовая иерархия языков программирования
Базисная иерархичность стилей программирования представляется системно-синхронной иерархией, в таком случае существует пакета непосредственно сопряженных иерархий: деяний программирования, поколений стилей программирования и самих стилей - протоколов преображения скелетной и алгоритмической данных: структурно-описательного отображения информации и способа их отделки. Следовательно всегда стили делятся в 2 противоположных вида: описательные (внешние) и алгоритмические (инструктивные). Тем не менее, таким образом равно как в любом способе принимать необходимость отображения информации и строений, а в хоть какой установки — режим ее установки, в таком случае реальные стили представлены частично внешними, а частично алгоритмическими, что же отражается в присутствии схематичной и инструктивной (рецептурной) частью хоть какой компьютерного проекта. Рассмотрение пакета синхронных иерархий стилей программирования разумно начинать с иерархии деяний программирования. Этап 1. Постановка задачи программирования - включает формализацию миссии программирования, зачастую численно-точную, однако беспрерывно — официально-логичную, позволяющую осуществить всегда последующие рубежи и достичь поставленной миссии программирования впоследствии выполнения его деяний. Этап 2. Алгоритмизация - включает создание источник - схемы способа, в таком случае существует поочередных деяний отделки информации и текстуры самих информации с целью деятельность проекта. Этап 3. " Шифрование " -( с ам. классического сленга " coding ") - сочинение слова проекта в базисном текстовом слоге программирования, что имеет возможность являться ясен транслятору — проекте, переводящей медиа-контент в двойной шифр. Этап 4. Трансляция - переход проекта в двойной " объектовый " шифр, изготавливаемая транслятором без значимости лица, никак не предполагая движения отладки.
1.1.1 Поколения языков (Generations of Languages)
Поколение 1GL. Машинные стили, стили невысокого степени - бинарные стили процессоров, показывающие собою комплект (азбука) распоряжений, записанных в бинарном коде (0,1), что этот микропроцессор имеет возможность осуществить напрямую, в случае если данные указания внедрить в его воспоминания в варианте очередности либо мгновенно передать в арифметическо-закономерное приспособление процессора. Образцы: стиль процессора IBM-PC, стиль ARM-процессора.
Поколение 2GL. Ассемблеры, автокоды, целые стили, стили посредственного степени - текстовые стили, доходчивые Люду и конкретно транжиримые (транслируемые) в стили невысокого степени, в таком случае принимать механический бинарный шифр. Кодирование (на (машинном в 2GL в процедура плодотворнее, Нежели в 1GL, таким (образом равно как наиболее комфортны с целью Людского восприятия. Образцы: Макроссемблер, С, PL/1.
Поколение 3GL. Языки высочайшего степени - текстовые стили, форсированные согласно словарю и синтаксису к человечьему стилю (как правило утрированному британскому, пиндосу), дозволяющие писать программные установки в фигуре, комфортной с целью Людского мышления и аналогичные обыкновенному слову — конспекту, стенограмме. Кодирование (на (машинном в 3GL в процедура плодотворнее, Нежели в 2GL, таким (образом равно как наиболее комфортны с целью Людского восприятия и в процедура в общем ассемблерных. Образцы: язык, язык, PHP и фактически всегда сетные стили.
Поколение 4GL. Языки зрительного программирования - стили источник-методик, дозволяющие показывать методы в программных планах, что же упрощает формирование и исследование алгоритмов. Кодирование (на (машинном в 4GL в процедура плодотворнее, Нежели в 3GL. Образцы: RAD-концепции, CAD-пакеты, OLAP-концепции.
Поколение 5GL. Интеллектуальные стили программирования - дают возможность отдать функцию формирования алгоритмов ПК, а из-за народом сохранить только постановку вопросы. Кодирование (на (машинном в 5GL в процедура плодотворнее, Нежели в 4GL. Образцы: концепция MatCAD, экспертные концепции. Заметим, что же повышение производительности работы разработчика программного обеспечения обращается повышением перегрузки в микропроцессор и воспоминания, в таком случае принимать компьютерная схема, приобретенная орудиями любого последующего поколения содержит в процедура немалую длину выполняемого кодировки, а следовательно, расхода вычисляемых ресурсов и памяти, в таком случае призывает значительно наиболее стремительного процессора. Хотя поколения стилей, безусловно, сформировались исторически, данное никак не значит, что же ранение поколения себе искоренили. Они используются в собственных нишах, к примеру, с целью программирования простых приборов, обладающих как минимум памяти, вида банковских автомобиль, микроконтроллеров домашних и индустриальных приборов используем только лишь механический шифр, так как стилям высочайших степеней вслед за тем «не развернуться». В целом программировании лучшие итоги предоставляют стили 2GL, так как в данной области значима темп исполнения и плотность кодировки. С целью обрабатывания слова и сетных проблем подходящими представлены стили 3GL. Непосредственно сопряженной с иерархией поколений стилей представляется, таким образом, именуемая «Стандартная модель OSI», обрисовывающая 7 степеней иерархии протоколов (стилей) сетного размена данными, осмотренная пониже.
1.1.2 Функциональная классификация языков программирования
Имеющиеся стили программирования систематизируют согласно четырём главным многофункциональным группам: процедурные, объектно-направленные, многофункциональные и логичные. Обеспечим короткие установления любого расклада. Процедурное кодирование (на (машинном - подобное кодирование (на (машинном, если схема разделена с информации и заключается с очередности распоряжений, возделывающих сведения. Сведения равно как норма сохраняются в варианте неустойчивых. Целый ход расчеты объединяется к изменению их охватываемого. Декларативные стили программирования - данное стили оглашений и концепции строений. К ним причисляются многофункциональные и логичные стили программирования. В данных стилях никак не выполняется алгоритмических операций безусловно, в таком случае принимать метод никак не задается программистом, а основывается наиболее проектом. В внешних стилях задается, выполняется создание какой-либо или текстуры либо концепции, в таком случае принимать объявляются (оглашаются) которые в таком случае характеристики формируемого предмета. Данные стили приобрели обширное использование в режимах автоматизированного проектирования (САПР), в таким (образом именуемых CAD-пакетах, в моделировании, режимах искусственного разума. Объектно-направленное кодирование (на (машинном - в данных стилях неустойчивые и функции сгруппировываются в таким (образом именуемые игра (трафареты). Вследствие данному добивается наиболее большой степень структуризации проекта. Предметы, порождённые с классов провоцируют способы (функции либо операции) товарищ товарища и изменяют подобным способом положение качеств (неустойчивых). С официально-точной края объектное направленный метод сочинения проектов основывается в процедурной модификации программирования, однако с массивной края ООП основывается никак не в функции, а в предмете, равно как целой концепции, обладающей типовой автоматизированный между объектовый пакет. Сетевые стили - стили, назначенные с целью учреждения взаимодействия далёких pc в активном диалоговом порядке, а следовательно они выстроены в принципах интерпретации, в таком случае принимать построчной, диалоговой обрабатывания строчек программного кодировки, обрисовывающего определенный план (script) сетного взаимодействия pc, следовательно. Зачастую они именуются скриптовыми стилями, хоть скриптовые стили никак не непременно представлены сетными, к образцу, стопочные инструктивные стили разных операторных сфер.