Файл: Классификация языков программирования высокого уровня (ОБЗОР ТИПОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

Модификация языке Фортран, введена в 1958 году, называлась Фортран II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами.

Фортран IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельности комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 году два стандарта – языки Фортран и базисный (основной) Фортран (Basic FORTRAN) [11].

Эти языки приблизительно соответствуют модификациям IV и II, однако базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таковым для Фортрана IV не является. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например, Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Разработан этот язык – Beginner’sAll –purposeSymbolicInstructionCode – группой сотрудников Вычислительного центра Дармутского колледжа, штат Нью-Хемпшир созданный в 19….. Но это уже следующий язык.

3.4 Бейсик

Как знаменитые гамбургеры, бейсбол и баскетбол, Бейсик - это продукт Новой Англии. Как я говорил, созданный в 1964г., как язык обучения программированию. Бейсик является общепринятым акронимом от "B eginner's A ll-purpose S ymbolic I nsruction C ode" (BASIC) - М ногоцелевой С имволический О бучающий К од для Н ачинающих".

Только как обучаемые, так и авторы программ обнаружили, что Бейсик может делать практически все, что делает скучный неуклюжий Фортран. А так как basic был прост в освоении и удобен в работе, программы на нем писались обычно быстрее, чем на Fortran E.

Basic также был доступен на персональных компьютерах, обычно он встроен в ПЗУ. Так основной приобрел популярность. Интересно, что спустя 20 лет после изобретения basic a, он по-прежнему является самым простым в изучении из десятков языков программирования общего назначения, доступных любителям программирования. Кроме того, он делает большую работу [3].

Несмотря на заявления снобов - сторонников языков C и Pascal, basic считается деловым языком, оснащенным мощными средствами решения конкретных задач, которые большинство пользователей обычно решают с помощью небольших компьютеров, а именно, работа с файлами и отображение текста и графического изображения на экране дисплея.

Несмотря на некоторые недостатки basic a, никто не будет отрицать, что Кемени и Курц достигли главной цели: сделать программирование более доступным для большего количества людей.


Исторически, основной является, как правило, реализован как интерпретатор (знакомым изомером является сам интерпретатор Бейсик ). Причинами перехода с любительского на профессиональный уровень являются многочисленные расширения классической версии языка: возможность отключения нумерации строк, многострочные структурированные программные структуры, структуры типа "запись", именованные подпрограммы с параметрами и локальными переменными [3].

Более того, с появлением Microsoft QuickBasic translator разработчики смогли создавать приложения на basic из отдельно скомпилированных модулей, некоторые из которых могут быть написаны на других языках.

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

3.5 Рефал

Несомненно надо рассказать и о некоторых языках программирования созданных у нас на родине. Один из таких языков является Рефал, разработанный у нас в России (СССР), в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.

Рефал широко применяется при разработке трансляторов с алгоритмических языков как универсальных и проблемно – ориентированных, так и автокодов. Кроме использования в задачах трансляции, Рефал имеет такие важные сферы применения, как машинное выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике; проектирование «умных» информационных систем, осуществляющих нетривиальную логическую обработку информации; машинное доказательство теорем; моделирование целенаправленного поведения; разработка диалоговых обучающих систем; исследования в области искусственного интеллекта и т.п. [7].

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

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


Определенной спецификой обладают и переменные типа «выражения» – имеется в виду их способность удлиняться при отождествлении. Правильное использование переменных этого типа также позволяет значительно повысить эффективность Рефал – программы [7].

Таким образом, программирование на Рефал е имеет специфику, связанную, прежде всего, с тем, что Рефал является языком функционального типа в отличие от обычных операторных языков типа Алгол, Фортран и т.д.

3.6 Пролог и Пролог ++

Пролог - это язык, предназначенный для поиска решений. Это декларативный язык, то есть формальная постановка задачи может быть использована для ее решения. Пролог определяет логические отношения в задаче, как отличные от пошагового решения этой задачи.

Центральной частью Пролога являются средства логического вывода, которые решают запросы, используя заданное множество фактов и правил, к которым обращаются как к утверждениям. Пролог также не имеет деления переменных на типы и может динамически добавлять правила и факты к средствам вывода. Таким образом, это гибкий язык, и он более пригоден для объектно-ориентированного расширения, чем язык со строго заданными типами, например, Паскаль. Пролог ++ представляет собой дополнение к стандартному Прологу [7].

Все свойства языка по-прежнему доступны программистам. Следовательно, Пролог ++ можно отнести к группе гибридных языков, представителями которой считаются Object Pascal и C++. Расширение Пролог ++ поддерживает все свойства, присущие обычно объектно-ориентированным языкам: концепции объектов и классов, единичное и многократное наследование, разбиение на подклассы и передачу сообщений. Поддерживаются также некоторые усовершенствованные свойства, существующие в таких языках, как C++ и Smalltalk, включая общие и частные методы.

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

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


Таким образом, сам язык основан на концепции передачи сообщений. Программа на Пролог ++ строится вокруг множества объектов Пролог а ++, которые обмениваются сообщениями. В этом смысле Пролог ++ ближе к чистому объектно-ориентированному языку, такому, как Smalltalk, чем C++ или Object Pascal. Определения объектов строятся исходя из вызовов, а методы определяются практически так же, как в других объектно-ориентированных языках. Для задания наследования можно явным образом указать, какой метод какого объекта должен наследоваться, что является необходимым для многократного наследования.

3.7 Лекс

Лекс – генератор программ лексического анализа. Лексический анализ – это распознавание лексем во входном потоке символов. Предположим, что задано некоторое конечное множество слов (лексем) в некотором языке и некоторое входное слово. Необходимо установить, какой элемент множества (если он существует) совпадает с данным входным словом. Обычно лексический анализ выполняется так называемым лексическим анализатором. Лексический анализатор – это программа. Лексический анализ применяется во многих случаях, например, для построения пакетного редактора или в качестве распознавателя директив в диалоговой программе и т.д. Однако, наиболее важное применение лексического анализатора – это использование его в компиляторе. Здесь лексический анализатор выполняет функцию программы ввода данных [7].

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

Лексический анализатор распознает тип каждой лексемы и соответствующим образом помечает ее. Например, при компиляции Си-программы могут быть выделены следующие типы лексем: число, идентификатор, оператор, ограничитель и т.д.

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

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


3.8 Cи

Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке [14].

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

Язык Си имеет свои существенные особенности, давайте перечислим некоторые из них:

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

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

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