Группа Свободного Поиска
пятница, 14 мая 2010 г.
Статья. Fortran в Linux: вчера, сегодня, завтра!
Этой статьёй я открываю цикл сообщений, составленных по моим статьям, публикуемым в замечательном электронном издании » Open Source «. Здесь информация будет появляться с двухнедельной задержкой после публикации в журнале. В любом случае я рекомендую почитать » Open Source » — кроме моих работ вы найдёте там много интересных статей!
Среди большого числа современных языков программирования уже мало кто, наверное, вспоминает об этом прародителе и первопроходце этой области. А между тем есть круг задач для которых выбор этого языка является если не оптимальным, то во всяком случае предпочтительным.
Необходимость программировать на фортране может возникнуть в случае, если вам необходимо решить достаточно сложную с расчётной точки зрения задачу. Во-первых, фортран обладает широким спектром инструментов и возможностей для решения таких задач; во-вторых, за долгое время существования языка накопилась обширная библиотека программ и процедур, позволяющих быстро и точно решать самый широкий спектр проблем.
Синтаксис фортрана строился таким образом, чтобы обеспечить максимальную эффективность автоматической оптимизации исполняемого кода, поэтому приложения, написанные на нём, могут похвастаться высокой производительностью. Фортран оснащен богатым набором встроенных математических функций: чего стоит только наличие встроенного комплексного типа данных для работы с мнимыми числами! Кроме того, для массивов одинаковой формы определены все арифметические операции и логические операции отношения.
Считается, что фортран — первый язык программирования высокого уровня, имеющий транслятор. В 1957 году была выпущена его первая коммерческая версия. Специальный комитет занимается разработкой стандартов фортрана: он собирает и обобщает предложения по улучшению языка, а затем выпускает серию проектов стандарта, доступных для всеобщего обсуждения. Такой подход позволяет вносить улучшения в фортран, добавлять новые возможности.
Изначально программы писались для выполнения на перфокартах, поэтому один из первых распространённых стандартов — Fortran77 — требует записи в так называемом фиксированном формате. Фиксированный формат накладывает ограничения на структуру кода: он определяет специальные позиции в строке для меток, символа комментария; ограничивает длину строки и максимальную длину оператора.
В стандарт Fortran90 был включён свободный формат — в котором большинство ограничений были либо сняты, либо ослаблены. Также стандарте Fortran90 появились элементы объектно-ориентированного программирования, которые получили развитие в стандарте Fortran2003.
Существует большое количество компиляторов фортрана: начиная от высоко оптимизированных компиляторов от фирмы IBM, предназначенных для работы с суперкомпьютерами и до милых сердцу open source проектов. Проприетарные компиляторы представлены фирмами Compaq (в 2002 году слившаяся с HP), Lahey, Watcom. Отдельно стоит отметить компилятор фирмы Intel, который и сейчас активно развивается: генерируемый код хорошо оптимизирован для процессоров этой марки; в комплекте с компилятором можно приобрести математическую библиотеку Intel Math Kernel Library , которая «обеспечивает выполнение высокооптимизированных многопоточных математических операций для научных, инженерных и финансовых приложений, требующих наибольшей производительности». Но самое главное для нас то, что версия компилятора для платформы linux предоставляется бесплатно на условиях некоммерческого ПО. По моему личному мнению это лучший выбор компилятора фортрана для работы.
Сторонникам не только бесплатного, но и открытого ПО тоже есть из чего выбрать: в коллекцию компиляторов GNU входит gfortran, который пришёл на смену компилятору g77 (работа над ним была прекращена). Данный компилятор полностью совместим со стандартом Fortran95, имеет поддержку устаревшего формата — Fortran77. Также в него включено множество дополнительных возможностей, представленных в стандартах Fortran2003 и Fortran2008.
Другим известным открытым компилятором является g95 . В g95 также реализована поддержка всех основных стандартов фортрана. Компилятор доступен практически для любой платформы. Этот проект может быть выбран вами, если имеется необходимость компилировать программы для Windows.
Можно сказать, что несмотря на обилие современных языков, Fortran не собирается сдавать позиции: он занял свою нишу высокопроизводительных вычислений и справляется с этой деятельностью «на отлично». Желающие могут найти и выбрать для себя и компилятор, и среду разработки — доступно множество как открытых так и коммерческих решений. Особо радует стремление производителей компиляторов обеспечить многопотоковость выполнения программ, широкий набор опций для оптимизации кода.
Хотя в Linux созданы все условия для комфортной работы с фортраном, есть некоторые моменты, требующие улучшений: далеко не все IDE позволяют проводить отладку при выполнении программ, не всегда легко настроить взаимодействие компилятор-IDE (настроить g95 в Eclipse автору не удалось).
Для тех кто захочет найти дополнительную информацию о Fortran — вот здесь вы сможете найти множество ссылок на разнообразные ресурсы: стандарты, книги, библиотеки, компиляторы.
Источник
Подскажите IDE для FORTRAN
Какая IDE умеет:
- вести локальную справку по введенным переменным (возможно, просто парся комментарии сразу под определением переменной);
- сворачивать/разворачивать циклы/ветвления.
гугль подсказывает Code::Blocks IDE with the FortranProject plugin
ещё гугль подсказывает http://www.eclipse.org/photran/
помогать забаненым в гугле — святое дело.
Спасибо, гений, но нагуглить страницы по «IDE FORTRAN linux» я и сам могу.
Мне нужнен совет того, кто работал и знает о конкретной указанной фиче.
IDE для Фортрана? Сомневаюсь, что такие существуют. А так, можно писать в emacs, базовые возможности там есть
Существуют, photran после доработки напильником потянул даже древний код F77.
Но вот как там ввести свою справочную систему по переменным — не нашел пока. Субрутины отображаются в навигаторе, а хочется чтобы ещё и переменные с комментариями.
Да что там в 77-то поддерживать? 🙂
Мало ли синтаксических атавизмов можно было бы забросить за 33 года.
Короче, в eclipse библиотеки определенных переменных с комментариями не сделать.
Придется прибивать гвоздями к Stardict или на vim городить нечто богомерзкое.
Мне нужнен совет того, кто работал и знает о конкретной указанной фиче.
Я знаю людей людей, которые пишут/писали на фортране, так вот, такую вещь как IDE они воспринимают в штыки.
Я пользуюсь vim, а что значат переменные в три-четыре буквы просто запоминаю.
>Я знаю людей людей, которые пишут/писали на фортране, так вот, такую вещь как IDE они воспринимают в штыки.
Они используют cat?
vim, emacs, кто-то вообще подсветку на дух не переносит и использует vi
Раньше был SunStudio. В нем был сразу fortran. А что там сейчас у Oracle?
Кстати, если нигде ничего нужного нету — можно самому сделать, благо antlr’овские парсеры фортрана есть, даже для 2008го.
Да тут за глаза хватило бы прокачанного редактора, конечно IDE тут просто негде применить.
А особо хардкорные фортранщики используют вообще вот такую экзотику
второе умеет Geany
>Раньше был SunStudio. В нем был сразу fortran.
Это же почти обычный NetBeans. Насколько я помню, там не было поддержки фортнана в IDE, только компилятор (классный кстати)
По-моему можно было делать фортран проекты. А какой смысл не добавлять это в IDE? А так, да, есть плагин для NB
> Это же почти обычный NetBeans
Я в NetBeans недавно что-то фортрановское компилировал — показать знакомому, «ищущему IDE для фортрана». Но мое мнение — ФОРТРАН программа должна быть написана в простом текстовом редакторе. Это гораздо лучше и удобнее, чем читать перфокарты «на просвет» и сдавать программы на счет в ночной резерв.
>сворачивать/разворачивать циклы/ветвления.
emacs + fortran-mode + hs-minor-mode + hideshowvis.el (отображает «-» возле сверток кода)
f2c и решаем задачу редактирования си кода ))
Источник
Ide для fortran linux
An IDE (Integrated Development Environment) refers to a complete software development environment, where, all those packages that come as external plug-ins in Text-Editors, are already integrated within the software. An IDE is usually optimized towards a specific set of languages. For example it is very common for IDEs to advertise themselves towards either compiled or interpreted languages, or even towards a single language, or depending on the application developed, like scientific or web development. IDEs are recommended for beginner programmers, since it is possible to start coding with minimum effort after installation. However, it is quite common, in professional environments, individual developers and teams alike, to choose an IDE for large projects because of some unique features that they may offer over a Text-Editor.
A list of popular IDEs that provide good Fortran support is provided in alphabetical order:
- AbsoftTools: commercial product, cross-platform, comes with Absoft’s own Fortran compiler.
- Code::Blocks: free product, cross-platform and supports multiple compilers. Plenty of tutorials online on how to install it and add a Fortran Compiler. As well as a recent presentation, here, of its capabilities and future prospects at the International Fortran Conference 2020 by its main developer.
- Eclipse-PhotranPhotran is an IDE and refactoring tool for Fortran based on Eclipse and the C/C++ Development Tools. A free product, cross-platform and supports multiple compilers.
- Geany: a free product, cross platform and supports multiple compilers.
- NAG Fortran Builder is a commercial product, available in Windows and MacOS and supports NAG’s own Fortran Compiler.
- Plato is a commercial product, cross-platform, comes with Silverfrost’s Fortran FTN95 own Fortran compiler.
- SimplyFortran is a commercial product, cross-platform with support of the GNU Fortran compiler.
- Visual Studio its Community Edition 2019 is a free product, available in Windows and macOS and supports only Intel’s Fortran compiler, now bundled with many other free-to-use HPC tools under Intel oneAPI.
Источник
VSCode как IDE для Fortran
Среди бесплатных IDE для языка Fortran можно использовать несколько приложений. Самый простой из них в использовании, особенно для начинающих, наверное, Code::Blocks, в котором проще всего создать проект. Помимо него возможность работы с проектами на Fortran имеют
- Eclipse — используется компонент «Photran» из «Eclipse for Parallel Application Developers», на вид имеет хороший список инструментов;
- Netbeans — создаётся как проект C/С++;
- Oracle Developer Studio — для скачивания требует регистрации.
Если кто имеет опыт работы в них, будет интересно более подробно о них узнать, особенно о возможностях и инструментах, которые понравились. Может ещё какие бесплатные IDE стоит отметить, о которых я не упомянул.
Долго я смотрел на vscode и не мог решиться его на чём-нибудь попробовать. В итоге решил посмотреть, есть ли в нём возможность работы с проектами на Fortran.
Пока только настроил: кусок на скриншоте писал в Kate, остальное попробую дописать в vscode. Просто класс для разбора формата базы термодинамических данных в формате NASA 7, с последующим запихиванием всего в массив структур (название, компонентный состав, коэффициенты полинома). Только начал переписывать этот же класс с C++ (ранее написанный), поэтому пока есть только чтение коэффициентов для текущего компонента, без чтения имени и элементного состава и использования этих компонентов для вычисления того, для чего они предназначены.
Для примера, кусок кода со скриншота на C++ выглядит примерно так:
Прежде всего, после скачивания с оф. сайта архива code-stable-code_1.17.0-1507160143_amd64.tar.gz, его распаковки в нужный мне домашний каталог и первого запуска, я отключил передачу «телеметрии» (но это не отключает передачу «телеметрии» расширениями):
«File — Preferences — Settings: [Crtl + ,]» поиск «telemetry» и для параметров «telemetry.enableTelemetry» и «telemetry.enableCrashReporter» выставил значения «false».
Для языка Fortran для VSCode есть 3 расширения (2 из них от одного автора, просто разных версий). Наиболее интересным и полезным в данном случае является расширение «Modern Fortran 0.6.0». Оно обеспечивает
- подстветку синтаксиса;
- вставку шаблонов блоков кода (code snippets);
- всплывающие подсказки по документации для встроенных функций;
- анализ кода на присутствие возможных ошибок с помощью gfortran (code linting);
- автодополнение кода (в стадии beta).
Установить его можно через поиск дополнений или командой
Ctrl+P : ext install linter-gfortran
Для отладки приложений понадобится установить расширение С/C++ (cpptools)
Ctrl+P: ext install cpptools
Дальнейшая настройка большей частью основана на статье по настройке окружения для расширения C/С++.
Создадим tasks «build debug» и «build release» (Task — Configure Task) на основе шаблона «other task», приведя исходный шаблон, например, к виду (в том числе для того, чтобы запускать их потом из группы задач посредством Ctrl+Shift+B или F5 т.к. это действие всё равно будет вызывать по умолчанию):
Здесь можно было либо явно указывать что собирать (как в примере из руководства), либо использовать make или cmake. Содержимое Makefile для проекта из файлов main.f95, species.f95:
На вкладке Debug нажмём иконку настроек и приведём файл launch.json к виду:
По умолчанию, для исходных текстов на языке фортран (и других не поддерживаемых) не будет работать расстановка breakpoits. Чтобы исправить это, можно зайти в настройки «File — Preferences — Settings::» и найти File -> Preferences -> Settings -> Debug присвоив параметру «debug.allowBreakpointsEverywhere» значение «true».
К сожалению, cpptools при отладке пока не умеет работать со встроенным в vscode терминалом и умеет выводить данные только в xterm (его видно в нижней части экрана на скриншоте) или gnome terminal.
Всё, теперь при нажатии F5 будут пересобираться файлы проекта и запускаться отладка. К сожалению, примерно так же настраивать придётся для каждого нового проекта.
Источник