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 "Термины и концепции".