Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (История развития и появления языков программирования).pdf
Добавлен: 28.03.2023
Просмотров: 350
Скачиваний: 3
Проблемно-ориентированные языки программирования позволяют свести к минимуму затраты программиста на постановку задачи, которую необходимо решить в терминах программы. В машинно-ориентированных языках элементы и его грамматика направлены на оптимальное использование характеристик и структур аппаратного обеспечения ЭВМ, а не на решение конкретной задачи. Именно по этой причине программирование задачи на машинно-ориентированном языке требует знания специальных свойств ЭВМ и связано с большими затратами. Но такие языки позволяют экономно загружать запоминающие устройства и создавать программы, выполнение которых требует минимального машинного времени.
Проблемных языков очень много, например:
FORTRAN, ALGOL - языки, созданные для решения математических задач;
SIMULA, СЛЭНГ - для моделирования;
LISP, SNOBOL - для работы со списочными структурами.
Универсальные языки
Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков PL/1. Второй по мощности универсальный язык называется ALGOL-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. PL/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.
Программы в PL/1 компилируются с помощью автоматических процедур. Язык использует многие свойства FORTRAN, ALGOL, COBOL (На COBOL написаны тысячи прикладных коммерческих систем. Язык являлся первым языком программирования, в котором введен тип данных «запись». Отличительной особенностью языка является возможность эффективной работы с большими массивами данных. Популярность COBOL высока, даже в настоящее время используется COBOL-74). Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.
Диалоговые языки
Появление новых технических возможностей поставило задачу перед системными программистами - создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.
Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.
Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является BASIC (Бейсик).
BASIC использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка FORTRAN. Поэтому этот язык позволяет решать достаточно широкий круг задач.
Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
макрос автокод ASSEMBLER
ASSEMBLER
Язык Ассемблера (assembly language) (1949) - это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах.
Программисту не обязательно употреблять настоящие адреса ячеек памяти с размещенными в них данными, участвующими в операции, и вычисляемые результаты, а также адреса тех команд, к которым программа не обращается.
Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ASSEMBLER.
В принципе, язык ASSEMBLER является машинным языком. И программист реализующий какую-либо задачу на языках высокого уровня, с помощью ASSEMBLER может определить осмыслено ли решение данной задачи, с точки зрения использования ЭВМ.
Умея разобраться в распечатке языка ASSEMBLER, дает возможность облегчить поиск ошибок в программах, т.к. некоторые языки являются компиляторами.
Один из самых старых языков программирования - FORTRAN был создан в 50-х гг. нашего века. FORTRAN и подобные ему языки программирования (ALGOL, PL/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами.
Второй старейший язык программирования - LISP (List Information Symbol Processing), Дж. Маккарти в 1962 г. скорее для работы со строками символов, нежели для работы с числами. Это особое предназначение LISP открыло для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время LISP успешно применяется в экспертных системах, системах аналитических вычислений и т.п.
Обширность области возможных приложений LISP вызвала появление множества различных диалектов LISP. Это легко объяснимо: применение LISP для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики.
Существование множества различных диалектов LISP привело к созданию в начале 80-х гг. Common LISP Комитета, который должен был выбрать наиболее подходящий диалект LISP и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985г., получил название Common LISP. В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка LISP.
Язык программирования LISP существенно отличается от других языков программирования, таких, как PASCAL, C и т.п. Работа с символами и работа с числами как с основными элементами требует разных способов мышления.
Первоначально LISP был задуман как теоретическое средство для рекурсивных построений, а сегодня он превратился в мощное средство, обеспечивающее программиста разнообразной поддержкой, позволяющей ему быстро строить прототипы весьма и весьма серьезных систем.
Профессор Массачусетского технологического института Дж. Самман заметил, что математическая ясность и предельная четкость LISP - это еще не все. Главное - LISP позволяет сформулировать и запомнить «идиомы», столь характерные для проектов по искусственному интеллекту.
FORTRAN
Одним из первых и наиболее удачных компиляторов стал язык FORTRAN, разработанный фирмой IBM. Профессор Дж. Букс и группа американских специалистов в области программирования в 1954 году опубликовало первое сообщение о языке. Дословно, название языка FORmulae TRANslation -преобразование формул.
Среди причин долголетия FORTRAN (а он один из самых распространенных языков в мире), можно отметить простую структуру, как самого FORTRAN, так и предназначенных для него трансляторов. Программа на языке FORTRAN записывается в последовательности предложений или операторов (описание некоего преобразования информации), и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на языке FORTRAN, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой.
FORTRAN был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т.д.), некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т.д.).
Модификация языка FORTRAN, появившиеся в 1958 году, получила название FORTRAN II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами.
К 1962 году относится появление языка, известного под именем FORTRAN IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельности комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 году два стандарта - языки FORTRAN и BASIC (основной) FORTRAN (Basic FORTRAN). Эти языки приблизительно соответствуют модификациям IV и II, однако BASIC FORTRAN является подмножеством FORTRAN, в то время, как FORTRAN II таковым для FORTRAN IV не является. Язык FORTRAN до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например, FORTRAN заложен в основу BASIC - диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Разработан этот язык - Beginner's All -purpose Symbolic Instruction Code - группой сотрудников Вычислительного центра Дармутского колледжа, штат Нью-Хемпшир созданный в 1964 г. Но это уже следующий язык.
BASIC
Как знаменитые гамбургеры, бейсбол и баскетбол, BASIC - это продукт Новой Англии. Как я говорил, созданный в 1964г., как язык обучения программированию. BASIC является общепринятым акронимом от "Beginner's All-purpose Symbolic Insruction Code" (BASIC) - Многоцелевой Символический Обучающий Код для Начинающих".
Вскоре как обучаемые, так и авторы программ обнаружили, что BASIC может делать практически все то, что делает скучный неуклюжий FORTRAN. А так как BASIC было легко обучиться и легко с ним работать, программы на нем писались обычно быстрее, чем на FORTRAN. BASIC был также доступен на персональных компьютерах, обычно он встроен в ПЗУ. Так BASIC завоевал популярность. Интересно, что спустя 20 лет после изобретения BASIC, он и сегодня самый простой для освоения из десятков языков общецелевого программирования, имеющихся в распоряжении любителей программирования. Более того, он прекрасно справляется с работой.
Несмотря на высказывания снобов - сторонников языков C и PASCAL, BASIC считается деловым языком, снабженным мощными средствами решения специфических задач, которые обычно большинство пользователей решают при помощи небольших компьютеров, а именно: работая с файлами и выводя текстовое и графическое изображение на экране дисплея.
Несмотря на отдельные недостатки BASIC, никто не будет отрицать, что Кемени и Куртс достигли основной цели: сделать программирование доступнее для большего числа людей.
Исторически BASIC обычно реализовался как интерпретатор (знакомым изомером является сам интерпретаторный BASIC). Причинами перехода от любительского уровня к профессиональному являются многочисленные расширения классической версии языка: возможность отключения нумерации строк, многостроковые структурированные программные конструкции, структуры типа "запись", поименованные подпрограммы с параметрами и локальные переменные.
Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. В связи с этим можно отметить два недостатка метода интерпретации: первый - интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т. е. занимать определенный объем памяти; второе - процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.
Более того, с появлением транслятора QUICKBASIC фирмы MICROSOFT разработчики получили возможность строить на BASIC приложения из раздельно откомпилированных модулей, некоторые из которых могут быть написаны на других языках. Теперь, как и в случае других ведущих языков программирования, разработчик имеет выбор из нескольких промышленных библиотек подпрограмм, которые содержат готовые решения для распространенных задач программирования.
РЕФАЛ (РЕкурсивных Функций АЛгоритмический), разработанный у нас в России (СССР), в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.
РЕФАЛ широко применяется при разработке трансляторов с алгоритмических языков как универсальных и проблемно - ориентированных, так и автокодов. Кроме использования в задачах трансляции, РЕФАЛ имеет такие важные сферы применения, как машинное выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике; проектирование «умных» информационных систем, осуществляющих нетривиальную логическую обработку информации; машинное доказательство теорем; моделирование целенаправленного поведения; разработка диалоговых обучающих систем; исследования в области искусственного интеллекта и т.п.
Программирование на РЕФАЛе имеет специфику, связанную, прежде всего, с тем, что РЕФАЛ является языком функционального типа в отличие от обычных операторных языков типа ALGOL, FORTRAN и т.д. Если программа на операторных языках - ни что иное, как совокупность приказов-операторов, то программа на РЕФАЛе представляет собой по существу описание связей и отношений между определенными понятиями.