Файл: Классификация языков программирования высокого уровня (Классификация языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 351

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры. Сервисные программы и прочие, как правило, составлены на языках типа Ассемблер .

Автокод, или язык символического программирования, относится к машинно-ориентированным языкам программирования, которые по своим возможностям наиболее близки к языку машины. Это свойство языков позволяет составлять программы, в которых в должной мере могут быть учтены сильные и слабые стороны применяемой для решения задачи вычислительной машины. При использовании же проблемно-ориентированных и универсальных языков программирования учет особенностей ЦВМ возможен лишь в очень слабой степени.

  1. Ворощук А.Н. Основы ЦВМ в программировании https://www.ngpedia.ru/pg0055709VCcMtwk0004176982/ )

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

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

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

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

  1. Калачев В.М. Программирование для ЭВЦМ "Минск 2" и "Минск 22" стр. 180 )

1.5. Макрос

Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором . На макропроцессор поступает макро определяющий и исходный текст. Реакция макропроцессора на вызов-выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными.


Макрос - это набор инструкций, которые сообщают программе, какие действия следует выполнить, чтобы достичь определенной цели. Различие, однако, состоит в том, что макрос объединяет все эти инструкции в одном сценарии, который затем можно вызвать с помощью команды меню, кнопки панели инструментов или комбинации клавиш. С этой точки зрения макрос отличается от, скажем, рецепта приготовления хлеба, но похож на автоматическую хлебопекарню, загрузив ингредиенты в которую, можно испечь хлеб одним нажатием кнопки. Список инструкций, составляющих макрос, как правило, состоит из макрооператоров. Некоторые операторы выполняют особые действия, связанные с выполнением самого макроса, но большинство операторов соответствует командам меню и опциям диалоговых окон приложения, в котором выполняется макрос. Например, в любом приложении можно закрыть текущее (активное) окно, выбрав команду Закрыть из меню Файл. В макросе VBA следующий оператор позволяет сделать то же самое: ActiveWindow.Close (АктивноеОкно.Закрыть). Названия операторов очень информативны, говорят сами за себя о том, что они делают, и не требуется отдельных пояснений.

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

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

Конечно, если вы хотите воспользоваться средствами VBA, вам нужно будет добавить в записанный макрос несколько строк кода самостоятельно. Язык VBA разработан таким образом, чтобы можно было быстро начать программировать на нем, а затем по мере изучения совершенствовать свои навыки. С помощью языка VBA можно почти сразу (без длительного обучения) начать создавать полезные макросы. Данное свойство выгодно отличает VBA от других языком программирования.

Самый простой способ создать макрос - воспользоваться средством записи макросов. Для этого нужно просто запустить средство записи и затем выполнить операции, которые вы хотите автоматизировать (таким образом можно выделить текст, а также выбирать команды меню или изменить опции диалогового окна.) Средство записи переведет все, что вы сделаете, в соответствующие операторы VBA. Результат записи будет сохранен в отдельной области, называемой модулем, откуда можно будет повторить всю процедуру в любое время. Макросы представляют собой важнейшее средство для достижения, например, машинной независимости и переносимости ( portability) программ. С их помощью легко определить абстрактный промежуточный язык. С помощью макросов можно, например, определять абстрактные промежуточные языки, которые хорошо подходят для системного программирования и поддерживают подходящим образом различные архитектуры вычислительных машин, не являясь, однако, зависимыми от их деталей и различий.


  1. http://www.codenet.ru/progr/vbasic/bit/Macros.php )

2. Машинно – независимые языки

2.1 Машинно-независимые языки

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

  1. Наумов Б.Н. Современные средства информатики стр. 71)

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


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

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

- включение оптимизирующих блоков в трансляторы;

2.2 Проблемно – ориентированные языки

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

Проблемных языков очень много, например:

Фортран, Алгол;

Simula , Slang ;

Лисп, Снобол;

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

(11. https://dic.academic.ru/dic.nsf/enc_mathematics/4370/%D0%9F%D0%A0%D0%9E%D0%91%D0%9B%D0%95%D0%9C%D0%9D%D0%9E )

Лисп - один из самых старых языков программирования Фортран был создан в 50-х гг. нашего века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами. Второй старейший язык программирования , Дж. Маккарти в 1962 г. скорее для работы со строками символов, нежели для работы с числами. Это особое предназначение Лиспа открыло для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п.

Для большинства работ по искусственному интеллекту был выбран Лисп. Это было сделано по нескольким причинам. Во-первых, Лисп ориентирован на символические вычисления: программист может прямо использовать такие термины, как “химическое вещество” и “утечка”. Хотя подобные термины непосредственно в Лиспе не определены, лисп-программа может свободно манипулировать такого рода символами и их отношениями. Интерактивность большинства лисп-систем в значительной степени облегчает возможность постепенного эволюционного развития, так необходимую в инженерии знаний. Наконец, программист освобожден от определенных нагрузок ( включая чрезмерную заботу об управлении памятью), которые могут замедлить процесс экспериментирования.


Снобол – относится к числу тех “языков-памятников”, которые оказали сильное влияние на развитие программирования вообще. Ортогональный во многих отношениях к другим языкам, Снобол обычно рекомендуется для изучения во вводных курсах программирования. Он предназначен для решения задач нечисленного анализа: преобразования формул, аналитических выкладок, обработки графов и текстов, конструирования компиляторов и др. Благодаря Сноболу существенно расширилась сфера применения ЭВМ.

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

( 15. Грисуолд Р.N. Язык программирования Снобол-4 стр. 1 )

Фортран - активно используется в ЭВМ в прикладных системах, ориентированных на научные исследования, автоматизацию проектирования и другие области, где имеются обширные библиотеки прикладных программ. Стандартным вариантом для ЭВМ является Фортран-77. Язык отличают простота транслятора, удобные и простые в написании операторы ввода-вывода информации, возможность независимой трансляции отдельных подпрограмм, легкость выявления ошибок. Фортран неоднократно совершенствовался, опубликовано много версий и диалектов языка. Первые версии языка формально неопреде ля лись, что привело к тому, что каждая машина имела свою версию языка. С целью унификации в 1964 г. Американской ассоциацией стандартов был предложен Стандарт языка Фортран. В настоящее время наибольшее распространение получил Фор-тран - IV, незначительно отличающийся от стандарта. В отличие от Алгола он имеет более развитые средства описания формата входной и выходной информации, более полную библиотеку стандартных функций, допускает использование комплексных чисел и представление чисел с двойной точностью. Большинство конструкций Фортрана синтаксически проще соответствующих конструкций Алгола, проще он и в изучении. У фортрана более развитая структура программы. Программу можно разделить на отдельные сегменты, которые на этапе подготовки могут обрабатываться независимо. По мере необходимости они могут объединяться в единые комплексы. Другим достоинством является использования принципа умолчания при описании переменных. Тип переменной и ее длинна, если не указаны явно, предлагаются автоматически при обработке программы стандартными. К недостаткам по сравнению с Алголом можно отнести отсутствие строгого написания синтаксиса и отсутствие динамического распределения памяти. Под используемые массивы данных необходимо резервировать память исходя из максимальной размерности для данной задачи.