Страница 1 из 2
ОБЗОР ЯЗЫКА.
ОБ ЭТОЙ ЧАСТИ
В этой части представлены как одно целое все компоненты язы-
ка МС Фортран.
СОДЕРЖАНИЕ
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. ОПЕРАТОРЫ.
Операторы представляют собой набор функцый, таких как вычис-
ления, запись результатов вычислений, изменение цепочек управле-
ния, чтение и запись файлов и определение информации для компиля-
тора. Операторы Фортрана разделяются на два основных класса: вы-
полняемые и невыполняемые.
Выполняемые операторы вызывают требуемые действия. Невыпол-
няемые операторы никаких действий не вызывают. Вместо этого они
определяют, описывают или классифицируют элементы программ, такие