Файл: Классификация языков программирования высокого уровня и их характеристика.pdf
Добавлен: 24.04.2023
Просмотров: 234
Скачиваний: 2
Текст начальной программы на ассемблере состоит из операторов, каждый из которых занимает отдельную строку этого текста. Имеют различие два типа операторов: инструкции и директивы. Первые при трансляции реализуются в команды процессора, исполняющиеся после загрузки в память загрузочного модуля программы, и имеют расширение .СОМ или .ЕХЕ . Операторы второго типа управляют процессом ассемблирования — преобразования текста исходной программы в коды объектного модули (расширение .ОВJ). Ассемблер интерпретирует и обрабатывает операторы друг за другом, генерируя последовательность из команд процессора и байтов данных.
Особо внимание следует остановиться на использовании макрокоманд. При написании программ на макроассемблере можно формировать обращение к часто повторяющейся последовательности команд при помощи одного оператора. Данный прием несколько напоминает вызов подпрограмм в языках высокого уровня, но между ними лежит значительное различие, заключающееся в том, что подпрограмма, занимающая некоторый участок памяти, может быть выполнена неограниченное число раз путем передачи ей управления из вызывающей программы, в которую подпрограмма сама затем возвращает управление. В ассемблере реализуются макровызовы макроопределений. Макроопределение — это последовательность операторов, которые могут содержать формальные параметры. Макроопределение и команда обращения к макроопределению (макровызов) образуют макрокоманду. Макровызов — это оператор вызова макроопределения. Если макроопределение содержит формальные параметры, то макровызов обязан содержать фактические значения этих параметров, которые будут подставлены вместо соответствующих формальных. В итоге макровызова формируется реальная последовательность команд — макрорасширение. Макрорасширение вставляется в исходный текст программы на место оператора макровызова. В свою очередь, в исходный текст программы макрорасширение одного и того же макроопределения может быть вставлено несколько раз, по числу макровызовов. Каждое макрорасширение после трансляции, естественно, занимает свой часть памяти.
Третье поколение языков, которое начинается с появления в 1956 г. первого языка высокого уровня — Фортран, разработанного под руководством Дж. Бэкуса в фирме IВМ. За короткий промежуток Фортран становится основным языком программирования при решении инженерно-технических и научных задач. В первую очередь Фортран обладал весьма малыми средствами обеспечения работы с символьной информацией и с системой ввода-вывода. Однако постоянное развитие языка сделало его одним из самых востребованных ЯВУ на ЭВМ всех классов — от микро- до супер-ЭВМ, а его версии используются для вычислительных средств нетрадиционной параллельной архитектуры.
В ближайшее время, после языка Фортран появились такие ныне широко известны языки, как Ангол, Кобол, Бейсик, ПЛ/1, Паскаль, АРL, ADA, С, Forth, Липс, Модула и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.
Языки четвертого поколения носят ярко выраженный непроцедурный характер, который определен тем, что программы на таких языках описывают только что, а не как надо сделать. В программах формируются скорее соотношения, а не последовательности шагов выполнения алгоритмов. Характерными примерами непроцедурных языков являются языки, применяемые для задач искусственного интеллекта (например, Пролог, Ландин). Так как непроцедурные языки имеют минимальное число синтаксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.
Второй тенденцией развития языков четвертого поколения являются объектно-ориентированные языки, которые базируются на понятии программного объекта, впервые использованного в языке Самула-67 и составившего впоследствии основу известного языка СмаллТалк. Программный объект состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. На самом деле, эти различные объекты могут использовать совершенно разными алгоритмами при выполнении действий, которые определены одним и тем же ключевым словом (так называемое свойство полиморфизма). К примеру, в объект с комплексными числами и массивами в качестве данных будет использовать различные алгоритмы для выполнения операции умножения. Данными свойствами обладают объектно-ориентированные Паскаль, Бейсик, С++, СмаллТалк, Симула, Актор и ряд других языков программирования.
Третьим направлением развития языков четвертого поколения можно отнести языки запросов, которые позволяют пользователю получать информацию из баз данных. Языки запросов имеют свой особый синтаксис, который должен соблюдаться, как и в традиционных языках программирования третьего поколения, но при этом легче в использовании. Среди языков запросов фактическим стандартом стал язык SQL.
И, наконец, четвертым направлением развития являются языки параллельного программирования (модификация ЯВУ Фортран, языки Оккам, Сисал, FP и др.), ориентировавшиеся на создание программного обеспечения для вычислительных средств параллельной архитектуры, в отличие от языков третьего поколения, которые ориентированы на традиционную однопроцессорную архитектуру.
К сильно развивающемуся в настоящее время пятому поколению относятся языки искусственного интеллекта, экспертных систем, баз знаний (ИнтерЛипс, ЭкспертЛипс, ИИЛипс, Саил и др.), а также естественные языки, не нуждающиеся в освоении какого-либо специального синтаксиса.
Сделаем вывод по первой главе, рассмотрели различные языки программирования, можно сказать что в самом начале появления их было очень сложно воспринимать, было сложное написание кодов, и каждый код был конкретно составлен для определенного процессора. Но не смотря на бурное развитие, языки программирования с каждым поколение становились всё легче и легче. Человеку уже не нужно большого профессионализма в освоении языка. Осваивать машинный язык в нашем времени уже нет большой надобности, существуют более доступные по простоте изучению языки программирования. Появление высокоуровневых языков сделало прорыв в информационных технологиях, да и во всех сферах жизнедеятельности. При использовании языка программирования можно легко написать программу для любого решения задачи, будь то банковские расчеты, либо машиностроение, или чего сложнее медицины.
Глава 2. Языки программирования низкого уровня
Язык ассемблера — это машинно-зависимый язык низкого уровня, в нем короткие мнемонические имена, которые соответствуют отдельным машинным командам. Применяется для представления в удобной читаемой форме программ, написанных в машинном коде.
Язык ассемблера дает возможность программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по собственному желанию присваивать символические имена регистрам компьютера и памяти, а также давать удобные для себя способы адресации. Вместо того, он дает возможность использовать различные системы счисления (например, десятичную или шестнадцатеричную) для определения числовых констант, применять в программе комментарии и др.
Программы, составленные на языке ассемблера, требуют намного меньшего объема памяти и времени исполнения. Знание специалистом языка ассемблера и машинного кода дает ему понимание архитектуры машины. Кроме того, что большинство специалистов в области программного обеспечения разрабатывают программы на языках высокого уровня, таких, как Object Pascal или C, наиболее сильное и эффективное программное обеспечение полностью или частично составлено на языке ассемблера.
Свое название они получили от имени системной программы Ассемблер, которая реализует исходные программы, написанные на таких языках, непосредственно в коды машинных команд. Частями тут служат операторы, а итогом сборки последовательность машинных команд Язык Ассемблера соединяет в себе достоинства языка машинных команд и некоторый вид языков высокого уровня. Ассемблер обеспечивает возможность использования символических имен в первичной программе и избавляет программиста от изнурительного труда по распределению памяти компьютера для команд, переменных и констант.
Ассемблер позволяет также гибко и полно применять технические возможности компьютера, как и язык машинных команд. Транслятор исходных программ в Ассемблере проще транслятора, требующегося для языка программирования высокого уровня. На Ассемблере можно написать столь же эффективную по размеру и времени исполнению программу, как и программу на языке машинных команд. Это преимущество отсутствует у языков высокого уровня. Этот язык часто используют для программирования систем реального времени, технологическими процессами и оборудованием, обеспечение работы информационно-измерительных комплексов. К таким системам обычно предъявляются большие требования по объему занимаемой машинной памяти. Часто язык Ассемблера комплектуются средствами формирования макрокоманд, каждая из которых эквивалентна полной группе машинных команд. Такой язык называют языком макроассемблера. Использование мак "строительных" блоков и приближает язык Ассемблера к языку высокого уровня. Ассемблер машинно-зависимый язык, т. е. он показывает особенности архитектуры конкретного типа компьютера.
Вывод с появление Ассемблера, ранее называемого Автокод, это облегчило работу программистам. Но всё же ещё была проблема с освоением архитектуры процессора, каждый автокод был написан под конкретный компьютер. Язык программирования стал понятнее для человека, и при этом удалялся от языка машинных команд. Чтобы компьютер мог исполнять программы на Автокоде, потребовался специальный переводчик — транслятор. Всё же Ассемблер является не самым применяемым языком программирования, так как языки высокого уровня, являются машинно-независимыми языками, и применять их куда проще, не подбирая под конкретный компьютер.
Глава 3. Языки программирования высокого уровня
Лисп
Один из первых давних языков программирования Фортран был создан в 50-х гг.. Фортран и другие ему похожие языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, которые возникают в математике, инженерных расчетах, физике, экономике. Эти языки в основном работают с числами.
Второй давнейший язык программирования это был Лисп, создал его Дж. Маккарти в 1962 г. Предназначался больше для работы со строками символов, нежели как для работы с числами. Это особое назначение Лиспа показало программистам новую область деятельности, сейчас называемой, как «искусственный интеллект». В настоящее время Лисп успешно используется в системах аналитических вычислений, экспертных системах и т.п.
Ширина области возможных приложений Лиспа вызвала появление множества различных диалектов Лиспа. Это легко объяснимо: использование Лиспа для понимания естественного языка требует определенного набора базисных функций, которые отличимые, к примеру, от используемого в задачах медицинской диагностики.
Существование огромного количества разных диалектов Лиспа привело к созданию в начале 80-х гг. Common Липс Комитета, который должен был выбрать наибольше подходящий диалект Лиспа и предложить его в качестве главного. Диалект, который был выбран Комитетом в 1985г., получил название Common Липс. В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка Лисп.
Язык программирования Лисп крайне отличается от других языков программирования, таких, как Си, Паскаль. Работа с символами и работа с числами как с основными элементами требует разных способов мышления.
Изначально Лисп был задуман как теоретическое средство для рекурсивных построений, а сегодня он превратился в сильное средство, которое обеспечивало программиста разнообразной поддержкой, которое позволяло ему быстро строить прототипы весьма и весьма серьезных систем.
Профессор Дж. Самман увидел, что математическая ясность и предельная четкость Лиспа – это еще не все. А самое главное – Лисп дает возможность сформулировать и запомнить «идиомы», которые характерные для проектов по искусственному интеллекту.
Фортран
Одним из первых и наиболее хороших компиляторов стал язык Фортран, который был разработан фирмой IBM. Профессор Дж. Букс и группа профессионалов в области программирования в 1954 году опубликовали первые новости о языке. Полное название языка FORmulae TRANslation –преобразование формул.