Информационные системы ускорителей

ЛАБОРАТОРНЫЙ ПРАКТИКУМ:
«ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ»

СТРУКТУРА ПРАКТИКУМА

ВВЕДЕНИЕ

ВАЖНАЯ ИНФОРМАЦИЯ

1. ПРАВИЛА ЗАПИСИ ПРОГРАММЫ

1. Набор символов Фортрана

2. Форматы записи программы

3. Фиксированный формат

4. Свободный формат

2. ТРАНСЛЯЦИЯ ПРОГРАММЫ

1. Программа в одном исходном файле

2. Трансляция исходного файла

3. Трансляция нескольких исходных файлов

4. Трансляция модулей

3. КОНЦЕПЦИЯ ДАННЫХ ЯЗЫКА ФОРТРАН

1. Имена (идентификаторы)

2. Понятие типа

3. Буквальные константы

4. Разновидности типов и диапазоны значений

5. Скалярные переменные и константы

6. Массивы

7. Производные типы данных

4. ВЫРАЖЕНИЯ И ПРЕОБРАЗОВАНИЕ ТИПОВ

1. Скалярное присваивание

2. Арифметика Фортрана

3. Логические выражения

4. Работа с текстовыми строками

5. Операции с массивами

5. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ

1. Условный оператор и конструкция IF

2. Оператор варианта – конструкция CASE

3. Циклы – разновидности конструкции DO

4. Оператор GO TO

6. ВВОД/ВЫВОД ДАННЫХ

1. Простейшие операции ввода/вывода

2. Форматный ввод/вывод данных

3. Ввод/вывод массивов в неявных циклах

4. Файловый ввод/вывод

7. ПРОГРАММНЫЕ КОМПОНЕНТЫ И ЭЛЕМЕНТЫ ООП

1. Структура программных компонентов

2. Внешние подпрограммы

3. Внутренние подпрограммы

4. Модули как библиотеки производных типов

5. Встроенные функции Фортрана

ЗАДАЧИ ДЛЯ ПРОГРАММИРОВАНИЯ

1.2 Форматы записи программы

Способ записи программ на Фортране изначально была ориентирован на ввод данных с перфокарт (Рис. 5.1), содержащих в каждой строке 80 позиций для перфорирования. При этом 72 позиции использовалось собственно для записи программы и комментариев, а позиции с 73 по 80 как служебные, например, для управления обработкой перфокарт.


unix-workdir

Рис. 5.1. Перфокарта с разметкой колонок для Фортрана.


Формат записи текстов программ на Фортране сохранился и при переходе на текстовые и графические терминалы (Пример 1.1). Современные терминалы и текстовые редакторы, продолжают поддерживать текстовый режим отображения 80-ти символов в строке, обеспечивая программно-аппаратную совместимость вычислительной техники различных стандартов.


Пример 1.1. Простейшая программа в фиксированном формате

123456789^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...72^^^^^80	
^^^^^^program HELLO
^^^^^^print*, "Hello, World"
^^^^^^end
		

Запись программ в виде строк ограниченной длины связана именно с режимами отображения символьной информации текстовыми терминалами. Такой подход гарантирует, что программа на Фортране может быть написана с использованием самого примитивного текстового редактора или без него – важно лишь наличие двух символов: «конец строки» (или «перевод каретки»), а также «конец файла», которые генерируются клавиатурами любых модификаций. Так символ «конец строки» генерируется нажатием клавиши ввода, например, «Enter». В текстовых редакторах этот символ, как правило, не виден, но его ввод переводит текстовый курсор на следующую строчку. Символ конца файла, как правило, генерируется сочетанием клавиш Ctrl+Z (например, в UNIX).

Формат записи программ, ориентированный на 72-х символьное отображение текста, был единственным вплоть до стандарта Фортран 90, и поэтому не имел никакого названия. В стандарте Фортран 90 и последующих, он получил название фиксированный формат, поскольку появился новый свободный формат, ориентированный на 132-х символьные текстовые строки (Пример 1.2), что связано с появлением соответствующих стандартов отображения символьной информации текстовыми терминалами (режим отображения текстовых терминалов «132 символа в строке»).


Пример 1.2. Простейшая программа в свободном формате

123456789^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^132			
program HELLO
print*, "Hello, World"
end
		

Фиксированный формат записи программ поддерживается всеми современными компиляторами для обеспечения совместимости со стандартом FORTRAN 77 (Стандарты Fortran 90/95 декларируют FORTRAN 77 как свое неотъемлемое подмножество).

Используемый в данном практикуме компилятор Gfortran по умолчанию обрабатывает исходные файлы, имеющие расширение «f95», как тексты программ в свободном формате, а файлы с расширением «for» как программы в фиксированном формате.

При написании программы в фиксированном формате нужно обращать внимание, каким образом используемый текстовый редактор нумерует символьные позиции строки. Например, редактор mcedit (утилита файлового менеджера UNIX MidNight Cjmmander) нумерует символьные позиции строки начиная с нуля, вследствие чего 6-я символьная позиция строки (по нумерации редактора) на самом деле оказывается 7-й позицией.