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

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

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

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

Добавлен: 12.03.2024

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

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

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

Глава 2. Основные виды высокоуровневых языков

2.1 Фортран и Лисп – первый и второй высокоуровневые языки

В 1954 году разработчики из компании IBM, возглавляемые Джоном Бэкусом, создали язык, посредством которого программисты получили возможность значительно облегчить взаимодействие с ПК, которое до того момента осуществлялось посредством машинных команд либо ассемблера. Он получил название Fortran и вскоре стал известен и в СССР под русифицированным наименованием. Фортран стал популярным инструментом для научных вычислений. Основным революционным элементом, предложенным специалистами IBM сообществу, стал, собственно, тот самый компилятор, призванный быть альтернативой ассемблеру. В первые годы практики написания программ при использовании Фортран многие разработчики считали компилятор не вполне удачным решением, прежде всего, с точки зрения трудозатрат. Многие машинные коды, действительно, составлялись проще, чем при задействовании транслятора. Но по мере быстрого увеличения производительности компьютеров программисты осознали, что без использования компилятора эффективное ПО, которое будет полностью задействовать вычислительные мощности ПК, создавать проблематично. [3]

Основные синтаксические конструкции языка программирования высокого уровня Фортран во многих случаях стали задейстоваться в качестве базовых при создании новых решений. Примером достижения практических результатов в области развития концепций, заложенных в Фортран, можно считать создание Лисп. Данный язык был разработан в 1958 году, однако, широкую известность он приобрел несколько позже – в 1960-м. Лисп был разработан Джоном Маккарти и опубликован в одном из популярных журналов для IT-специалистов. Основное предназначение рассматриваемого языка – обработка списков. Лисп стал популярен в среде разработчиков систем искусственного интеллекта. На его основе были созданы такие языки, как Planner, Scheme, а также Common Lisp. Также Лисп оказал значительное влияние на многие современные инструменты разработки ПО. Структура языков программирования высокого уровня, популярных сегодня, в значительной степени базируется на алгоритмах Фортран и Лисп. Интересно будет, однако, рассмотреть иные подходы к классификации рассматриваемых инструментов разработки средств ПО. [4]


2.2 Процедурно-ориентированное программирование

Процедурно-ориентированное программирование - метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых операторов. При этом используется процедурно-ориентированный язык программирования, например, Паскаль, Фортран.

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

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

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

Процедурные языки характеризуются следующими особенностями:

• необходимостью явного управления памятью, в частности, описанием переменных;

• малой пригодностью для символьных вычислений;

• отсутствием строгой математической основы;

• высокой эффективностью реализации па традиционных ЭВМ.

Различают такие языки процедурного программирования:

Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач;

Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;


В середине 60-х годов 20-го века был создан специализированный язык программирования для начинающих – BASIC. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых. [8]

Язык Паскаль (PASCAL) (1968-1971гг)- язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. К языкам процедурного программирования можно отнести язык АДА (1979) Язык назван в честь первой программистки Ады Лавлейс- дочери Байрона. Его отличает модульность конструкций.

Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык. [2]

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

К основным принципам, которыми обладает Паскаль, можно отнести:

а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных;

б) Программирование «сверху-вниз», когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.

Pascal реализован на ЭВМ различных типов, но наиболее распространен и развит для ПЭВМ. В настоящее время широко используются такие версии этого языка для ПЭВМ, как Borland Pascal и TurboPascal.

Язык Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности.

Pascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом (как на этапе компиляции, так и при исполнении программ). Паскаль – компилятор, то есть, прежде чем начать исполнение программы, Паскаль полностью прочитывает исходный текст, написанный программистом, и составляет последовательность машинных кодов, выполняющую те действия, которые описал программист в тексте. Эта последовательность сохраняется в файл с расширением “.EXE” и является самостоятельным исполняемым файлом, который может быть запущен сам по себе. [5]


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

Program <Имя программы>; {заголовок}

<Раздел описаний>

Begin

<Тело программы>

End. [1]

В начале программы пишется заголовок, состоящий из зарезервированного слова program и имени программы, которое придумывает программист. После заголовка программы идет раздел описаний, в котором программист описывает все имена, которые он сам придумал, и поясняет Паскалю, что эти имена означают. [6]

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

Константа - явное представление значения. При выполнении программы значение константы никогда не меняется. После описаний констант идет раздел описания переменных. Переменная - это реальный объект, который используется для хранения значения определенного, связанного с ним типа. Запоминание нового значения в переменной уничтожает старое значение, которое до сих пор хранилось в переменной. Таким образом, переменная может менять свое значение в процессе выполнения программы. Переменные отличаются от констант тем, что им можно присваивать новые значения при исполнении программы. Подраздел описания переменных начинается со служебного слова var. Следом идут описания переменных, каждое из которых начинается со списка имен переменных, разделяемых запятыми, затем идет символ «:», затем указывается тип этих переменных. Завершается каждое описание точкой с запятой. Тип данных характеризует множество значений, которые может принимать объект; множество операций, которые могут применяться к объекту; размер памяти, занимаемый объектом. В программе на Паскале можно использовать много типов переменных и создавать свои типы. В стандарте Паскаля определено 4 простых типа: integer- целый, real- вещественный, char - символьный и boolean - логический.

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

2.3 Объектно-ориентированное программирование


Вопросы реализации программного обеспечения, разработка которого велась с применением одной из объектно-ориентированных методологий, рассматриваются в разделе 5. Реализация программного обеспечения связана с использованием одного из языков программирования. Показано, что наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran). [8]

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

Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. [1]

Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др.

Наиболее распространенным объектно-ориентированным языком программирования безусловно является C++. Свободно распространяемые коммерческие системы программирования C++ существуют практически на любой платформе. Широко известна свободно распространяемая система программирования G++, которая дает возможность всем желающим разобрать достаточно хорошо и подробно прокомментированный исходный текст одного из образцовых компиляторов языка C++. Завершается работа по стандартизации языка C++: последний Draft стандарта C++ выпущен в июне 1995 г. (он доступен по Internet). [10]