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

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

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

ВВЕДЕНИЕ

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

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. Встроенные функции Фортрана

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

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

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

Императивные языки программирования, к числу которых относится Фортран (а также, Паскаль, Си, Бейсик и др.) в различной степени являются абстракцией компьютерной архитектуры фон Неймана. Двумя основными компонентами этой архитектуры являются память и процессор. Ячейки памяти служат для хранения данных и команд, а процессор для изменения состояния памяти.

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

Имя объекта это выстроенная по определенным правилам последовательность символов алфавита языка. В Фортране-90/95 действуют следующие правила записи имен:

  1. Строчные и прописные («большие» и «маленькие») буквы в Фортране не различаются.
  2. Символьная длина имени не должна превышать 31 символ.
  3. Имя может состоять из алфавитно-цифровых символов (букв и цифр)
    и символа подчеркивания – «_».
  4. Первым символом имени обязательно должна быть буква.

Допустимые имена:

X

ALFA

Beta2S

This_Is_Very_Long_Name


Недопустимые имена:

2SBETA (первый символ не буква).

AL&FA (содержит недопустимый символ: «&»);

IT IS Impossible (содержит пробелы)


В языке ФОРТРАН-77, который является подмножеством языка Фортран-90/95, не допускаются имена длиннее 6-ти алфавитно-цифровых (A-Z, a-z, 0-9) символов (никакие «подчеркивания» и иные спецсимволы из алфавита Фортрана не допускаются). При этом первым символом обязана быть буква.

Для имен (идентификаторов) и связанных с ними объектами данных, в Фортране существует правило неявного определения типов (п. 3.2). Если в программе используется именованный объект данных (скаляр или массив – п.п. 3.5, 3.6), тип которого не определен явно, то объект данных считается:

  1. Целым (INTEGER), стандартной разновидности целого типа (п.3.4), если первым символом его имени будет одна из букв: 'I', 'J', 'K','L','M' или 'N'. Например: J, IND, LSTREAM и т.д.
  2. Вещественным (REAL), стандартной разновидности вещественного типа (п.3.4), если первым символом его имени будет любая другая буква. Например: X, DIN, EPSILON
  3. Умолчаний по неявному определению других типов в Фортране не существует.

Часто считают, что возможность неявного определения типов переменных и констант в Фортране является избыточным, бесполезным и даже вредным наследием ранних стандартов. Действительно, отсутствие строгого контроля типов может приводить к досадным ошибкам – например опечатка в имени переменной расценивается компилятором как появление в программе переменной с другим именем.

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

Строгий контроль типов необходим при разработке конечного программного продукта, но излишне загромождает программу, и тормозит работу при выполнении небольших оценочных и предварительных расчетов. Неявное определение типов легко отключить при помощи инструкции IMPLICIT NONE (Пример 3.11).