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

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

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

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

Добавлен: 25.04.2023

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

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

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

(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 Языки проектирования программ

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

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

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

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

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

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

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

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