ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 1 ОБЗОР ЯЗЫКА. ОБ ЭТОЙ ЧАСТИ В этой части представлены как одно целое все компоненты язы- ка МС Фортран. СОДЕРЖАНИЕ 1. МЕТАКОМАНДЫ МС-ФОРТРАНА. . . . . . . . . . . . . . . . . 1-1 2. ПРОГРАММЫ И КОМПИЛИРУЕМЫЕ ЧАСТИ ПРОГРАММ. . . . . . . . . 1-1 3. ВВОД/ВЫВОД. . . . . . . . . . . . . . . . . . . . . . . . 1-2 4. ОПЕРАТОРЫ. . . . . . . . . . . . . . . . . . . . . . . . 1-3 6. ИМЕНА. . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 7. ТИПЫ. . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 8. СТРОКИ. . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 9. СИМВОЛЫ. . . . . . . . . . . . . . . . . . . . . . . . . 1-6 1. МЕТАКОМАНДЫ МС-ФОРТРАНА. Метаязык - это язык управления компилятором MS-Фортрана. Ме- такоманды позволяют Вам определить варианты, воздействующие на все операции компиляции. Например, с помощью метакоманд Вы можете включить или выключить генерацию файла листинга, проверку кода при ошибке счета, или использовать такие возможности Фортрана, которые не входят в подмножество или в полный стандарт языка. Ме- таязык содержит команды, которые вставляются в файл исходного текста, каждая из которых занимает отдельную строку, и каждая из которых начинается с символа доллар ($) в первой колонке. Метаязык - это уровень языка, позволяющий расширить исполь- зование компилятора MS-Фортрана. Хотя в большинстве реализаций Фортрана есть средства управления компилятором, метакоманды MS-Фортрана не входят в стандарт Фортрана (и поэтому не мобиль- ны). Ниже приведены существующие в настоящий момент метакоманды: $[NO]DEBUG $[NO]LARGE $PAGESIDE $DEVFNH $LINESIDE $STORAGE $DO66 $[NOT]LIST $[NOT]STRICT $[NO]FLOATCALLS $MESSADE $SUBTITLE $INCLUDE $PAGE $TITLE Смотрите часть 6 "Метакоманды MS-Фортрана" для подробного изучения метакоманд. 2.ПРОГРАММЫ И КОМПИЛИРУЕМЫЕ ЧАСТИ ПРОГРАММ. Компилятор MS-Фортрана производит программные единицы. Ими могут быть основная программа, подпрограмма или функция. Вы може- те откомпилировать любую из этих единиц отдельно и затем загру- зить их вместе без объединения их еще до компиляции. 1.Программа. ____________ Любая программная единица, не начинающаяся с оператора FUNCTION или SUBROUTINE. Первым оператором может быть PROGRAM, но такой оператор не обязателен. Выполнение программы всегда начина- ется с первого выполняемого оператора в главной программе. Следо- вательно в каждой выполняемой программе должна быть единственная главная программа. 2.Подпрограмма. _______________ Программная единица,которая может вызваться из других прог- раммных единиц оператором CALL, будучи вызванной, подпрограмма осуществляет набор действий, определенных ее выполняемыми опера- торами, и затем возвращает управление на оператор, стоящий непос- редственно за оператором вызова. Подпрограмма не возвращает прямо величины, хотя они могут быть переданы в вызывающую программную единицу через параметры или общие переменные. 3.Функция. __________ Программная единица, которая может быть употреблена в выра- жении. Функция прямо возвращает величину, которая используется при вычислении этого выражения, и кроме того может возвращать ве- личины через параметры. Существует три вида функций: внешние, внутренние и функция-оператор. (Функция-оператор не может быть скомпилирована отдельно). 4.Подпрограмма блока данных. ____________________________ Программная единица, обеспечивающая начальные значения пере- менных в COMMON-блоках. Переменные обычно заводятся оператором DATA, но переменные в COMMON не могут быть заведены нигде кроме подпрограммы блока данных. Подпрограммы и функции позволяет Вам создавать большие структурированные программы, которые можно делить на части. Это дает преимущества в следующих ситуациях: 1. Если программа большая, разделение ее на части облегчает соз- дание, тестирование и ее сборку. 2. Если программа большая и повторная компиляция всего исходного текста занимает много времени, разделение ее на части экономит время компиляции. 3. Если Вам надо использовать некоторые процедуры во многих дру- гих программах, Вы можете создать один объектный файл из этих процедур и затем загружать его в каждую из программ, в которой нужны эти процедуры. 4. Если процедуру надо использовать в разных случаях разным обра- зом, можно записать ее в отдельный файл и скомпилировать отдель- но. Затем для обеспечения ее вариативности Вы можете изменить со- держание и даже переписать имена Ассемблере или MS- Паскале, а остальная часть Вашей программы не изменится. Для получения полной информации о компилируемых программных единицах смотрите часть 5 "Программы, подпрограммы и функции." 3. ВВОД/ВЫВОД. Ввод - это передача данных из внешней среды или из внутрен- ного файла во внутреннюю память. Процесс передачи называется чте- нием. Вывод - это передача данных из внутренней памяти во внешнюю среду или во внутренний файл. Этот процесс называется записью. В Фортране есть набор операторов, обеспечивающих такую пере- дачу данных, кроме того существует набор операторов для редакти- рования таких данных. В дополнение к операторам передачи данных, существует нес- колько вспомогательных операторов ввода/вывода, управляющих внеш- ней средой, или определяющих, или описывающих свойства соединения с внешней средой. В таблице 1-1 приведены операторы ввода/вывода, осуществляю- щие каждую из этих трех функций. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДї іФункции ввода/вывода і Операторы ввода/вывода і ГДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Передача данных і READ і і і WRITE і і і і і Вспомогательные функции і OPEN і і ввода/вывода і CLOSE і і і BACKSPASE і і і ENDFILE і і і REWIND і і і INQUIRE і і і LOCKING і і і і і Определение положения і BACKSPASE і і в файле і ENDFILE і і і REWIND і АДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Таб. 1-1 операторы ввода/вывода. Для понимания системы ввода/вывода нужны также следующие по- ложения: 1.Записи. Понятие, на котором основана система файлов Фортрана. Запись - это последовательность символов или величин. Существует три ви- да записей: форматные, бесформатные и конец файла. 2. Файлы. Последовательности записей. Файлы могут быть внешними или внутренними. Внешние файлы - это файлы, относящиеся к устройству, или са- мо устройство. Внутренний файл - это текстовая переменная, кото- рая используется либо как текст, либо как назначение некоторых действий по форматному вводу/выводу. Все файлы имеют следующие атрибуты: a. имя файла (произвольное) b. указатель позиции в файле c. структура (форматная, неформатная или двоичная) d. метод доступа (последовательный или прямой) Хотя возможно большое разнообразие типов файлов, большинство приложений сводится к двум типам: неявно открытые и явно откры- тые, внешние, последовательные, форматные файлы. Смотрите часть 3 "Операторы", где приведены описания операторов ввода/вывода. Для изучения полного описания записей, файлов и редакции форматной информации смотрите часть 4 "Система ввода/вывода". 4. ОПЕРАТОРЫ. Операторы представляют собой набор функцый, таких как вычис- ления, запись результатов вычислений, изменение цепочек управле- ния, чтение и запись файлов и определение информации для компиля- тора. Операторы Фортрана разделяются на два основных класса: вы- полняемые и невыполняемые. Выполняемые операторы вызывают требуемые действия. Невыпол- няемые операторы никаких действий не вызывают. Вместо этого они определяют, описывают или классифицируют элементы программ, такие как входные точки, данные или программные единицы. Таблица 1-2 описывает функциональные категории операторов. ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Категория і Описание і ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і Присваивание і Выполняемый. Присваивает величину і і і переменной или элементу массива. і і і і і Комментарий і Невыполняемый. Допускает коммента- і і і рии внутри подпрограммы. і і і і і Управления і Выполняемый. Управляет порядком вы-і і і полнения операторов. і і і і і DАТА і Невыполняемый. Присваивает началь- і і і ные значения переменным. і і і і і FORMAT і Невыполняемый. Обеспечивает инфор- і і і мацию о редактировании данных. і і і і і Ввод/вывод і Выполняемый. Определяет тексты и і і і адреса передачи данных идругие осо-і і і бенности ввода/вывода. і і і і і Описание і Невыполняемый. Определяет отрибуты і і і переменных, массивов и имен функцийі і і программиста. і і і і і Функция-оператор і Невыполняемый. Определяет простую, і і і локально используемую функцию. і і і і і і і і Заголовок і Невыполняемый. Определяет начало і і программной і программной единицы и описывает ее і і единицы і формальные параметры. і і і і АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Таб. 1-2 Категории операторов Фортрана. Для полной информации об использовании операторов MS-Фортана смотрите часть 3 "Операторы". 5. ВЫРАЖЕНИЯ. Выражение - это формула для вычисления величины, оно содер- жит последовательность операндов и операторов. Операнды могут со- держать обращения к функциям, переменные, константы и даже другие выражения. Операторы определяют действия, которые необходимо про- извести над операндами. В следующем выражении плюс (+) - это оператор, а A и B - операнды: A + B Существует четыре основных вида выражений в Фортране: 1. Арифметические выражения 2. Символьные выражения 3. Выражения отношения 4. Логические выражения Каждый тип выражений работает с определенным типом операндов и использует определенный тип операторов. Результатом вычисления каждого выражения является величина определенного типа. Выражения не являются операторами, но могут входить в них как их части. В следующем примере вся строка - это оператор, но только часть его после знака равенства является выражением: X = 2.0/3.0 + A + B Для подробного рассмотрения выражений в MS-Фортране смотрите часть 2 "Термины и концепции". 6. ИМЕНА. Именами обозначают переменные, массивы, функции или подпрог- раммы в вашей программе, независимо от того определены ли они Ва- ми или самой системой MC-Фортран. Имя в Фортране содержит после- довательнось буквенноцифровых символов. Ограничения на имена та- ковы: 1. Максимальное число символов в имени не привышает 1320 (двад- цать строк по 66 символов). 2. Начальный символ должен быть буквой, последовательность симво- лов быть буквенноцифровой. 3. Пробелы игнорируются. 4. Значимыми являются первые шесть символов, остальные игнориру- ются. С учетом этих ограничений на имя, любая последовательность символов может быть использована как имя в Фортране. Здесь нет зарезервированных имен, как в других языках. Последовательности буквенных символов, используемые компиля- тором MС-Фортрана как ключевые слова, не смешиваются с именами пользователя. Компилятор различает ключевые слова по их контексту и поэтому на использование имен пользователями нет никаких огра- ничений. Поэтому, например, в программе могут быть массивы с име- нами IF,READ или GOTO и ошибок при этом не возникает (до тех пор пока не изменят правило, которому подчиняются все массивы). Одна- ко использование ключевых слов как имен пользователя мешает "чи- табельности" программ, и его следует избегать. Для получения подробной информации об области действия и ис- пользовании имен в MС-Фортране смотрите часть 2 "Термины и кон- цепции". 7. ТИПЫ. Данные в MC-Фортране относятся к одному из шести базовых ти- пов: 1. Целые (INTEGER*2 и INTEGER*4) 2. Вещественные обычной точности (REAL*4 или REAL) 3. Вещественные двойной точности (REAL*8 или DOUBLE PRECISION) 4. Комплексный (COMPLEX*8 и COMPLEX*16) 5. Логический (LOGICAL*2 и LOGICAL*4) 6. Символьный (CHARACTER) Типы данных объявляются. Если он не объявлен, то тип данных определяется по первой букве имени (по умолчанию или из оператора IMPLISIT). Оператор описания типа может также включать информацию о размерности. Для более полной информации о типах данных смотрите часть 2. Для изучения детального описания оператора описание типа смотрите часть 3 "Операторы". 8. СТРОКИ. Строка состоит из последовательности символов. Символы после 72-го в строке игнорируются, строка короче 72 символов считается заполненой пробелами. Позиция символа в строке Фортрана имеет важное значение. Символы в позиции с 1-ой по 5-ую опознаются как метки операторов, символы в позиции 6 являются признаком продолжения, а символы в позициях с 7 по 72 является собственно оператором Фортрана. Ко- ментарии опознаются по символу "С" или звездочке "*" в первой по- зиции, а метакоманды по знаку доллара в первой позиции. С некоторыми исключениями, пробелы не являются значащими в Фортране. Символы табуляции имеют значение при некоторых обстоя- тельствах, описанных в части 2 "Термины и концепции". Строки Фортрана представляют собой что-либо следующее: 1. Строка метакоманды. 2. Строка коментария. 3. Начальная строка (оператора). 4. Строка продолжения. У метакоманды в первой позиции знак доллара и она управляет прохождением компилятора МС-Фортрана. В строке коментария в первой позиции "С", "с" или звездочка, или вся строка пустая и игнорируется при обработке. Начальная строка оператора имеет пробел или нуль в 6-ой по- зиции и все пробелы или метку оператора в позициях с 1-ой по 5-ую. Строка продолжения - это не строка метакоманды, не строка коментария и не начальная строка. У нее с первой по пятую позиции пробелы, а в шестой символ, отличный от пробела или нуля. Смотрите часть 2 "Термины и концепции" для подробностей ис- пользования различных видов строк МС-Фортрана и как из операторов составлять программы и совместные части программ. 9. СИМВОЛЫ. В основном, программы на Фортране - это последовательность символов. Когда эти символы обрабатываются компилятором, они ин- терпретируются в различных контекстах как символы, имена, метки, константы, строки и операторы. Символы, используемые в текстах программ на МС-Фортране, от- носятся к набору символов ASCII, полный список которого приведен в приложении С "Коды символов ASCII".Однако набор символов можно поделить на три основных группы: 1. 52 малых и больших латинских буквы (от A до Z и от a до z) 2. 10 цифр (от 0 до9) 3. Специальные символы (все другие печатаемые символы из набора символов ASCII). Для более полной информации об использовании символов в МС Фортране смотрите часть 2 "Термины и концепции". |