[image]

Фортран

Есть тут с кем побазарить про это?
 
1 4 5 6 7 8 9 10
RU спокойный тип #13.01.2022 12:20  @yacc#13.01.2022 12:18
+
-
edit
 

спокойный тип
Спокойный_Тип

старожил
★★

с.т.>> ну как бы исходим из того что диспетчер старается все ядра на всех процах нагружать )))
с.т.>> опять же есть htop которым можно помочь
yacc> Кстати, вот что есть Python но как пить дать нет у Фортрана, особенно у GNU - работа с GPU

это да , ещё из ништяков можно openCV вспомнить.
   95.095.0
RU andry_p #13.01.2022 12:37  @спокойный тип#13.01.2022 12:20
+
-
edit
 

andry_p

втянувшийся

с.т.> это да , ещё из ништяков можно openCV вспомнить.

openCV же вроде на плюсах сама написана, так что по большому счёту всё равно откуда вызывать. Другое дело что в питон интеграция уже прикручена.
Хотя вот и для фортрана есть какая-то попытка прикрутить:

GitHub - sage-git/forcv: A Fortran wrapper for OpenCV

A Fortran wrapper for OpenCV. Contribute to sage-git/forcv development by creating an account on GitHub. //  github.com
 
   88
RU спокойный тип #13.01.2022 13:12  @andry_p#13.01.2022 12:37
+
+1
-
edit
 

спокойный тип
Спокойный_Тип

старожил
★★

с.т.>> это да , ещё из ништяков можно openCV вспомнить.
a.p.> openCV же вроде на плюсах сама написана, так что по большому счёту всё равно откуда вызывать. Другое дело что в питон интеграция уже прикручена.

в питоне просто удобнее, там кроме опенCV ещё и дохера другого есть. в плоть до того что можно с облака гугла данные засасывать или выкладывать (это то с чем я сталкивался, даже библиотеку одну на гихабе допиливал).
   95.095.0
RU andry_p #13.01.2022 13:29  @спокойный тип#13.01.2022 13:12
+
-
edit
 

andry_p

втянувшийся

с.т.> в питоне просто удобнее, там кроме опенCV ещё и дохера другого есть. в плоть до того что можно с облака гугла данные засасывать или выкладывать (это то с чем я сталкивался, даже библиотеку одну на гихабе допиливал).

Так-то понятно, что для одного из самых популярных языков очень много чего интересного есть, в отличии от языка полумёртвого.
   88
Это сообщение редактировалось 13.01.2022 в 13:41

  • yacc [15.01.2022 12:53]: Перенос сообщений в Python
+
+1
-
edit
 

yacc

старожил
★★★
Кстати, кто хочет вспомнить молодость ?

Вот онлайн фортран

Online Fortran Compiler - Online Fortran Editor - Online Fortran IDE - Fortran Coding Online - Practice Fortran Online - Execute Fortran Online - Compile Fortran Online - Run Fortran Online

Online Fortran Compiler, Online Fortran Editor, Online Fortran IDE, Fortran Coding Online, Practice Fortran Online, Execute Fortran Online, Compile Fortran Online, Run Fortran Online, Online Fortran Interpreter, Compile and Execute FORTRAN-95 Online (GNU Fortran, GCC v7.1.1) //  www.tutorialspoint.com
 

Только учтите, что если хотите цикл DO как в старом Фортран-4 на метке должен быть CONTINUE
   92.0.4515.10792.0.4515.107

Garry_s

опытный


yacc> Вот онлайн фортран
yacc> Только учтите, что если хотите цикл DO как в старом Фортран-4 на метке должен быть CONTINUE
Про цикл я уже писал, это ладно.
Тут похлеще дела.
Подсунул этому транслятору свой текст, а он из всех стандартных операторов узнал только
REAL, FORMAT и IF, почему-то.
Даже С в первой позиции не узнает, как комментарий.
Наверное что-то с кодировкой, текст я открыл и скопировал Вордпадом.

Upd.
Еще открыл и скопировал Блокнотом, та же х..ня.
Вин7 вообще не хочет открывать файл с расширением .for, в отличие от ХР.
   97.0.4692.7197.0.4692.71
Это сообщение редактировалось 15.01.2022 в 21:29
EE Татарин #16.01.2022 03:52  @Garry_s#15.01.2022 21:08
+
-
edit
 

Татарин

координатор
★★★★★

G.s.> Наверное что-то с кодировкой, текст я открыл и скопировал Вордпадом.
Посмотрите, не открываете ли в 16-бит Юникоде или что-то подобное.
А ещё многие фортраны не понимают ничего из расширенной кодовой страницы (в смысле, символы с кодом старше 127), тут тоже может быть засада.

G.s.> Вин7 вообще не хочет открывать файл с расширением .for, в отличие от ХР.
Это ничего. Ассоциации с расширением проставьте просто. :)
Дело не в версии винды, а в конкретном её экземпляре и истории этого экземпляра. Просто на ХР у Вас стоИт ассоциация .фор с какой-то прогой, а на 7-ке ещё не проставлена (или стоИт неверная).
   97.0.4692.7197.0.4692.71
+
-
edit
 

Garry_s

опытный


G.s.>> Наверное что-то с кодировкой, текст я открыл и скопировал Вордпадом.
Татарин> Посмотрите, не открываете ли в 16-бит Юникоде или что-то подобное.
Татарин> А ещё многие фортраны не понимают ничего из расширенной кодовой страницы (в смысле, символы с кодом старше 127), тут тоже может быть засада.
"Технология" у меня такая: текст на фортране набран на 286 компе в MS-DOS, далее я его записываю на дискету 3,5. Иду на более свежий комп с ХР, у которого есть и дисковод и USB, переписываю на флешку, а уже с неё открываю вордпадом или блокнотом и вставляю в окно на этом сайте. Где тут может измениться кодировка?
Некоторые служебные операторы она же узнаёт. Про комментарии на русском я молчу.
Но дает ошибки в каждой строке!
Причём не указывает, что именно, а просто констатирует синтаксическую ошибку и все.
Примитив.
   97.0.4692.8797.0.4692.87
+
-
edit
 

tarasv

аксакал

G.s.> Но дает ошибки в каждой строке!

Тут без файла программы можно только гадать. Попробовал набить вручную цикл и if с тремя метками - работают.
   97.0.4692.7197.0.4692.71

yacc

старожил
★★★
G.s.> Даже С в первой позиции не узнает, как комментарий.
G.s.> Наверное что-то с кодировкой, текст я открыл и скопировал Вордпадом.
Это фортран 95 - там прямо так и написано: видно по строке запуска $gfortran -std=f95 *.f95 -o main
Там восклицательный знак на первом месте комментарий

С  Комментарий Ф-4 и Ф77

!  Комментарий Ф95
   92.0.4515.10792.0.4515.107

Garry_s

опытный


yacc> Это фортран 95 - там прямо так и написано: видно по строке запуска
yacc> Там восклицательный знак на первом месте комментарий
Какой дебил внес такое изменение в синтаксис?
Ладно бы добавил к стандартному С, если кому так удобнее.
А если в программе тысячи строк и сотни комментариев, надо заменять?
Нет, такой хоккей фортран нам не нужен!
   97.0.4692.7197.0.4692.71

yacc

старожил
★★★
yacc>> Это фортран 95 - там прямо так и написано: видно по строке запуска
yacc>> Там восклицательный знак на первом месте комментарий
G.s.> Какой дебил внес такое изменение в синтаксис?
G.s.> Ладно бы добавил к стандартному С, если кому так удобнее.
Онлайн фортран работает только со стандартом 90 и выше - там больше нет позиционного синтаксиса и поэтому комментарий со знака вопроса.

Старые программы для совместимости у gfortran можно скомпилировать только если скачать его - чтобы файл имел расширение .f а не стандартное для 90 .f90 ( что делают все онлайн компиляторы )
Плюс поиграться с ключами типа -std=legacy или -ffixed-form - разумеется для файла .f

Судя по тому, что стандарт активно применяется в разных компиляторах - фортран-программисты вовсе не против уйти от древнего позиционного синтаксиса
   92.0.4515.10792.0.4515.107
+
+1
-
edit
 

Garry_s

опытный


yacc> Онлайн фортран работает только со стандартом 90 и выше - там больше нет позиционного синтаксиса и поэтому комментарий со знака вопроса.
Комментарий с восклицательного знака, проверил.
Слепил такую программку.

program hello
integer a(10),b(10)
common a,b
do 1 i=1,15
a(i)=i
b(i)=a(i)
1 continue
! вызов подпрограммы
call sub1
end program

subroutine sub1
integer a(10),b(10)
common a,b
do 1 i=1,15
print *, a(i)+b(i), "Hello World!"
1 continue
return
end

Как легко видеть, сознательно увеличил циклы до 15, когда размерность массивов 10, т.е.
при счёте выхожу за пределы массивов.
И работает! Не дает ошибку, как "нормальный" фортран!?
Печатает числа перед "Hello World!" в разнобой.
   97.0.4692.7197.0.4692.71
+
+1
-
edit
 

tarasv

аксакал

G.s.> Какой дебил внес такое изменение в синтаксис?
G.s.> Ладно бы добавил к стандартному С, если кому так удобнее.

! стандарт с 77 года и позволяет начинать комментарий с любого места строки.

G.s.> А если в программе тысячи строк и сотни комментариев, надо заменять?
G.s.> Нет, такой хоккей фортран нам не нужен!

написать скрипт который регулярку ^C заменит во всех файлах на ! наверно быстрее чем написать этот пост ;)
   97.0.4692.7197.0.4692.71
+
+1
-
edit
 

yacc

старожил
★★★
tarasv> ! стандарт с 77 года и позволяет начинать комментарий с любого места строки.
Кстати да
Нашел документ 1983 описывающий различные изменения и поддержку версий на разных ЭВМ

Скриншот оттуда
Прикреплённые файлы:
f77.jpg (скачать) [810x795, 147 кБ]
 
 
   92.0.4515.10792.0.4515.107
+
-
edit
 

Garry_s

опытный


tarasv> ! стандарт с 77 года и позволяет начинать комментарий с любого места строки.
Текст комментария и раньше с любой позиции можно было, главное С в первой.
tarasv> написать скрипт который регулярку ^C заменит во всех файлах на ! наверно быстрее чем написать этот пост ;)
Ага, если, как я пишу выше, текст коммента может быть с любой позиции, а ещё буква С встречается в операторах, в названиях переменных и массивов, CONTINUE, FUNCTION и др.
   97.0.4692.8797.0.4692.87
Это сообщение редактировалось 17.01.2022 в 07:15
+
-
edit
 

tarasv

аксакал

G.s.> Текст комментария и раньше с любой позиции можно было, главное С в первой.
Но комментарий - вся строка. А в 77м можно после оператора комментарий вставить

HOURS=WEEKS*24*7 ! We work whole week

G.s.> Ага, если, как я пишу выше, текст коммента может быть с любой позиции, а ещё буква С встречается в операторах, в названиях переменных и массивов, CONTINUE, FUNCTION и др.

в регулярках ^ это начало строки так что проблем с файлами Fortran IV быть не должно.
   97.0.4692.7197.0.4692.71
Это сообщение редактировалось 17.01.2022 в 08:40

yacc

старожил
★★★
G.s.> И работает! Не дает ошибку, как "нормальный" фортран!?
В gfortran по умолчанию нет проверки границ, но ее можно включить опцией
   92.0.4515.10792.0.4515.107
+
-1
-
edit
 

Gudleifr

опытный

<удалено по просьбе администрации>
   97.0.4692.7197.0.4692.71
Это сообщение редактировалось 17.01.2022 в 23:45
+
-
edit
 

16-й

аксакал
★★
Gudleifr> ... это только трюк, чтобы поддержать у "современных программистов" легенду о "переносимости" и "совместимости".

Да, ладно.
Сколько переезжал, скажем, с оракла на оракл, так все прекрасно переезжалось без описанных ужасов.
Оптимизатор умнел и дурил местами, так на это компатибл предусмотрен. Открути вниз и живи по старому.
Некоторые ограничения совместимости, конечно, случаются, так про них сначала пять лет пугают, а потом долго предупреждают. (Вот давно не проверял, хинт +RULE еще живой? Небось, да. А ведь RBO уж лет 15 как надежно похерили.)
   96.0.4664.4596.0.4664.45
+
-2
-
edit
 

Gudleifr

опытный

16-й> Некоторые ограничения совместимости, конечно, случаются
Обратите внимание, что речь идет о простейшей надстройке над реляционной алгеброй, работа которой либо прозрачна, либо никого не интересует, а не о полноценном языке программирования вычислений, где лишнее приведение внутреннего типа может вызвать катастрофу.
   97.0.4692.7197.0.4692.71
LT AleksejLt #17.01.2022 13:31  @Garry_s#17.01.2022 06:41
+
-
edit
 

AleksejLt

опытный

G.s.> Ага, если, как я пишу выше, текст коммента может быть с любой позиции, а ещё буква С встречается в операторах, в названиях переменных и массивов, CONTINUE, FUNCTION и др.

Попробуй в Нотепад++ сделать. Там можно фильтровать по директории и типам файлов. Я прикинул, вроде, работает)
Прикреплённые файлы:
rf.png (скачать) [1249x628, 47 кБ]
 
 
   97.097.0
RU Gudleifr #17.01.2022 13:35  @AleksejLt#17.01.2022 13:31
+
-1
-
edit
 

Gudleifr

опытный

AleksejLt> Я прикинул, вроде, работает)
А есть еще 6-я колонка - отметка о продолжении...
   97.0.4692.7197.0.4692.71

yacc

старожил
★★★
G.s.>> И работает! Не дает ошибку, как "нормальный" фортран!?
yacc> В gfortran по умолчанию нет проверки границ, но ее можно включить опцией
В общем, чисто ради интереса поставил gfortran на Ubuntu - на винду ставить как-то не хочется
Тем более что в Убунту это вообще просто через apt: запускаешь gfrotran, он не находится и тебе тут же дается строка для установки

Взял ту же тестовую программу, только упрощенную

С  test
   program hello
   integer a(10),b(10)
   do 1 i=1,15
   a(i)=i
   b(i)=a(i)
C  Печать данных
   print *, a(i)+b(i), "Hello World!" 
1  continue
   end program


И запустил ее ... старым компилятором который попутно устанавливается.
Т.е. просто: f77 test.f
Он сразу ругнулся за выход за границы массива.
Поправил. Все скомпилировалось и запустилось
И да - метка для цикла должна быть на Continue, если на простом операторе - тоже ругается.
Русский комментарий без проблем взял

Мораль - в Линуксе все прекрасно запускается даже для старых программ
   92.0.4515.10792.0.4515.107
+
-
edit
 

Garry_s

опытный


Gudleifr> Еще раз. Тут дело не в FORTRAN. Дело в Вас. Ни одна современная система не будет повторять старую в точности. Любую программу, которую Вы будете переносить, надо будет проверять до последней строчки. Со временем у Вас накопятся исходники в старом виде, в новом виде, в промежуточном виде и т.д.
Так эта попытка переехать на Фортран другого поколения у меня не спонтанно возникла.
Сначала я попытался работать через виртуальную машину, поставить на неё MS-DOS и Win98.
Для пользователя типа меня - программиста/прикладника это тоже сложновато.
Вот теперь у меня две альтернативы: переучивать современный фортран или продвинуться в использовании виртуалки.
   97.0.4692.7197.0.4692.71
1 4 5 6 7 8 9 10

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru