Файл: Обзор языков программирования высокого уровня (Понятие языка программирования).pdf

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

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

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

Добавлен: 03.07.2023

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

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

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

Декларативные языки программирования. В декларативном программировании задается спецификация решения задачи, то есть дается описание того, что представляет собой проблема и какой ожидается результат. Программы, созданные с помощью декларативного языка, не содержат переменные и операторы присваивания. К декларативным языкам можно отнести SQL и HTML. К подвидам декларативного программирования относится функциональное и логическое программирование[5].

Функциональные языки программирования Функциональные языки являются языками искусственного интеллекта. Программа, написанная на функциональном языке, состоит из последовательности функций и выражений, которые необходимо вычислить. Основной структурой данных является связный список. Функциональное программирование принципиально отличается от процедурного. Основными функциональными языками являются Lisp, Miranda, Haskel.

Логические языки программирования.

Языки, ориентированные на решение задач без описания алгоритмов, языки искусственного интеллекта. Представителем логического программирования является Prolog, которым написано большинство экспертных систем.

Языки сценариев (скрипты)

Языки относятся к объектно-ориентированным языкам, используются для написания программ, которые исполняются в определенной программной среде. Тексты программ, написанные на языке сценариев, можно включать в тело Html-документа. Первыми скриптами были Perl и Python, которые изначально были разработаны для операционной системы Unix, а уже в дальнейшем появились версии языков для операционных систем Windows и Macintosh. Для написания программ на языке сценариев необходимо знание процедур и функций системных библиотек. Языки, ориентированные на данные Языки ориентированы на работу с одним определенным типом данных. Например, APL работает с матрицами и векторами, Snobol обрабатывает строки, SETL выполняет операции над множествами.

2. ХАРАКТЕРИСТИКА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

2.1 Фортра́н (Fortran)

Фортра́н (Fortran) — первый язык программирования высокого уровня, получивший практическое применение. Язык был создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM.

Эпоха, когда прикладные программы создавались на языке Fortran, почти полностью совпадает с периодом существования компьютеров общего назначения. Это удивительный факт, и с учётом того, что многие другие языки программирования высокого уровня прекратили своё существование, трудно понять, почему получилось именно так. Возможно, исходные принципы проектирования Джона Бэкуса (John Backus) – простота использования и эффективность выполнения – стали двумя решающими факторами. Возможно, сыграла роль преданность языку Fortran сообщества его пользователей, которые всегда старались не отставать от новейших разработок в области технологии программирования и адаптировать язык к постоянно расширяющемуся кругу требований


Fortran - это одна из немногих действительно удобных сред разработки для одноименного языка. Вообще Фортран, нынче не особенно востребован, так что найти достойное программное решение для написания кода на нем, да еще и со встроенным дебаггером, довольно сложно. Так что адекватных альтернатив данному приложению не существует[6].

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

Независимые процедуры могут быть скомпилированы отдельно или сгруппированы в модули, что упрощает создание крупномасштабных программ и библиотек процедур. В язык включены функциональные возможности для обработки массивов, абстрактные типы данных, динамические структуры данных, средства объектно-ориентированного программирования и параллельной обработки. Fortran способен без затруднений взаимодействовать с C. Таким образом, современный Fortran, начиная с версии Fortran 95 (так теперь стали обозначаться версии стандарта) – это мощный инструмент.

Он в полной мере поддерживает структурное программирование, а средства объектно-ориентированного программирования, появившиеся в стандарте Fortran 2003, стали самым значительным усовершенствованием языка, его главным нововведением.

Но ни один стандарт до Fortran 2003 включительно не содержал никаких средств, специально предназначенных для поддержки параллельного программирования. Такая поддержка осуществлялась опосредованно, с привлечением вспомогательных стандартов, в частности HPF (High-Performance Fortran), MPI (Message Passing Interface), OpenMP и Posix Threads (Pthreads). Использование библиотек MPI и OpenMP стало массовым явлением, но HPF в конечном счёте не имел особого успеха[7].

Сейчас, после принятия стандарта Fortran 2008 одним из самых сильных свойств современного языка Fortran является непосредственная поддержка параллельного программирования, благодаря введению чрезвычайно востребованного средства: комассивов (coarrays).


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

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

Posix Threads – это стандарт, определяющий спецификацию библиотеки для поддержки многопоточности.

В отличие от всех перечисленных средств, главной целью введения комассивов является предоставление синтаксиса, минимально влияющего на внешний вид программы и позволяющего распределить по нескольким процессорам не только данные, как в модели «одна инструкция, много данных» (Single Instruction Multiple Data, SIMD), но и работу в соответствии с моделью «одна программа, много данных» (Single Program Multiple Data, SPMD). От программиста требуется знание лишь небольшого набора новых правил. Работа с комассивами — это самое важное новшество в стандарте Fortran 2008, но кроме него была введена новая форма управляющей конструкции doconcurrent как способ распараллеливания циклов. Вполне очевидно, что появилась возможность обеспечения полноценного режима параллельного выполнения, не выходя за рамки языка[8].

Другие важные нововведения в стандарте Fortran 2008: подмодули (submodules), более удобный доступ к объектам данных, усовершенствованные средства ввода/вывода и управления выполнением, дополнительные внутренние процедуры, в частности, для работы с битами. Fortran 2008 был опубликован в 2010 году, и в настоящее время является действующим стандартом.

Возможности

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

Из прочих преимуществ стоит выделить наличие системы всплывающих подсказок, которые отображаются при написании кода на Fortran. Программа может автоматически указывать на частые проблемы вроде зацикливающихся функций и ошибок в названиях команд/аргументов. Редактор отличное запускается под WINE на системах отличных от Windows и комплектуется подробной документации. Последняя, как и сама программа, доступна исключительно на английском языке. Впрочем, учитывая "специализацию" ПО данный факт сложно отнести к серьезным недостаткам[9].


Интерфейс

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

Ключевые особенности

  • удобная среда для программирования на Fortran;
  • предоставляет инструменты для дебаггинга и рефакторинга;
  • дает возможность "тонко" настроить подсветку синтаксиса;
  • имеет крайне простой и интутивный интерфейс, подлежащий масштабированию;
  • сопровождается подробной документацией;
  • указывает на допущенные ошибки. 

В реализации современного Fortran многое осталось неизменным:

• Fortran нечувствителен к регистру символов, в отличие от многих языков программирования, используемых в наши дни;

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

• по своей сущности Fortran ориентирован на эффективное выполнение. Это особенно заметно в последнем стандарте Fortran 2008, где все нововведения направлены на то, чтобы помочь компилятору в создании быстрых и эффективных программ.

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

real :: r

r = 1 / 3

Здесь переменная r получает значение 0.0, а не 0.333333..., так как сначала выполняется операция деления двух целых чисел, результатом которой является новое целое число, а затем полученное целое число преобразуется в вещественное.

Точно такое же разделение операций и преобразования их результатов справедливо для операций с массивами:

integer, dimension(10) :: array

array = 2 * array(10:1:-1)

Эта инструкция выполняется (по крайней мере, теоретически) следующим образом:

integer, dimension(10) :: array

integer, dimension(10) :: tmp

integer :: i

Сначала вычисляется правая часть выражения, и результат сохраняется во временном массиве.

do i = 1,10

tmp(i) = 2 * array(11-i)

enddo

Теперь результат правой части выражения копируется в массив слева от знака равенства.


do i = 1,10

array(i) = tmp(i)

enddo

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

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

2.2 COBOL (Кобол)

Язык программирования COBOL - название акроним от общего бизнес-ориентированного языка (COmmon Business Oriented Language). Программирование для начинающих.

Язык программирования КОБОЛ был первоначально создан в 1959 на Комитете "The Short Range Committee". Это один из трех комитетов, предложенных для создания на совещании, состоявшемся в Пентагоне в мае 1959 года, организованного Чарльзом Филлипомс из Министерства обороны США.

"The Short Range Committee" был сформирован для разработки рекомендаций относительно нового языка программирования для бизнеса. Он состоял из членов, представляющих шесть производителей компьютеров и трех правительственных учреждений. В частности, шесть компаний-производителей компьютерных Burroughs Corporation , IBM , Minneapolis-Honeywell, RCA , Sperry Rand , и Sylvania Electric Products. Программирование для чайников. Три государственных учреждения были: ВВС США , David Taylor Model Basin, и Национальное бюро стандартов. Этот комитет был под председательством члена Национального бюро стандартов. После создания Комитет разработал спецификации языка программирования КОБОЛ.

Эта группа завершила спецификацию для COBOL, и в 1959 года подошла к выпустила в свет. Спецификации были в значительной степени вдохновлены FLOW-MATIC, языком, который был изобретен Грейс Хоппер, и языком от IBM, который назывался COMTRAN, а изобрел его Боб Бемер.
Спецификации были утверждены полным составом Комитета. После чего они были утверждены Исполнительным комитетом в январе 1960 , и отправлены в типографию правительства, которое отредактировало и напечатало эту спецификацию как язык программирования Cobol 60[10].

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

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