Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

ВВЕДЕНИЕ

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

1.Классификация языков программирования

1.1 Машинно-ориентированные языки

Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно – ориентированные языки позволяют использовать все возможности и особенности Машинно – зависимых языков:

высокое качество создаваемых программ (компактность и скорость выполнения);

возможность использования определенных аппаратных возможностей;

очевидность объектного кода и заказов памяти;

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

трудоемкость процесса составления программ ( особенно на машинных языках и языках символического кодирования), плохо защищенного от появления ошибок;

низкая скорость программирования;

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

  1. Разработан целый ряд языков, которые по степени близости к машинному языку принято делить на две группы: низкого и высокого уровня. К языкам низкого уровня относятся мнемокоды и макроязыки. Мнемокоды отличаются от машинного языка тем, что цифровые коды заменены мнемоническими (буквы и цифры) обозначениями. Макроязык, кроме того, содержит макрокоманды, которые соответствуют группе машинных команд. При этом программист может эффективно реализовать потенциальные возможности ЭВМ.
  2. https://infourok.ru/assembler-kak-mashinnoorientirovanniy-yazik-programmirovaniya-1622020.html)

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

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

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

  1. https://dic.academic.ru/dic.nsf/enc_mathematics/3066/%D0%9C%D0%90%D0%A8%D0%98%D0%9D%D0%9D%D0%9E)

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

К машинно-ориентированным языкам высокого уровня можно отнести такие языки как С++, Java, Pascal, Delphi и др. Высокоуровневые языки разработаны для быстроты и удобства использования программистами, использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием. Но эта особенность не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.

Так же каждый из языков программирования высокого уровня лучше всего справляется с разным списком задач, С++ как считают многие очень сложный в усвоении язык, но и после обучения отдача у него тоже высокая ,высокая скорость программирования, более широкий спектр применений, это язык который можно сказать даёт полный контроль над железом. Язык Java второй по популярности язык программирования в мире, который применяется так же широко, как C++, но не имеет большинства его недостатков. Java – это и разработка больших высоконагруженных продуктов для больших транснациональных компании, и небольшие приложения и игры для Android. Правда, и цена за эти преимущества достаточно высока: для изучения Java вам потребуется гораздо больше времени и усилий, чем для изучения того же PHP. Но и отдача будет высокой.

(3. https://studopedia.org/6-8939.html)

1.2 Машинные языки

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

-программы, написанные для машин одного типа, не годятся для использования машин другого типа;

-длительное время обучения программистов;

-программист, научившийся кодить на одной машине, должен с нуля переучиваться при переходе к кодированию на другой машине.

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

Один из путей машинного развития — приближение машинного языка к языкам высшего уровня тем самым упрощая перевод команд в инструкции понятные машине.

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

  1. https://www.booksite.ru/fulltext/1/001/008/074/635.htm)

1.3. Языки символического кодирования

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

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

Операнд, указанный таким образом, называется “литералом”.

  1. Костюк В.И. Основы построения автоматизированных систем управления Стр. 215)

Программа на языке символического кодирования представляет собой последовательность операторов. К основным относятся операторы:

- описания элементов программы;

- распределения памяти;

- соответствующие команды ЭВМ;

- управления последовательностью;

- обмена с внешними устройствами;

- специального назначения, в частности,для выдачи указаний транслятору;

Программирование на языке символического кодирования соответствует программированию в условных адресах в системе команд машины. Однако символическое кодирование имеет следующие преимущества по сравнению с программированием в машинных командах:

- автоматическое распределение памяти и формирование адресов;

- выражение кодов операций и операндов в мнемонической форме;

- возможность внесения изменений в программу добавлением, изъятием или заменой некоторых операторов без изменения других частей программы;

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

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

Язык символического кодирования расширяется введением в него символов новых операций – имен соответствующих стандартных программ, называемых макрокомандами.

  1. Бородин А.И. Основы алгоритмизации и программирования на ЭВМ стр. 55)

1.4. Автокоды

Языки, включающие в себя все возможности ЯСК , посредством расширенного введения макрокоманд - они называются Автокоды .

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

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

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

  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, незначительно отличающийся от стандарта. В отличие от Алгола он имеет более развитые средства описания формата входной и выходной информации, более полную библиотеку стандартных функций, допускает использование комплексных чисел и представление чисел с двойной точностью. Большинство конструкций Фортрана синтаксически проще соответствующих конструкций Алгола, проще он и в изучении. У фортрана более развитая структура программы. Программу можно разделить на отдельные сегменты, которые на этапе подготовки могут обрабатываться независимо. По мере необходимости они могут объединяться в единые комплексы. Другим достоинством является использования принципа умолчания при описании переменных. Тип переменной и ее длинна, если не указаны явно, предлагаются автоматически при обработке программы стандартными. К недостаткам по сравнению с Алголом можно отнести отсутствие строгого написания синтаксиса и отсутствие динамического распределения памяти. Под используемые массивы данных необходимо резервировать память исходя из максимальной размерности для данной задачи.

(16. Кафаров В.В. Основы построения операционных систем в химической технологии стр 34. )

Алгол – создан в 1960 г. и оказал большое влияние на развитие языков программирования . Алгол-программа всегда начинается словом begin ( начало) и кончается словом end (конец), их поэтому называют операторными скобками, записывается и прописными и строчными латинскими буквами, причем в публикациях операторы записываются полужирным шрифтом. Например, оператор условного перехода if… then… else… ( если… , то… , иначе… ) , где вместо многоточий стоят различные выражения, позволяет делать многое.

Simula- В 1966 была описана его первая версия , впоследствии ставшая известной как Simula 1. Язык Simula, известный как Simula 67, впервые описан в 1970.

По сути, первый объектно-ориентированный язык программирования. Разработан в 60-х годах сотрудниками Норвежского Вычислительного Центра, Осло (Norwegian Computing Center, Oslo) Уле-Йоханом Далем (Ole-Johan Dahl) и Кристеном Нюгором (Kristen Nygaard) для моделирования сложных систем.Общим предком практически всех используемых сегодня объектных и объектно-ориентированных языков является язык Simula. Язык Simula основывался на идеях ALGOL, но был дополнен механизмом наследования и инкапсуляции. Но еще более существенно то, что Simula, предназначен для описания систем и моделирования, ввел дисциплину написания программ, отражающих словарь предметной области.

Slang – это простейший автокод ориентированный для употребления на ЭВМ типа TPA

В ОИЯИ широко применяются малые вычислительные машины

типа ТРА. Одна из таких ЭВМ, IOOI TPA-i , используется в Лаборатории вычислительной техники и автоматизации в составе модернизированной электроники сканирующего автомата НРД 2. Трансляция и редактирование программ, создаваемых для малых машин типа ТРА на этих же машинах, - довольно трудоемкая задача в случаях, когда такие ЭВМ имеют небогатый набор внешних устройств.

С целью облегчения и ускорения программирования в группе модернизации НРД написан на ЭВМ СДС-1604А транслятор (кросс-ассемблер) с языка SLANG , который для программистов этой группы является основным языком программирования на I00I TPA-i .

(17. Растригин Л.А. С компьютером наедине стр. 77 )

2.3 Универсальные языки

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1 . Второй по мощности универсальный язык называется Алгол-68 . Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола . Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

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

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

(12. Лебедев В.Н. Введение в системы программирования стр. 22 )

Язык-оболочка, напротив, представляет собой конгломерат самых различных средств, имеющихся существующих процедурно-ориентированных и машинно-ориентированных языках. Разные подмножества языка-оболочки могут использоваться в качестве самостоятельных процедурно ориентированных языков. При достаточно широком наборе средств разработка новых процедурно-ориентированных языков вне рамок языка-оболочки становится ненужной, во всяком случае таков замысел создания языка-оболочки. Создание универсальных языков программирования обладающих в достаточно полной мере свойствами языка-ядра и языка-оболочки, - дело будущего. Однако уже сейчас разработаны и внедряются языки программирования, имеющие некоторые свойства описанных универсальных языков. Проекты универсальных языков программирования начали разрабатываться еще в первой половине 60 - х годов.

Обилие разработанных и вновь разрабатываемых языков программирования объясняется, с одной стороны, большим разнообразием типов машин, но в ещё большей степени - разнообразием классов решаемых на машинах задач. Постоянное увеличение числа типов машин и расширение сферы их применения приводит к столь же постоянному умножению числа машинно-ориентированных, процедурно-ориентированных и проблемно-ориентированных языков. А также соответствующих трансляторов. Чрезмерное “многоязычие” программирования порождает серьезные трудности. 1. Различные языки часто строятся на разных методических принципах. 2. На одной машине приходится иметь несколько совершенно разных трансляторов, что усложняет, а так же удорожает создание и эксплуатацию системного математического обеспечения, но, самое главное, отнюдь не останавливает появления все новых языков с их трансляторами. 3. При замене старых машин новыми необходимо перерабатывать или создавать заново все системные и прикладные программы. Это весьма трудоёмкая работа, если учесть, что обьём математического обеспечения современных вычислительных систем достигает многих сотен тысяч машинных слов. Частично переход к новой машине облегчается применением на некоторых машинах эмуляторов, позволяющих моделировать старую систему, однако это снижает быстродействие машины в 3-4 раза. Перечисленные трудности можно преодолеть созданием серий машин совместимых на программном уровне, и разработкой универсальных языков программирования. Работы ведутся в обоих направлениях в международном массиве.

(13. Лебедев В.Н. Введение в системы программирования стр. 20 )

Язык PASCAL является универсальным языком программирования компьютеров APPLE и Commodore. Используемая в компьютерах APPLE версия этого языка UCSD-PASCAL более эффективна, чем версия PASCAL на ЭВМ С 64. Не вникать в существо языка UCSD - PASCAL и в особенности в современный его вариант Turbo - PASCAL, значит не следовать современным тенденциям применения языков программирования. При использовании языка Turbo – PASCAL можно получить “быстродействующую” программу. Время обработки команд, особенно при использовании только арифметических действий над целыми числами, значительно сокращается. Для управления восемью линиями интерфейса требуется всего 0,1 мс , а на языках BASIC , COMAL, или LOGO для этого требуется около 10 мс.

Итак, использование языка Turbo – PASCAL в задачах управления позволяет компьютеру практически мгновенно реагировать на сигналы датчиков. Поэтому время счета ЭВМ уже не является большой проблемой, а контроль управляющих алгоритмов можно производить без учета временных ограничений. Кроме того, посредством рассматриваемой PASCAL-системы довольно просто осуществлять перевод программ с одной ЭВМ на другую.

( 14. Шварц Х.N. Использование компьютеров в регулировании и управлении стр. 61 )

2.4 Диалоговые языки

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

Применение малых ЭВМ для обработки текстовой информации и решения задач экономического характера привело к необходимости создания специального программного средства, удобного для пользователей, не имеющих достаточной квалификации в области программирования, и позволяющего с небольшими затратами трудовых и временных ресурсов решать довольно сложные задачи. В качестве одного из таких средств для моделей СМ-3 и СМ-4 была разработана инструментальная ДИАлоговая Многотерминальная система ( ДИАМС ) для решения информационно-вычислительных задач в режиме разделения времени.

(19. Сёмик В.П. Диалоговая многотермальная система для СМ ЭВМ стр.3 )

ДИАМС представляет диалоговый язык программирования высокого уровня, ориентированный на обработку строковых данных переменной длины, числовой информации и логических переменных. Язык содержит набор операций и функций: операции над строками ( сравнение, проверка по образцу, проверка включения и следования, преобразование строк и т.п.), арифметические операции над числами с фиксированной и плавающей точкой, поразрядные нулевые операции, а также набор команд ввода-вывода, управления, редактирования и отладки.

На основе ДИАМС могут быть построены информационно-поисковые и справочные системы, автоматизированные системы оперативного характера, системы обработки экономических данных, системы управления делопроизводством и другие системы, где требуются сбор, хранение и обработка данных в режиме коллективного доступа к базам данных многих пользователей с различных, в том числе удаленных,терминалов.

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

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

(18. Заморин А.П. Вычислительные машины, системы, комплексы стр. 132 )

2.5 Непроцедурные языки

Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. Непроцедурный язык – это мощное средство разработки сложных программных систем, позволяющее сконцентрировать внимание разработчика на описании целей и правил,а не на последовательности действий по их реализации (т.е. описывается “чтоделать” вместо “как делать”). Непроцедурный язык ориентирован на

конкретную предметную область (например, на автоматизацию технологических процессов на производстве). Различают два классических уровня реализации непроцедурного языка:

1. Формализованное описание предметной

области и логики функционирования системы без генерации исполнительного

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

2. Полноценная управляющая система, построенная на непроцедурном языке. Сложности процедурной реализации перекладываются при этом на исполнительную

систему, что обеспечивает ускорение разработки и значительное повышение надёжности создаваемых систем.Уровни 1 и 2 часто становятся этапами создания непроцедурного языка. Так, в частности, произошло и с языком “САРГОН” [1, 2].

(23. В.А. Менделевич непроцедурный язык программирования стр.26 )

2.6 Языки проектирования программ

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

Унификация языков проектирования позволяет обмениваться программными средствами или их компонентами, сокращает затраты на освоение языков и на технологические средства автоматизации их использования, способствует переносимости и повышению качества программных средств. Главными требованиями, предъявляемыми к системе языков проектирования, являются:

-технологичность разработки систем методом нисходящего проектирования;

-получение надёжных систем;

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

- сопровождаемость систем в течение всего жизненного цикла;

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

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

Наиболее известные языки проектирования на 2009 год:

-Языки проектирования аппаратуры

-VHDL

-Verilog

-SystemC

-Дракон

-UML

Также существуют средства проектирования на базе:

-Handel-C

-CatapultC

Далее хочу рассказать о нескольких из них.

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

(24. Грушвицкий Р.И. Проектирование систем на микросхемах программируемой логики стр. 218 )

Handel-C — Си-подобный язык программирования, имеющий встроенные возможности для параллельных вычислений через FPGA. Язык Handel-C был разработан в 1996 году в Оксфордском университете. По синтаксису он очень напоминает стандартный язык С и во многом похож на него семантически. Однако поскольку этот язык предназначен для параллельного выполнения программы, конечно, присутствуют и новые свойства, такие как организация параллелизма и взаимодействие процессов. Изначально язык Handel-C был нацелен на рынок встроенных систем, однако последние несколько лет фокусируется внимание также и на рынке высокопроизводительных вычислений на основе реконфигурируемых систем. Для организации параллелизма в языке Handel-C используется концепция взаимодействующих последовательных процессов, разработанная Хоаром. В Handel-C для этого задано ключевое слово par. Оно позволяет организовать блок операторов, в котором все операторы будут выполняться параллельно. С помощью ключевого слова seq внутри блока par можно задавать последовательные блоки вычислений, таким образом, организуя набор параллельно работающих процессов, каждый из которых выполняется последовательно. В языке Handel-C помимо использования конструкции par существует ещё один способ создания параллельной программы - это задание нескольких функций main. Таким образом, можно обеспечивать параллельное выполнение нескольких независимых ветвей программы. Важной особенностью является то, что для каждого такого процесса (который задаётся функцией main) можно задавать свою частоту, с которой этот процесс будет выполняться на ПЛИС. Между разными процессами возможно взаимодействие посредством тех же самых каналов, которые используются в блоке par. В Handel-C отсутствует поддержка чисел с плавающей запятой, поскольку для их реализации требуется большой объём ресурсов ПЛИС. Разработчики Handel-C рекомендуют по возможности использовать числа с фиксированной запятой или целые числа, однако в случае, если работа с числами с плавающей запятой необходима, можно использовать предоставляемую ими внешнюю библиотеку.

(20. https://ru.bmstu.wiki/Handel-C )

2.7 Языки гипертекстовой разметки

HTML (HyperText Markup Language) – язык разметки гипертекста, используется для создания веб-страниц. При помощи html создается логическая структура документа, а также определяется как будет выглядеть тот или иной элемент страницы (рекомендуется для определения вида элементов использовать не html, а технологию CSS). Файл веб-страницы содержит текст ASCII и имеет расширение .htm или .htmlРазметка текста в файле осуществляется при помощи тегов (tag). Теги заключаются в треугольные скобки.Виды тегов:одиночные (непарные) теги <tag>. Например тег <br>, который используется для перехода на новую строку

Теги-контейнеры <tag></tag>. Например тег <b></b>. После открывающего тега весь текст будет полужирным, пока тег не будет закрыт.Тег может иметь атрибуты. Атрибуты уточняют действие тега. Атрибут всегда ставится в открывающем теге, т.к. браузер считывает информацию слева направо всерху вниз. Для некоторых тегов применение атрибутов обязательно. Так например тег вставки изображения <img> должен иметь атрибут, в котором будет указан путь к файлу изображения, иначе изображение не будет отображаться на странице <img src="путь_к_изображению">. Некоторые теги могут использоваться вообще без атрибутов.Теги можно писать как в верхнем <TAG>, так и в нижнем <tag> регистре, для браузера это значения не имеет. Также не имеет значения, писать ли весть текст в одну строку или начинать каждый абзац или предложение с новой строки. Для читабельности кода рекомендуется всегда использовать один регистр (например нижний), начинать каждый новый элемент с новой строки и вставлять в код комментарии.

( 21. Author N.N. Microsoft access 2003 Шаг за шагом Практическое пособие стр. 370)

Новые версии популярных браузеров так же распознают нестандартные теги HTML и другие форматы файлов, такие, как Dynamic Hypertext Markup Language (DHTML) и Extensible Markup Language (XML).

2.8 Языки моделирования систем

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

Язык моделирования должен обеспечить:

1) удобство описания процесса функционирования системы,

2) удобство ввода исходных данных,

3) составление и варьирование структуры, параметров модели,

4) реализуемость как детерминированного, так и статистического моделирования.

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

В 50-е и 60-е годы прошлого века моделирование осуществлялось с помощью универсальных алгоритмических языков программирования. Таких как Фортран, Алгол, т.е. языков общего назначения. Применение таких языков требует высокой программистской квалификации. Вместе с тем программы получаются большими, громоздкими, требующими длительной отладки моделей. Ограничены возможности перестроить, видоизменить модель при необходимости. В результате такой способ программирования моделей малоэффективен, ненагляден и затруднителен для широкого пользователя. Позднее стали появляться системы моделирования, в основе которых был расширенный универсальный язык программирования. Расширение универсального языка, надстройка его учитывала специфику решаемого круга задач, специфику моделируемого объекта. К таким языковым средствам моделирования относится DSL (Digital Simulation Language) фирмы IBM для моделирования непрерывных систем. Дальнейшим развитием стала система CSMP, в основе которой были заранее запрограммированные функциональные блоки, наподобие блоков на аналоговых машинах. Расширенный ФОРТРАН в системе CSMP включал возможности обращения манипуляции этими блоками при разработке программы, реализующей ту или иную модель. Здесь широко используются операторы Фортрана. Однако в подобных системах большинство трудностей моделирования сохранилось. Подобные языки называют еще моделирующими языками высокого уровня или универсальными моделирующими языками. Разработан ряд моделирующих языков высокого уровня для моделирования дискретных систем, систем массового обслуживания. Таких, как SIMULA, SIMSCRIPT, GPSS, CSL и др. SIMULA представляет собой расширение языка АЛГОЛ, SIMSCRIPT — расширение Фортрана. Наибольшее распространение из этих языков получил язык GPSS. В GPSS важное место занимает обработка таких объектов, как транзакты (сообщения, заявки, запросы).Языки моделирования цифровых систем в основном обеспечивают задачи разработки цифровой аппаратуры. Их называют HDL или на русском языке — языки описания аппаратуры (ЯОА). Наиболее известным и эффективным ЯОА сегодня является язык VHDL.VHDL является единым, общим языком описания моделей и проектирования электронных устройств, начиная с вентильного, регистрового уровней и кончая уровнем описания вычислительных систем. Но основное назначением языка VHDL — описание заданий на моделирование. Для моделирования непрерывных динамических систем получил распространение язык CSMP, который реализует пакетный режим взаимодействия с пользователем. Появились и другие языки и системы моделирования непрерывных процессов, такие как MIDAS, PACTOLUS, CSSL. К отечественным языкам и системам моделирования непрерывных динамических систем относятся МАСЛИН и МАСС (разработанные сотрудниками МЭИ). Примерами языков, реализующих комбинированное моделирование являются GASP, НЕДИС и МИКС. GASP является расширением языка ФОРТРАН. Здесь непрерывные алгоритмы моделируются дифференциальными уравнениями, а дискретные процессы представляются в виде событий, наступление которых зависит от процесса функционирования системы. Событие — переход системы из одного состояния в другое в соответствии

с принятыми правилами. НЕДИС — язык моделирования непрерывно-дискретных систем разработан сотрудниками Института кибернетики Академии наук Украины. НЕДИС создан на основе алгоритмических языков высокого уровня и относится к системам программирования универсального типа, т.е. языки GASP и НЕДИС относятся к процедурным языкам программирования.МИКС (моделирование имитационное комбинированных систем) представляет собой удобное средство моделирования. Как и язык МАСЛИН, МАСС система МИКС имеет в своей основе блочно-ориентированный язык с непроцедурной технологией программирования, позволяющей легко и быстро моделировать исследуемую систему, осуществлять быстрое преобразование модели, воспроизводить реально действующие сигналы и организовать вычислительный эксперимент. Блочные языки и соответствующие программные модули позволяют легко реализовать динамическое распределение памяти посредством размещения во внешнее запоминающее устройство (ВЗУ) больших библиотек модулей, извлекать их по мере необходимости, пересылать их в оперативную память.Нельзя не упомянуть здесь такие программные системы как MathCad, Matlab, Matrix, которые нашли применение для решения большого круга задач с помощью программ, реализующих широко используемые математические методы решения разнообразных уравнений и систем, задач оптимизации, линейного программирования, для отладки типовых алгоритмов регулирования, для решения задач идентификации и проектирования. Для нас интерес представляют средства моделирования, встроенные в упомянутые системы. В этих комплексных системах используются такие средства моделирования как SYSTEM BULD и SIMULINK. Языки моделирования этих средств блочно-ориентированные и близки к языку моделирования системы МАСС. Но поскольку SYSTEM BULD и SIMULINK являются подсистемами комплексных систем, то освоение технологии работы с ними требует дополнительных знаний помимо знания языка моделирования. Например, SIMULINK не может работать без матричной системы MATLAB. Другими словами, средствам моделирования в этих системах принадлежит вторичная роль.

(22. https://all4study.ru/modelirovanie/kratkij-obzor-sovremennyx-yazykov-i-sistem-modelirovaniya.html )

Заключение.

Исходя из описанного ранее, языки программирования очень важная составляющая для созидания, упрощения ,автоматизации. Так же каждый из ЯП лучше всего подходит для разного типа задач. Например, язык java это универсальный язык программирования который используют различные компании в своем корпоративном сервером ПО. Написанные на java приложения можно найти практически везде ,от наших с вами смартфонов до автомобилей Tesla.

Библиография.

(1. https://infourok.ru/assembler-kak-mashinnoorientirovanniy-yazik-programmirovaniya-1622020.html)

(2. https://dic.academic.ru/dic.nsf/enc_mathematics/3066/%D0%9C%D0%90%D0%A8%D0%98%D0%9D%D0%9D%D0%9E)

(3. https://studopedia.org/6-8939.html)

(4. https://www.booksite.ru/fulltext/1/001/008/074/635.htm)

(5. Костюк В.И. Основы построения автоматизированных систем управления Стр. 215)

(6. Бородин А.И. Основы алгоритмизации и программирования на ЭВМ стр. 55)

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

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

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

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

(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 )

(12. Лебедев В.Н. Введение в системы программирования стр. 22 )

(13. Лебедев В.Н. Введение в системы программирования стр. 20 )

( 14. Шварц Х.N. Использование компьютеров в регулировании и управлении стр. 61 )

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

(16. Кафаров В.В. Основы построения операционных систем в химической технологии стр 34. )

(17. Растригин Л.А. С компьютером наедине стр. 77 )

(18. Заморин А.П. Вычислительные машины, системы, комплексы стр. 132 )

(19. Сёмик В.П. Диалоговая многотермальная система для СМ ЭВМ стр.3 )

(20. https://ru.bmstu.wiki/Handel-C )

( 21. Author N.N. Microsoft access 2003 Шаг за шагом Практическое пособие стр. 370)

(22. https://all4study.ru/modelirovanie/kratkij-obzor-sovremennyx-yazykov-i-sistem-modelirovaniya.html )

(23. В.А. Менделевич непроцедурный язык программирования стр.26 )

(24. Грушвицкий Р.И. Проектирование систем на микросхемах программируемой логики стр. 218 )