Лекция
Привет, мой друг, тебе интересно узнать все про фортран, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое фортран , настоятельно рекомендую прочитать все из категории Языки и методы программирования. Теория трансляции.
фортран - самый ранний из языков высокого уровня. Он применяется для математических задач и научных исследований и является в высокой степени платформенно независимым. В фортране накоплено громадное множество прикладных библиотек, позволяющих быстро и качественно провести любое научное изыскание. Расширение файлов .for .f .f90 .f95, Система типов: строгая, статическая. Семантика: императивный, параллельный. Класс языка : процедурный, модульный, c элементами объектно-ориентированного программирования. Тип исполнения: компилируемый. Появился в 1957.Последняя версия языка Fortran 2018 (ранее известная как Fortran 2015) была выпущена 28 ноября 2018 года
Компилятор Fortran - это программное обеспечение, которое используется для преобразования исходного кода на языке программирования Fortran в машинный код, который может быть исполнен компьютером.
Fortran (сокращение от "Formula Translation") - один из самых старых и широко используемых языков программирования, специально разработанный для научных и инженерных вычислений. Он был создан в 1950-х годах и с тех пор прошел несколько версий и обновлений.
Компилятор Fortran выполняет несколько основных задач:
Анализ исходного кода: Компилятор анализирует синтаксис исходного кода на Fortran, проверяет его на соответствие правилам языка и выявляет возможные ошибки или проблемы в коде.
Оптимизация: Компилятор может производить различные оптимизации для улучшения производительности и эффективности скомпилированной программы. Это может включать в себя оптимизацию циклов, устранение лишних вычислений или использование специфических инструкций аппаратного обеспечения.
Генерация машинного кода: Компилятор преобразует анализированный и оптимизированный исходный код на Fortran в машинный код, который может быть исполнен компьютером. Машинный код представляет собой набор инструкций, понятных для процессора.
Связывание: В случае, если программа состоит из нескольких модулей или подпрограмм, компилятор может осуществлять связывание (linking) этих модулей, чтобы создать окончательный исполняемый файл или библиотеку.
После компиляции исходного кода Fortran с использованием компилятора, полученный исполняемый файл может быть запущен на компьютере или другом устройстве, где будет выполняться вычисления в соответствии с написанной программой на Fortran.
Фиксированный формат (символами «␣» выделены пробелы в позициях строки с 1 по 6):
␣␣␣␣␣␣PRINT*, 'Hello, World!'
␣␣␣␣␣␣END
Свободный формат:
print *, "Hello, World!"
end
Здесь представлены компоненты составляющие язык Фортран применительно к версии МS-Фортран.
Метаязык - это язык управления компилятором MS-Фортрана. Метакоманды позволяют Вам определить варианты, воздействующие на все операции компиляции. Например, с помощью метакоманд Вы можете включить или выключить генерацию файла листинга, проверку кода при ошибке счета, или использовать такие возможности Фортрана, которые не входят в подмножество или в полный стандарт языка. Метаязык содержит команды, которые вставляются в файл исходного текста, каждая из которых занимает отдельную строку, и каждая из которых начинается с символа доллар ($) в первой колонке.
Метаязык - это уровень языка, позволяющий расширить использование компилятора MS-Фортрана. Хотя в большинстве реализаций Фортрана есть средства управления компилятором, метакоманды MS-Фортрана не входят в стандарт Фортрана (и поэтому не мобильны).
Ниже приведены существующие в настоящий момент метакоманды:
$[NO]DEBUG $[NO]LARGE $PAGESIDE $DEVFNH $LINESIDE $STORAGE $DO66 $[NOT]LIST $[NOT]STRICT $[NO]FLOATCALLS $MESSADE $SUBTITLE $INCLUDE $PAGE $TITLE
Компилятор MS-Фортрана производит программные единицы. Ими могут быть основная программа, подпрограмма или функция. Вы можете откомпилировать любую из этих единиц отдельно и затем загрузить их вместе без объединения их еще до компиляции.
1.Программа.
Любая программная единица, не начинающаяся с оператора FUNCTION или SUBROUTINE. Первым оператором может быть PROGRAM, но такой оператор не обязателен. Выполнение программы всегда начинается с первого выполняемого оператора в главной программе. Следовательно в каждой выполняемой программе должна быть единственная главная программа.
2.Подпрограмма.
Программная единица,которая может вызваться из других программных единиц оператором CALL, будучи вызванной, подпрограмма осуществляет набор действий, определенных ее выполняемыми операторами, и затем возвращает управление на оператор, стоящий непосредственно за оператором вызова. Подпрограмма не возвращает прямо величины, хотя они могут быть переданы в вызывающую программную единицу через параметры или общие переменные.
3.Функция.
Программная единица, которая может быть употреблена в выражении. Функция прямо возвращает величину, которая используется при вычислении этого выражения, и кроме того может возвращать величины через параметры. Существует три вида функций: внешние, внутренние и функция-оператор. (Функция-оператор не может быть скомпилирована отдельно).
4.Подпрограмма блока данных.
Программная единица, обеспечивающая начальные значения переменных в COMMON-блоках. Переменные обычно заводятся оператором DATA, но переменные в COMMON не могут быть заведены нигде кроме подпрограммы блока данных.
Подпрограммы и функции позволяет Вам создавать большие структурированные программы, которые можно делить на части. Об этом говорит сайт https://intellect.icu . Это дает преимущества в следующих ситуациях:
В качестве аргументов подпрограмм могут быть любые встроенные типы данных, включая массивы и их секции, указатели, а также типы, определяемые программистом. Аргументами подпрограмм также могут быть функции и другие подпрограммы, кроме внутренних подпрограмм, операторной функции, родовых (обобщенных) процедур (допускаются только специфические имена) и некоторых др. встроенных типов.
Аргументы подразделяются на формальные и фактические. Аргументы заключаются в скобки после имени подпрограммы и разделяются запятыми. Имена фактических и формальных аргументов могут совпадать.
Формальные аргументы — это аргументы подпрограммы (функции), указанные при ее описании. При отсутствии аргументов у подпрограммы, скобки могут быть опущены. У функции скобки расставляются и при отсутствии формальных аргументов. Формальный параметр-процедура называется формальной процедурой.
Фактические аргументы — это аргументы, передаваемые подпрограмме или функции для выполнения при ее вызове. Функция без аргументов вызывается с пустым списком в скобках, подпрограмма — без скобок.
Формальные и фактические аргументы должны быть согласованы. Типы аргументов и разновидности их вида должны быть одинаковыми, массиву должен соответствовать массив (или сечение массива) той же конфигурации.
Существуют массивы, перенимающие конфигурацию и перенимающие размер как формальные аргументы процедур. Массив, перенимающий конфигурацию — это формальный аргумент-массив, который наследует конфигурацию соответствующего ему фактического массива. У такого массива при его объявлении задается размерность (совпадающая с размерностью фактического аргумента-массива) и опускаются верхние границы. По умолчанию нижние границы равны 1, но могут быть заданы произвольными. Число и значение элементов массива, перенимающего конфигурацию, точно наследуются от фактического аргумента-массива. Массив, перенимающий размер — это оставленный для совместимости более ранний, свойственный языку Fortran’77, способ описания наследующих массивов. У таких массивов наследуется только последнее измерение, верхняя граница которого описывается звездочкой (*
). При этом формальный и фактический массивы-аргументы могут иметь разную размерность. Массивы, перенимающие конфигурацию и размер, не могут быть динамическими или быть указателями. Процедуры, имеющие наследующие массивы, должны иметь явный интерфейс.
Строки-формальные аргументы также могут наследовать (перенимать) длину у соответствующего фактического аргумента-строки. Строки, перенимающие длину, описываются посредством символа *
: Character (Len = *)
имя_строки. При явном задании длины строки, длина строки-формального аргумента не может быть больше соответствующего фактического аргумента-строки.
Аргументы бывают позиционными и ключевыми. Позиционные формальные и фактические аргументы связываются друг с другом по порядку их расположения в списке аргументов, который должен совпадать. Ключевые — по имени ключа, который совпадает с именем формального аргумента. Ключевые позволяют нарушить порядок следования аргументов или пропустить часть из них. Так, для подпрограммы с заголовком Subroutine
ONE (A, B, C, D) вызов может быть таким: Call
ONE (D=Z, C=Y, B=X, A=W), где W, X, Y, Z — фактические аргументы.
Ключевые аргументы позволяют иметь необязательные аргументы, которые могут быть опущены. В этом случае необязательные аргументы должны иметь атрибут Optional
. Например, если задано Optional
C, D, то в этом случае возможен вызов Call
ONE (B=X, A=W).
Процедуры с необязательными параметрами должны иметь явный интерфейс.
Ввод - это передача данных из внешней среды или из внутренного файла во внутреннюю память. Процесс передачи называется чтением. Вывод - это передача данных из внутренней памяти во внешнюю среду или во внутренний файл. Этот процесс называется записью.
В Фортране есть набор операторов, обеспечивающих такую передачу данных, кроме того существует набор операторов для редактирования таких данных.
В дополнение к операторам передачи данных, существует несколько вспомогательных операторов ввода/вывода, управляющих внешней средой, или определяющих, или описывающих свойства соединения с внешней средой.
В таблице 1-1 приведены операторы ввода/вывода, осуществляющие каждую из этих трех функций.
---------------------------T---------------------------¬ |Функции ввода/вывода | Операторы ввода/вывода | +--------------------------+---------------------------+ | Передача данных | READ | | | WRITE | | | | | Вспомогательные функции | OPEN | | ввода/вывода | CLOSE | | | BACKSPASE | | | ENDFILE | | | REWIND | | | INQUIRE | | | LOCKING | | | | | Определение положения | BACKSPASE | | в файле | ENDFILE | | | REWIND | L--------------------------+---------------------------- Таб. 1-1 операторы ввода/вывода.
Для понимания системы ввода/вывода нужны также следующие положения:
1.Записи.
Понятие, на котором основана система файлов Фортрана. Запись - это последовательность символов или величин. Существует три вида записей: форматные, бесформатные и конец файла.
2. Файлы.
Последовательности записей. Файлы могут быть внешними или внутренними.
Внешние файлы - это файлы, относящиеся к устройству, или само устройство. Внутренний файл - это текстовая переменная, которая используется либо как текст, либо как назначение некоторых действий по форматному вводу/выводу.
Все файлы имеют следующие атрибуты:
a. имя файла (произвольное)
b. указатель позиции в файле
c. структура (форматная, неформатная или двоичная)
d. метод доступа (последовательный или прямой)
Хотя возможно большое разнообразие типов файлов, большинство приложений сводится к двум типам: неявно открытые и явно открытые, внешние, последовательные, форматные файлы. Смотрите часть 3 "Операторы", где приведены описания операторов ввода/вывода. Для изучения полного описания записей, файлов и редакции форматной информации смотрите часть 4 "Система ввода/вывода".
Операторы представляют собой набор функций, таких как вычисления, запись результатов вычислений, изменение цепочек управления, чтение и запись файлов и определение информации для компилятора. Операторы Фортрана разделяются на два основных класса: выполняемые и невыполняемые.
Выполняемые операторы вызывают требуемые действия. Невыполняемые операторы никаких действий не вызывают. Вместо этого они определяют, описывают или классифицируют элементы программ, такие как входные точки, данные или программные единицы. Таблица 1-2 описывает функциональные категории операторов.
--------------------T------------------------------------¬ | Категория | Описание | +-------------------+------------------------------------+ | Присваивание | Выполняемый. Присваивает величину | | | переменной или элементу массива. | | | | | Комментарий | Невыполняемый. Допускает коммента- | | | рии внутри подпрограммы. | | | | | Управления | Выполняемый. Управляет порядком вы-| | | полнения операторов. | | | | | DАТА | Невыполняемый. Присваивает началь- | | | ные значения переменным. | | | | | FORMAT | Невыполняемый. Обеспечивает инфор- | | | мацию о редактировании данных. | | | | | Ввод/вывод | Выполняемый. Определяет тексты и | | | адреса передачи данных идругие осо-| | | бенности ввода/вывода. | | | | | Описание | Невыполняемый. Определяет отрибуты | | | переменных, массивов и имен функций| | | программиста. | | | | | Функция-оператор | Невыполняемый. Определяет простую, | | | локально используемую функцию. | | | | | | | | Заголовок | Невыполняемый. Определяет начало | | программной | программной единицы и описывает ее | | единицы | формальные параметры. | | | | L-------------------+------------------------------------- Таб. 1-2 Категории операторов Фортрана.
Для полной информации об использовании операторов MS-Фортана смотрите часть 3 "Операторы".
Выражение - это формула для вычисления величины, оно содержит последовательность операндов и операторов. Операнды могут содержать обращения к функциям, переменные, константы и даже другие выражения. Операторы определяют действия, которые необходимо произвести над операндами.
В следующем выражении плюс (+) - это оператор, а A и B - операнды:
A + B
Существует четыре основных вида выражений в Фортране:
1. Арифметические выражения
2. Символьные выражения
3. Выражения отношения
4. Логические выражения
Каждый тип выражений работает с определенным типом операндов и использует определенный тип операторов. Результатом вычисления каждого выражения является величина определенного типа.
Выражения не являются операторами, но могут входить в них как их части. В следующем примере вся строка - это оператор, но только часть его после знака равенства является выражением:
X = 2.0/3.0 + A + B
Для подробного рассмотрения выражений в MS-Фортране смотрите часть 2 "Термины и концепции".
Именами обозначают переменные, массивы, функции или подпрограммы в вашей программе, независимо от того определены ли они Вами или самой системой MS-Фортран. Имя в Фортране содержит последовательнось буквенноцифровых символов. Ограничения на имена таковы:
1. Максимальное число символов в имени не привышает 1320 (двадцать строк по 66 символов).
2. Начальный символ должен быть буквой, последовательность символов быть буквенноцифровой.
3. Пробелы игнорируются.
4. Значимыми являются первые шесть символов, остальные игнорируются.
С учетом этих ограничений на имя, любая последовательность символов может быть использована как имя в Фортране. Здесь нет зарезервированных имен, как в других языках.
Последовательности буквенных символов, используемые компилятором MS-Фортрана как ключевые слова, не смешиваются с именами пользователя. Компилятор различает ключевые слова по их контексту и поэтому на использование имен пользователями нет никаких ограничений. Поэтому, например, в программе могут быть массивы с именами IF,READ или GOTO и ошибок при этом не возникает (до тех пор пока не изменят правило, которому подчиняются все массивы). Однако использование ключевых слов как имен пользователя мешает "читабельности" программ, и его следует избегать.
Для получения подробной информации об области действия и использовании имен в MS-Фортране смотрите часть 2 "Термины и концепции".
Данные в MS-Фортране относятся к одному из шести базовых типов:
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 "Операторы".
Строка состоит из последовательности символов. Символы после 72-го в строке игнорируются, строка короче 72 символов считается заполненой пробелами. Принято это было еще на заре программирования, когда ввод в ЭВМ соуществлялся перфокартами, имевшими 72 позиции для пробиваемых в них отверстиях.
Позиция символа в строке Фортрана имеет важное значение. Символы в позиции с 1-ой по 5-ую опознаются как метки операторов, символы в позиции 6 являются признаком продолжения, а символы в позициях с 7 по 72 является собственно оператором Фортрана. Коментарии опознаются по символу "С" или звездочке "*" в первой позиции, а метакоманды по знаку доллара в первой позиции.
С некоторыми исключениями, пробелы не являются значащими в Фортране. Символы табуляции имеют значение при некоторых обстоятельствах, описанных в части 2 "Термины и концепции".
Строки Фортрана представляют собой что-либо следующее:
1. Строка метакоманды.
2. Строка комментария.
3. Начальная строка (оператора).
4. Строка продолжения.
У метакоманды в первой позиции знак доллара и она управляет прохождением компилятора МS-Фортрана.
В строке коментария в первой позиции "С", "с" или звездочка, или вся строка пустая и игнорируется при обработке.
Начальная строка оператора имеет пробел или нуль в 6-ой позиции и все пробелы или метку оператора в позициях с 1-ой по 5-ую.
Строка продолжения - это не строка метакоманды, не строка коментария и не начальная строка. У нее с первой по пятую позиции пробелы, а в шестой символ, отличный от пробела или нуля.
Смотрите часть 2 "Термины и концепции" для подробностей использования различных видов строк МS-Фортрана и как из операторов составлять программы и совместные части программ.
В основном, программы на Фортране - это последовательность символов. Когда эти символы обрабатываются компилятором, они интерпретируются в различных контекстах как символы, имена, метки, константы, строки и операторы.
Символы, используемые в текстах программ на МS-Фортране, относятся к набору символов ASCII, полный список которого приведен в приложении С "Коды символов ASCII".Однако набор символов можно поделить на три основных группы:
1. 52 малых и больших латинских буквы (от A до Z и от a до z)
2. 10 цифр (от 0 до9)
3. Специальные символы (все другие печатаемые символы из набора символов ASCII).
Для более полной информации об использовании символов в МS-Фортране смотрите часть 2 "Термины и концепции".
Я хотел бы услышать твое мнение про фортран Надеюсь, что теперь ты понял что такое фортран и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Языки и методы программирования. Теория трансляции
Комментарии
Оставить комментарий
Языки и методы программирования. Теория трансляции
Термины: Языки и методы программирования. Теория трансляции