世界初の高水準言語「Fortran」が考案から約70年経ってもいまだに使用されている理由とは?
1954年に考案され、広く用いられた世界初の高水準言語が「Fortran」です。
多種多様なプログラミング言語が存在するにもかかわらず、考案から約70年が経過した「Fortran」が依然としてプログラマーに愛用されている理由を、カリフォルニア工科大学のMartin D. Maas氏が解説しています。
5 Reasons Why Fortran is Still Used
https://www.matecdev.com/posts/why-fortran-still-used.html
(以下略、続きはソースでご確認ください)
Gigazine 2022年11月08日 07時00分
https://gigazine.net/news/20221108-fortran-programming-code/
【解説/プログラミング言語】世界初の高水準言語「Fortran」が考案から約70年経ってもいまだに使用されている理由とは? [すらいむ★]
■ このスレッドは過去ログ倉庫に格納されています
1すらいむ ★
2022/11/08(火) 20:33:19.06ID:9RPtkLUl2名無しのひみつ
2022/11/08(火) 20:54:15.10ID:V2O74fFY 某重工にFortranで制御された計測システムがあったw
3名無しのひみつ
2022/11/08(火) 20:57:51.18ID:KJfxTeIY 英語がなくならないと一緒。
言語だから、コンパイラが時代を作ってくれるのさ
言語だから、コンパイラが時代を作ってくれるのさ
4名無しのひみつ
2022/11/08(火) 21:00:40.57ID:bNES6qvQ 今はスパコン専用言語みたくなって、性能を失わず並列処理が簡単に書けるからね
2022/11/08(火) 21:07:44.48ID:C351odOr
いまだ 1Hスペースが忘れられない
6名無しのひみつ
2022/11/08(火) 21:20:51.55ID:baDw2sqJ ナムコのUGSFシリーズの宇宙戦闘機はフォートランが動いてる
7名無しのひみつ
2022/11/08(火) 21:31:44.48ID:K2Og3wQI8名無しのひみつ
2022/11/08(火) 21:54:47.37ID:2w4Gschj 57歳のコボラーだが定年まであと3年
就職した時点でCOBOLは無くなるみたいに言われてたが、こんなに長寿だとはwww
SQLだけは身に着けたけどね
就職した時点でCOBOLは無くなるみたいに言われてたが、こんなに長寿だとはwww
SQLだけは身に着けたけどね
9名無しのひみつ
2022/11/08(火) 22:42:45.15ID:Z8n9IrTN パンチカードシステムが動くから
10名無しのひみつ
2022/11/08(火) 23:56:24.11ID:Pt2FOEKI 誰にも話題に出してもらえないRPGさんはどうなっていますか
認知度低すぎてゲームだと思われるんです
認知度低すぎてゲームだと思われるんです
11名無しのひみつ
2022/11/09(水) 05:10:14.95ID:2HYbUlNm 愛されてるってのと感覚が違う気がする。
cobolも愛されてはいないだろ?
cobolも愛されてはいないだろ?
13名無しのひみつ
2022/11/09(水) 06:00:39.47ID:pYyBtY/R >>7
並列処理って面ではFortranが良さげかな、自由度が高い言語は並列処理の最適化がしんどい。今時はパラレルプロセッサ積んでいるのをスパコンと言わんのかも知れんけど
並列処理って面ではFortranが良さげかな、自由度が高い言語は並列処理の最適化がしんどい。今時はパラレルプロセッサ積んでいるのをスパコンと言わんのかも知れんけど
15名無しのひみつ
2022/11/09(水) 09:01:37.51ID:DVkEuULl FORTRAN77で流体の数値解析してたよ
16名無しのひみつ
2022/11/09(水) 10:07:57.92ID:v4JEsN9D ラダーでよい
17名無しのひみつ
2022/11/09(水) 11:10:02.47ID:mlBdmv22 FORTRANすごいよね
はじめて学生時代に教わったときはWindows3.1だった
はじめて学生時代に教わったときはWindows3.1だった
18名無しのひみつ
2022/11/09(水) 12:38:09.10ID:39bD+33h やっほー フォートランランラン
19名無しのひみつ
2022/11/09(水) 12:53:48.97ID:3bVIcsU720名無しのひみつ
2022/11/09(水) 12:55:30.52ID:3bVIcsU7 鉄道系もCOBOLなんだね。
金融系のイメージしか無かった。
金融系のイメージしか無かった。
21名無しのひみつ
2022/11/09(水) 13:48:33.90ID:z2/pNuSf パンチカードとラインプリンターが学生時代の思い出
22名無しのひみつ
2022/11/09(水) 15:35:04.52ID:lOxaSeDC 量子テレポーテーションデータ伝送技術を応用したスマートフォンを開発しろよ!www
23名無しのひみつ
2022/11/09(水) 15:52:56.03ID:pTEj1ooh ループが無限ループになりやすくてロケットを宇宙のかなたに飛ばしてしまうFortran
25名無しのひみつ
2022/11/09(水) 20:04:43.91ID:SkdYsdGi オイラはBASIC一本で社長になった
26名無しのひみつ
2022/11/09(水) 20:06:23.06ID:A7uBE2pU 理由は特に変える必要がないから
27名無しのひみつ
2022/11/09(水) 20:16:00.99ID:0kL7r+uv ファイルのゲット/プットすら2進法で記述してたマシン語が懐かしい
29名無しのひみつ
2022/11/09(水) 22:45:10.39ID:lOxaSeDC >>24
量子テレポーテーションデータ伝送技術が出来る様になると光ファイバーが不要になるかもしれんなwwwwwwwww
量子テレポーテーションデータ伝送技術が出来る様になると光ファイバーが不要になるかもしれんなwwwwwwwww
30名無しのひみつ
2022/11/10(木) 00:13:35.17ID:dbOxcE7V31名無しのひみつ
2022/11/10(木) 08:07:33.76ID:rGIxXSqq >>26
様変わりしてるって
様変わりしてるって
32名無しのひみつ
2022/11/10(木) 08:22:35.69ID:glp5MfW9 フォーフォーフォートランランラン
フォトフォートランランラン
フォトフォートランランラン
フォートラン
フォトフォートランランラン
フォトフォートランランラン
フォートラン
33名無しのひみつ
2022/11/10(木) 09:47:47.67ID:RyoW6Pk+ 90の頃に使ってたわ
いまだに自分で一番書いたコード量の多い言語だと思うw
いまだに自分で一番書いたコード量の多い言語だと思うw
34名無しのひみつ
2022/11/10(木) 09:59:02.81ID:xDKUrSJf 4倍にするのに左シフト2とかできてとっても軽量
35名無しのひみつ
2022/11/10(木) 10:25:09.47ID:S+pgkXj7 Fortran for TRONはないの?
36名無しのひみつ
2022/11/10(木) 14:01:07.69ID:BiCTuLWP >>19
Windowsがあった頃はテープもカードももうほとんど無かったかと。
マークシートのカードも1980年代までかな、一枚一行だけどズボラしてカードに番号書かない奴は床にうっかりぶちまけて泣きっ面で2進数読みながら並べ直してたわw
Windowsがあった頃はテープもカードももうほとんど無かったかと。
マークシートのカードも1980年代までかな、一枚一行だけどズボラしてカードに番号書かない奴は床にうっかりぶちまけて泣きっ面で2進数読みながら並べ直してたわw
37名無しのひみつ
2022/11/10(木) 14:13:06.37ID:NfkXLIgD マークシートは現役じゃないかな?
人間の試験やギャンブルだけど
人間の試験やギャンブルだけど
39名無しのひみつ
2022/11/10(木) 18:25:30.53ID:cwzv2VFv42名無しのひみつ
2022/11/11(金) 15:46:58.54ID:jseI55zC43名無しのひみつ
2022/11/11(金) 15:48:05.08ID:jseI55zC44名無しのひみつ
2022/11/11(金) 16:20:45.93ID:mdZ5iSj8 >>7
でもCに関してパラレル向けの言語拡張の話は聞かないな。
でもCに関してパラレル向けの言語拡張の話は聞かないな。
45名無しのひみつ
2022/11/11(金) 16:30:19.66ID:GtXDBWa746名無しのひみつ
2022/11/11(金) 16:36:17.20ID:GtXDBWa7 >>44
Parallel CとかαCとかXL C/C++とか色々あったけどベンダー間で統一されてないからね
スパコンのデータパラレルはFortranの圧勝だよ
CよりもPython scipy/numpyの方が統一されてる
まあ下位層は独自C/C++拡張で書いてあるんだけど
Parallel CとかαCとかXL C/C++とか色々あったけどベンダー間で統一されてないからね
スパコンのデータパラレルはFortranの圧勝だよ
CよりもPython scipy/numpyの方が統一されてる
まあ下位層は独自C/C++拡張で書いてあるんだけど
47名無しのひみつ
2022/11/11(金) 16:38:58.58ID:a5OK1ekh 昔:FORTRAN
今:Fortran
随分変わってんよ
今:Fortran
随分変わってんよ
48名無しのひみつ
2022/11/11(金) 16:41:28.36ID:dcx6od55 >>46
そうそう、Cとかで並列化率高いコード書こうと思ったら意図的なコードでかつ使うコンパイラの特性知っているかどうかでかなり変わる
そうそう、Cとかで並列化率高いコード書こうと思ったら意図的なコードでかつ使うコンパイラの特性知っているかどうかでかなり変わる
49名無しのひみつ
2022/11/11(金) 17:25:31.85ID:U2jSth/M I/Oに載ってたマシン語を入力した人いる?
51名無しのひみつ
2022/11/11(金) 22:45:14.51ID:jWO9OwGq 別言語に移行するコストがかかり過ぎるからだろ
特にFortranが得意とする科学技術系の計算は誤差の問題が発生するから、労力が凄くかかる
特にFortranが得意とする科学技術系の計算は誤差の問題が発生するから、労力が凄くかかる
53名無しのひみつ
2022/11/12(土) 06:31:13.63ID:7uwGFTvx oh! その他!
54名無しのひみつ
2022/11/12(土) 06:50:12.54ID:w6Mb3WkB55名無しのひみつ
2022/11/12(土) 06:55:33.38ID:w6Mb3WkB >>49
I/Oでなくともマシン語はデバッグで見たんだよ昔はね
COBOLでもFortranを使っていたとしてもシステム寄りのモディファイルーチンつまりOSのユーザーカストマイズにはアセンブラ必須だったし
デバッグはマシン語とビットの意味を読めない
と
入力よりもシステムが何やってるのか知るには必須だったんだよ
I/Oでなくともマシン語はデバッグで見たんだよ昔はね
COBOLでもFortranを使っていたとしてもシステム寄りのモディファイルーチンつまりOSのユーザーカストマイズにはアセンブラ必須だったし
デバッグはマシン語とビットの意味を読めない
と
入力よりもシステムが何やってるのか知るには必須だったんだよ
56名無しのひみつ
2022/11/12(土) 06:56:42.73ID:w6Mb3WkB57名無しのひみつ
2022/11/12(土) 07:01:21.80ID:w6Mb3WkB Fortran パラレルの歴史書いてる人いたよ
https://wvuhpc.github.io/Modern-Fortran/20-Parallel-Programming/index.html
https://wvuhpc.github.io/Modern-Fortran/20-Parallel-Programming/index.html
58名無しのひみつ
2022/11/12(土) 07:02:57.77ID:w6Mb3WkB Fortranが今でも使われている5理由
https://www.matecdev.com/posts/why-fortran-still-used.html
https://www.matecdev.com/posts/why-fortran-still-used.html
59名無しのひみつ
2022/11/12(土) 07:06:25.39ID:w6Mb3WkB スタンフォードのアーカイブ
新しいFORTRAN90 77とどこが変わったか
1997年12月
http://sepwww.stanford.edu/public/docs/sep70/biondo/paper_html/node2.html
新しいFORTRAN90 77とどこが変わったか
1997年12月
http://sepwww.stanford.edu/public/docs/sep70/biondo/paper_html/node2.html
60名無しのひみつ
2022/11/12(土) 07:10:32.84ID:3X1G/9Ny >>7
未だにFORTRAN(Fortranではない)ライブラリがデファクトスタンダードだぞ BLAS/LAPACKとか
Cとかpythonの遅いライブラリ使って、ループ一回が0.01秒でも余計にかかるなんてやってられない そもそもライブラリ以前にコンパイラがクソだが
未だにFORTRAN(Fortranではない)ライブラリがデファクトスタンダードだぞ BLAS/LAPACKとか
Cとかpythonの遅いライブラリ使って、ループ一回が0.01秒でも余計にかかるなんてやってられない そもそもライブラリ以前にコンパイラがクソだが
61名無しのひみつ
2022/11/12(土) 07:12:09.63ID:w6Mb3WkB ちなみに大抵の技術部はFORTRAN使ってた
そんななかホストコンピュータでもCを使いたいというんでCメーカーがサポートしたないアメリカモンのCをインストールした新人時代
まだCは方言がきつかった
そんななかホストコンピュータでもCを使いたいというんでCメーカーがサポートしたないアメリカモンのCをインストールした新人時代
まだCは方言がきつかった
62名無しのひみつ
2022/11/12(土) 07:26:53.89ID:w6Mb3WkB てかこのあたりでアセンブラとかマシン語ができるとすごいみたいにいうやついるだろ
逆
ビットってのはオンオフスイッチ一つのことだから
豆電球つけるスイッチがただたくさん並んでるだけ
そのオンオフの組み合わせをこういう意味にしましょうって決めてるのがコンピュータのシステム
カッコつけて建築から借りてきた言葉でアーキテクチャって言ってるだけ
ビット列の取り扱いを決めたのは人間
それでCPUとメモリーとコントローラの動きを決めただけ
これが作る人によって違うから別のアーキテクチャと呼んでるだけ
んでそのCPUを使うならそのビット列の取り扱いで動かすだけ
いろいろ動かしたいならソフトウェアで動かすだけ
そのソフトウェアはそのビット列の取り扱いで動かそうとするだけで
そのソフトウェアが例えばLinuxならマシン毎にLinuxが違うわけ
でそのLinuxの上でC動かしたいならそのCもそのビット列で動くように仕込んでないといけないだけで
そのCを使ってコーティングする人はいちばん下のビット列の違いはそんなに考えなくて良くなったのは楽だよねー
そのかわり細かいことは気にせずでかいことをやれよーって話でAIとかやるのが楽になってると
端折りすぎたけどだから楽なんだよいろいろできるんだよね
逆
ビットってのはオンオフスイッチ一つのことだから
豆電球つけるスイッチがただたくさん並んでるだけ
そのオンオフの組み合わせをこういう意味にしましょうって決めてるのがコンピュータのシステム
カッコつけて建築から借りてきた言葉でアーキテクチャって言ってるだけ
ビット列の取り扱いを決めたのは人間
それでCPUとメモリーとコントローラの動きを決めただけ
これが作る人によって違うから別のアーキテクチャと呼んでるだけ
んでそのCPUを使うならそのビット列の取り扱いで動かすだけ
いろいろ動かしたいならソフトウェアで動かすだけ
そのソフトウェアはそのビット列の取り扱いで動かそうとするだけで
そのソフトウェアが例えばLinuxならマシン毎にLinuxが違うわけ
でそのLinuxの上でC動かしたいならそのCもそのビット列で動くように仕込んでないといけないだけで
そのCを使ってコーティングする人はいちばん下のビット列の違いはそんなに考えなくて良くなったのは楽だよねー
そのかわり細かいことは気にせずでかいことをやれよーって話でAIとかやるのが楽になってると
端折りすぎたけどだから楽なんだよいろいろできるんだよね
63名無しのひみつ
2022/11/12(土) 07:32:11.94ID:w6Mb3WkB みんな誰かの作ったルールとツールでプログラミングできてんだから感謝しながらでかいことやろーねー
64名無しのひみつ
2022/11/12(土) 07:39:26.08ID:7uwGFTvx 機械語でプログラミングするのは
車を鉄インゴットから作るようなもの。
パーツ一つ程度なら可能かもしれないが、
全体を作るのは現実的ではない。
車を鉄インゴットから作るようなもの。
パーツ一つ程度なら可能かもしれないが、
全体を作るのは現実的ではない。
66名無しのひみつ
2022/11/12(土) 08:26:10.92ID:vY/ITXQB >>60
言語とライブラリの区別がついてないね
BLAS,LAPACKならscipyから使える
問題は自前で書いた配列演算も並列にできるかどうか
そこはFortranが優位
ただしLAPACKもマルチスレッド対応ではなく既に古臭い
言語とライブラリの区別がついてないね
BLAS,LAPACKならscipyから使える
問題は自前で書いた配列演算も並列にできるかどうか
そこはFortranが優位
ただしLAPACKもマルチスレッド対応ではなく既に古臭い
67名無しのひみつ
2022/11/12(土) 08:28:02.65ID:q4buIsJf もう最後にFortran書いたのは三十数年前だが今でも書けと言われれば書ける
68名無しのひみつ
2022/11/12(土) 08:29:31.00ID:vY/ITXQB >>65
Fortranは複雑化するばかりだけどな
計算が速いライブラリ、コードが可搬性高い方がいいからな
速いは正しいの世界だから
ただ昔と違ってハードウェアアーキテクチャ乗り換えても速いことが求められてる
Fortranは複雑化するばかりだけどな
計算が速いライブラリ、コードが可搬性高い方がいいからな
速いは正しいの世界だから
ただ昔と違ってハードウェアアーキテクチャ乗り換えても速いことが求められてる
69名無しのひみつ
2022/11/12(土) 08:54:07.44ID:+p05hrzn そこに愛など無いと思っていたが実は愛されていたのか?
70名無しのひみつ
2022/11/12(土) 10:21:05.69ID:vwoiEmk7 >>6
今はCでも書いてるんだ。昔スパコンでシミュレーション作ってた時は精度の問題でFortran一択だったが。
今はCでも書いてるんだ。昔スパコンでシミュレーション作ってた時は精度の問題でFortran一択だったが。
71名無しのひみつ
2022/11/12(土) 12:47:03.57ID:3G8c/qMz 例えば倍精度と指定すれば、
大抵の言語はそれで演算できるので
なぜフォートランばかりなのかよくわからん。
過去の資産を手直しして再利用しやすいからじゃないかな?
大抵の言語はそれで演算できるので
なぜフォートランばかりなのかよくわからん。
過去の資産を手直しして再利用しやすいからじゃないかな?
72名無しのひみつ
2022/11/12(土) 13:21:03.15ID:syFDjkZR73名無しのひみつ
2022/11/12(土) 15:04:33.79ID:DA+ahuK7 >>4
頑なに配列添字まで()を使って秘蔵していた[]を、スレッド/プロセス添字に使ったイノベーションがFortranの地位を確固たるものにしたと思う
並行/並列プログラムでの各変数をvar[i]で参照できる利便は他言語の追随を許さない
頑なに配列添字まで()を使って秘蔵していた[]を、スレッド/プロセス添字に使ったイノベーションがFortranの地位を確固たるものにしたと思う
並行/並列プログラムでの各変数をvar[i]で参照できる利便は他言語の追随を許さない
74名無しのひみつ
2022/11/12(土) 15:19:44.07ID:DA+ahuK7 >>72
元々forallとか並列性を明示する文は豊富にあったけど、それでもcoarray拡張標準化以前はディレクティブだらけの汚いコードだったな(専用構文を全く欠くc程ではないが)
モジュール等名前空間管理やインターフェイスもしっかりしてるし、20xxは本当にモダンになったと思う、むしろSteele先生が関わってから厳格、というかJava臭くなったのと、OOPはオーバーヘッドで不評だけど
元々forallとか並列性を明示する文は豊富にあったけど、それでもcoarray拡張標準化以前はディレクティブだらけの汚いコードだったな(専用構文を全く欠くc程ではないが)
モジュール等名前空間管理やインターフェイスもしっかりしてるし、20xxは本当にモダンになったと思う、むしろSteele先生が関わってから厳格、というかJava臭くなったのと、OOPはオーバーヘッドで不評だけど
75名無しのひみつ
2022/11/12(土) 15:25:20.82ID:n8p0c/63 C++の目指したかっただろう言語になってるよね
Cとの互換性ガーとか言ってるうちにパフォーマンスでも言語デザインでも先を越された
Cとの互換性ガーとか言ってるうちにパフォーマンスでも言語デザインでも先を越された
76名無しのひみつ
2022/11/12(土) 15:34:04.23ID:RqwOI7jF77名無しのひみつ
2022/11/12(土) 15:44:57.61ID:RqwOI7jF 先史時代からの互換性を担保しても、どんどん新しい言語構文を導入してるからキレイには書ける
但しマニュアルでかなりの構文がdeprecated記載祭りなのはかなりアレ
大抵の言語は関数レベルでdeprecated→廃止で構文には手を入れないけど、Fortranは文レベルかつ廃止が(ほぼ)ない
マニュアルにノイズが多過ぎるから、正しい作法を身につけるのは長い道のりだと思う
但しマニュアルでかなりの構文がdeprecated記載祭りなのはかなりアレ
大抵の言語は関数レベルでdeprecated→廃止で構文には手を入れないけど、Fortranは文レベルかつ廃止が(ほぼ)ない
マニュアルにノイズが多過ぎるから、正しい作法を身につけるのは長い道のりだと思う
78名無しのひみつ
2022/11/12(土) 15:50:08.21ID:RqwOI7jF いくら新構文を付け足しても、implicit noneだけは除けないのよなあ…
79名無しのひみつ
2022/11/12(土) 15:52:59.87ID:qOd4Jyr5 電子計算機の時代の
プログラミング言語が
まだ現役なんだね
カセットテープとどっちが長生きするか
プログラミング言語が
まだ現役なんだね
カセットテープとどっちが長生きするか
80名無しのひみつ
2022/11/12(土) 16:13:07.94ID:YVNkL4r1 >>72
精度について仕様でとやかく言ってる訳ではないと思うが、80年代から大抵のコンパイラは4倍精度(無ければエミュレート)+複素数=8倍以上のサポートがされてた
c系で右翼なgccでも結構最近になってからじゃなかったかな
あと言ってるのはもっと高水準なライブラリについてだと思うぞ
大体プロプライエタリだが、デファクトスタンダードで網羅的なmkl等の存在が大きい
mklは呼び出しが古風だけど、他の言語でここまで高機能なライブラリは無いんじゃないか
Pythonでデファクトなscipyでは明らかに機能不足だし
それでもmkl呼ぶコードを書いてラップし、簡単に拡張できるscipyは良いものだけど
精度について仕様でとやかく言ってる訳ではないと思うが、80年代から大抵のコンパイラは4倍精度(無ければエミュレート)+複素数=8倍以上のサポートがされてた
c系で右翼なgccでも結構最近になってからじゃなかったかな
あと言ってるのはもっと高水準なライブラリについてだと思うぞ
大体プロプライエタリだが、デファクトスタンダードで網羅的なmkl等の存在が大きい
mklは呼び出しが古風だけど、他の言語でここまで高機能なライブラリは無いんじゃないか
Pythonでデファクトなscipyでは明らかに機能不足だし
それでもmkl呼ぶコードを書いてラップし、簡単に拡張できるscipyは良いものだけど
82名無しのひみつ
2022/11/12(土) 16:30:00.14ID:mas4e9sS FORTRANもCOBOLも
もうよしなよ
もうよしなよ
83名無しのひみつ
2022/11/12(土) 16:33:18.04ID:RqwOI7jF GPGPUなんかの新興デバイスもメーカー公式でマニュアル示すのはC(++)/Fortranが慣例だしな
84名無しのひみつ
2022/11/12(土) 16:57:05.22ID:FCN71bV2 Fortranの慣習を尊重して後方互換性を切り捨て、事実上モダンFortranとされていた部分のサブセットそのものなjuliaこそ正当な後継者だと思うんだが、Fortranの成長が速すぎてもはやモダンじゃなくなってしまった感
85名無しのひみつ
2022/11/12(土) 17:04:54.56ID:9NPpzvIS cは絶対になくならないだろ
windows OSのソースコードはcで書かれてるからな
windows OSのソースコードはcで書かれてるからな
86名無しのひみつ
2022/11/12(土) 17:16:08.67ID:n8p0c/63 日本語のFortran入門書は90/95水準止まりが多いし、77やそれ以前のコードの読み方への注釈に終始してるから、シンプルなjuliaはFortran入門に良いと思う
2008水準以上は学術出版社から出てて数万円で敷居が高い
自習できるマニュアル読解力があればいいけど
2008水準以上は学術出版社から出てて数万円で敷居が高い
自習できるマニュアル読解力があればいいけど
87名無しのひみつ
2022/11/12(土) 17:27:37.75ID:n8p0c/63 新しいcは記事にあるようにrestrict導入(Fortranのintent in/out)や、特にFortranに比べて決定的に遅い主因だったstrict aliasing問題も解決できたから、パフォーマンス指向でもこれから盛り返せると思う
atomic保証はまだ普及してるとは言えないが、システムプログラミング言語としての地位を盤石にするだろう
Cは着実に正しい進化をしてる、ナイス
それに比べてc++ときたら、何者にもなれない
atomic保証はまだ普及してるとは言えないが、システムプログラミング言語としての地位を盤石にするだろう
Cは着実に正しい進化をしてる、ナイス
それに比べてc++ときたら、何者にもなれない
88名無しのひみつ
2022/11/12(土) 17:50:58.23ID:HwSrPh53 配列演算や非同期処理の抽象度がすごく高い
Fortran風の配列演算はnumpyと比較されるけど、row-major, 0-indexのcコンベンションだからMatlabからの間接輸入になるのかな?
にも関わらず半世紀以上前の古代記法も有効というエキゾチックさが好きだわ
Fortran風の配列演算はnumpyと比較されるけど、row-major, 0-indexのcコンベンションだからMatlabからの間接輸入になるのかな?
にも関わらず半世紀以上前の古代記法も有効というエキゾチックさが好きだわ
89名無しのひみつ
2022/11/12(土) 19:30:46.52ID:RcG5z07s 汎用言語の文法に手を入れないライブラリ実装では、where, forall, mask, do concurrentのようなフィルタやセレクタ処理がメソッド呼び出し構文等の流用になるし、多少見た目が汚くなるのは仕方なくね
例に挙げた程度のものならプログラミング全般に役立つものだし、もっと文法に入れても良いと思うが
例に挙げた程度のものならプログラミング全般に役立つものだし、もっと文法に入れても良いと思うが
90名無しのひみつ
2022/11/12(土) 19:36:24.09ID:RcG5z07s 俺はオライリーの行列プログラマーって本をFortranで自習したけど、強力過ぎて勉強にならんな
91名無しのひみつ
2022/11/12(土) 19:50:44.57ID:BjGSGOy+ 低レベルの問題でも、多重ループの添字はメモリが連続するように動かす云々、みたいのはちゃんとやるべき
添字の処理順に明確に依存して、等価な結果を出すうまい最適化のない処理じゃないと差が出ないけど
ifortはほんとかしこい
Fortran単体で書くことはむしろ少ないし、C系の言語とやり取りする時には常に意識しないといけない
添字の処理順に明確に依存して、等価な結果を出すうまい最適化のない処理じゃないと差が出ないけど
ifortはほんとかしこい
Fortran単体で書くことはむしろ少ないし、C系の言語とやり取りする時には常に意識しないといけない
92名無しのひみつ
2022/11/12(土) 20:11:39.11ID:5yf8R8wC 68歳cobol現役だわ
もうすぐ終える
もうすぐ終える
93名無しのひみつ
2022/11/12(土) 20:17:56.38ID:8pm2yvNJ FORTRANから派生したBASICでマイコンのプログラムを組んでるで(´ω`)
ふつうに仕事用の治具を組むのに今でも使ってるよ
ふつうに仕事用の治具を組むのに今でも使ってるよ
95名無しのひみつ
2022/11/12(土) 21:11:05.81ID:vY/ITXQB96名無しのひみつ
2022/11/12(土) 21:55:02.43ID:v3wPuPEu cとその亜種はサブルーチンと関数の文法上の違いがないから、最適化コンパイラを書くのが本当に難しい
スタックすら積まなくていい副作用のみのsubroutineと値を返すfunction、副作用を禁ずるpure functionとの区別と、値渡し参照渡しを分けてれば良かったのに
たったそれだけでinline地獄は回避出来たはず
入出力変数にintent指定があれば、変数のメモリ領域を一時作業用に上書き流用など自由度が高まったはず
スタックすら積まなくていい副作用のみのsubroutineと値を返すfunction、副作用を禁ずるpure functionとの区別と、値渡し参照渡しを分けてれば良かったのに
たったそれだけでinline地獄は回避出来たはず
入出力変数にintent指定があれば、変数のメモリ領域を一時作業用に上書き流用など自由度が高まったはず
97名無しのひみつ
2022/11/12(土) 22:28:38.28ID:n8p0c/63 人間にとっても値を評価する関数fun(a, b,)と副作用目的であることが明確なcall sub(a, b)の区別や、引数のin, out, inout指定は分かりやすいと思うわ
欠いてる言語も結局ミュータビリティ概念で代用したりコメントで示すわけで
欠いてる言語も結局ミュータビリティ概念で代用したりコメントで示すわけで
98名無しのひみつ
2022/11/12(土) 23:05:39.83ID:vY/ITXQB >>96
> cとその亜種はサブルーチンと関数の文法上の違いがないから、最適化コンパイラを書くのが本当に難しい
>
> スタックすら積まなくていい副作用のみのsubroutineと値を返すfunction、副作用を禁ずるpure functionとの区別と、
色々とおかしい
> cとその亜種はサブルーチンと関数の文法上の違いがないから、最適化コンパイラを書くのが本当に難しい
>
> スタックすら積まなくていい副作用のみのsubroutineと値を返すfunction、副作用を禁ずるpure functionとの区別と、
色々とおかしい
99名無しのひみつ
2022/11/12(土) 23:45:54.70ID:n8p0c/63 >>88
わざわざ総称型関数を定義しなくても、集成体に対して自動で特殊化してくれるelemental functionが簡潔で便利よな、elemental修飾するだけでいいし、ついでに演算子オーバーロードしても
まあnumpyにもufuncという名で同等の機能があるが
ただし組み込み演算子のオーバーロードは要素毎の自明なものに限った方がいい(element-wise)
配列演算には行列積内積外積クロネッカー積…と無数のものが考えられて、Fortranではほとんど任意文字列の演算子定義が許されているのだから、記述的な名前を付けるべし
>>95
Fortranには定番のテンプレートエンジンや、ましてテンプレートライブラリみたいのは無いな
ベンダ固有、CPPの変種やFORTLANの為に書かれた由緒正しき?m4とか
そもそも規律あるチーム開発の文化が無かったり、クラスや複雑な構造型は好まれないので総称関数で済むケースが多い
c++のSTLのようにロジックまで実装する試みは長続きした試しがない、STL移植を目指したFTLなるものもあったはずだが、やはり最近音沙汰ない
わざわざ総称型関数を定義しなくても、集成体に対して自動で特殊化してくれるelemental functionが簡潔で便利よな、elemental修飾するだけでいいし、ついでに演算子オーバーロードしても
まあnumpyにもufuncという名で同等の機能があるが
ただし組み込み演算子のオーバーロードは要素毎の自明なものに限った方がいい(element-wise)
配列演算には行列積内積外積クロネッカー積…と無数のものが考えられて、Fortranではほとんど任意文字列の演算子定義が許されているのだから、記述的な名前を付けるべし
>>95
Fortranには定番のテンプレートエンジンや、ましてテンプレートライブラリみたいのは無いな
ベンダ固有、CPPの変種やFORTLANの為に書かれた由緒正しき?m4とか
そもそも規律あるチーム開発の文化が無かったり、クラスや複雑な構造型は好まれないので総称関数で済むケースが多い
c++のSTLのようにロジックまで実装する試みは長続きした試しがない、STL移植を目指したFTLなるものもあったはずだが、やはり最近音沙汰ない
100名無しのひみつ
2022/11/13(日) 00:12:53.82ID:XWlYf9AC c++のようにコンパイラがマクロ風のテンプレートを認知する言語はむしろ珍しくね?
後発言語で型変数を扱うものは、むしろ初めから構文の一部として実装か、コンパイラの認知しない単なるマクロかだろ
cに継ぎ足して生じたキメラみたいなもの
後発言語で型変数を扱うものは、むしろ初めから構文の一部として実装か、コンパイラの認知しない単なるマクロかだろ
cに継ぎ足して生じたキメラみたいなもの
101名無しのひみつ
2022/11/13(日) 00:30:10.90ID:XWlYf9AC 実体化の検出、構文として正しいかのチェック、コード生成
コンパイラを通さないと意味論のチェックまでは出来ないから2パスになる
STL移植は筋が悪いわ
m4に象徴されるように、Fortranは昔からスクリプト言語やマクロ言語でshoot yourself in the footの精神
コンパイラを通さないと意味論のチェックまでは出来ないから2パスになる
STL移植は筋が悪いわ
m4に象徴されるように、Fortranは昔からスクリプト言語やマクロ言語でshoot yourself in the footの精神
102名無しのひみつ
2022/11/13(日) 06:28:12.62ID:1ypLDfmj103名無しのひみつ
2022/11/13(日) 13:11:56.82ID:H5k8r5f5 >>96
AdaやPascal&Delphi系の人かな。
AdaやPascal&Delphi系の人かな。
104名無しのひみつ
2022/11/13(日) 17:33:51.13ID:LSwuQAIt BASICを最強にしろ
コンパイラが頑張ればいいだけだろ
コンパイラが頑張ればいいだけだろ
105名無しのひみつ
2022/11/13(日) 20:20:05.69ID:j59dqrDu 速度重視の世界ではインタプリタ系は無い。
機械の仮想化が進むとどうなんだろう。
機械の仮想化が進むとどうなんだろう。
106名無しのひみつ
2022/11/13(日) 20:42:43.98ID:YqetUxOk Fortranで進まないプロジェクトにスパコン噛ませるのと
インタプリタですいすい進むプロジェクトにスパコン噛ませるの
どっちが早いんだろうか。万年レベルの差が出るならともかく
インタプリタですいすい進むプロジェクトにスパコン噛ませるの
どっちが早いんだろうか。万年レベルの差が出るならともかく
107名無しのひみつ
2022/11/14(月) 01:13:47.05ID:62EB3YD2 普通に超便利だからだろ
静的言語でOctave(Matlab), scipy以上に簡潔な配列演算記法をサポートしてる言語って他に無くね?
奇怪な記法に目を瞑れば、APLが対抗馬
静的言語でOctave(Matlab), scipy以上に簡潔な配列演算記法をサポートしてる言語って他に無くね?
奇怪な記法に目を瞑れば、APLが対抗馬
108名無しのひみつ
2022/11/14(月) 01:37:30.12ID:62EB3YD2 array comprehension(数学の集合内包表記)ワンライナーでパパっと配列組み立てて
述語を渡してフィルタ
スカラ関数が配列にそのまま使えて
ブロードキャストで添字マジック
世界初の高級言語にして、現代でも静的言語としては間違いなく最高級言語
COBOLみたいなレガシーロートル言語と比べるのは失礼
述語を渡してフィルタ
スカラ関数が配列にそのまま使えて
ブロードキャストで添字マジック
世界初の高級言語にして、現代でも静的言語としては間違いなく最高級言語
COBOLみたいなレガシーロートル言語と比べるのは失礼
109名無しのひみつ
2022/11/14(月) 07:43:52.32ID:jxoT+21v >>107
表記だけで言えばHaskellやFortran2018もイケてる
Haskell fusionとか
ecosystem的にはPythonが圧倒的な勝者
wrapper library書くのが簡単
昔のPerlのように
表記だけで言えばHaskellやFortran2018もイケてる
Haskell fusionとか
ecosystem的にはPythonが圧倒的な勝者
wrapper library書くのが簡単
昔のPerlのように
110名無しのひみつ
2022/11/14(月) 13:40:15.67ID:hltTtT00 cより遥かいにしえの言語は、出力のフォーマット指定子ミニ言語が辛い
lispとfortran
どちらもprintfより強力ではあるが、特にlispのはそれ自体でチューリング完全
lispとfortran
どちらもprintfより強力ではあるが、特にlispのはそれ自体でチューリング完全
111名無しのひみつ
2022/11/14(月) 14:01:34.78ID:qi6QKyLW 他人の書いた古いコードを癇癪を起こさずに読むことができるから。
112名無しのひみつ
2022/11/14(月) 18:06:20.19ID:a96UWMzg113名無しのひみつ
2022/11/14(月) 18:35:59.92ID:EsXg7aQJ 最強はRPGでしょう。 RPGで組めない時はアセンブリー言語で乗る抜けました。
114名無しのひみつ
2022/11/14(月) 18:55:41.74ID:tzHFQbBc >>43
なんでfortranなのに空白入れるかな?
なんでfortranなのに空白入れるかな?
115名無しのひみつ
2022/11/14(月) 19:07:35.86ID:tzHFQbBc116名無しのひみつ
2022/11/14(月) 19:23:20.47ID:3WGaugvI Fortran使わない世界の奴は一生使わないけど、使う世界の奴はないといられないってことで良いじゃないか。棲み分けしようぜ。
117名無しのひみつ
2022/11/14(月) 19:23:26.55ID:MJh2ohHK fortran が使われ続けているのは数値の精度、言語レベルでの複素数対応
とかいろいろあるけど一番は長い歴史からくる膨大なライブラリによる
とかいろいろあるけど一番は長い歴史からくる膨大なライブラリによる
118名無しのひみつ
2022/11/14(月) 19:53:24.72ID:L1TEXY8M program hello
print *, "Hello world!"
end program hello
print *, "Hello world!"
end program hello
119名無しのひみつ
2022/11/14(月) 20:25:35.40ID:fSwBdtWf 例外的に科学者が音頭を取ってる標準化団体なんで
込み入った現代風のプログラミング言語の文法は分からずに
そのまま進んだおかげだ
平たく言うと「言語学者」がいないからだ
込み入った現代風のプログラミング言語の文法は分からずに
そのまま進んだおかげだ
平たく言うと「言語学者」がいないからだ
120名無しのひみつ
2022/11/14(月) 20:46:27.29ID:+yvThC+F IT屋と違って、ニッチな言語を使っても、キレイなコードを書いても成果には何ら関係ないからな
122名無しのひみつ
2022/11/15(火) 00:37:19.36ID:bfFED4Us Pascalに若干似ていると思ったら、Pascalのコンパイラーを作った人は最初それをFortranで書いたんだってな。
123名無しのひみつ
2022/11/15(火) 07:43:27.07ID:CWJvexdX125名無しのひみつ
2022/11/15(火) 10:52:33.43ID:CWJvexdX126名無しのひみつ
2022/11/15(火) 12:30:13.22ID:C8c+9aBu 理数系の講義で使う事もまだ多いし、少し書ける程度の人口はかなり多いのでは
東大の弥生の計算機センターの講義はまだ全部Fortran、理工合同の計算化学演習とか
教養はPythonも増えてきた
東大の弥生の計算機センターの講義はまだ全部Fortran、理工合同の計算化学演習とか
教養はPythonも増えてきた
127名無しのひみつ
2022/11/15(火) 12:44:25.61ID:C8c+9aBu 情報系じゃないとちゃんと言語自体の講義はやらないし、もうかなり怪しいけど
print, write, readなどI/Oが行毎の処理、フォーマット指定子忘れても型のデフォルト出力で無難、stdin/stdoutをデフォルトで指してて組み込み関数が多い(trimとか)
数行のフィルターを書くのに結構便利、というかそれくらいしか使ってないわ…
print, write, readなどI/Oが行毎の処理、フォーマット指定子忘れても型のデフォルト出力で無難、stdin/stdoutをデフォルトで指してて組み込み関数が多い(trimとか)
数行のフィルターを書くのに結構便利、というかそれくらいしか使ってないわ…
129名無しのひみつ
2022/11/15(火) 13:01:32.72ID:C8c+9aBu 言語というかコンパイラの問題だけど、gccのcはヒアストリングとか一時ファイルだとファイルを2回開こうとして死ぬし、ヘッダとか全く覚えられないという理由で、最近までcを忌避してた
tccはワンパスのようで、バイナリを残さない-runオプションもあり、(ワーニングは出るけど)ヘッダへ言及せずとも何故か走って簡便
lexも標準出力に吐けるしパイプで繋ぐだけでもうawkより強い、勉強中
tccはワンパスのようで、バイナリを残さない-runオプションもあり、(ワーニングは出るけど)ヘッダへ言及せずとも何故か走って簡便
lexも標準出力に吐けるしパイプで繋ぐだけでもうawkより強い、勉強中
130名無しのひみつ
2022/11/15(火) 13:25:50.17ID:C8c+9aBu >>93
わかる、カジュアルユーザーは何となく習った言語使い続けるのよな
f95とawkとdcで全部やってきた
(クラシックな)BASICも似た感じだったと思うけど、引数処理もget_command_argument呼んでwrite/readで変数の型に合わせて収まるし、main定義してargv舐めてatoi/f呼んで謎のSEGVで死んで面倒くさくて折れる、思考停止
わかる、カジュアルユーザーは何となく習った言語使い続けるのよな
f95とawkとdcで全部やってきた
(クラシックな)BASICも似た感じだったと思うけど、引数処理もget_command_argument呼んでwrite/readで変数の型に合わせて収まるし、main定義してargv舐めてatoi/f呼んで謎のSEGVで死んで面倒くさくて折れる、思考停止
131名無しのひみつ
2022/11/15(火) 13:36:20.43ID:1THmXFec 何やるにも大抵専用の文があるってのは覚えやすいんだよな、一貫性は無いが
一々添字回して配列集計とかこの関数どのライブラリだったっけとか
一々添字回して配列集計とかこの関数どのライブラリだったっけとか
132名無しのひみつ
2022/11/15(火) 14:00:47.53ID:C8c+9aBu >>125
iso_fortran_envは重宝するな
標準ユニット番号が0, 5, 6だとか古い慣習が多いし、人に見せるのは憚られるからと一々マクロ定数振るのも面倒、まあ見せる機会もないけど
良く使う行列演算や型基本的な定義集めたモジュールくらいはカジュアルな俺でも使う、useで好きな識別子にバインドできるのがいいな、今時の言語なら当たり前かもしれんが
ただ、独自型をuseする際にリテラル表記のサフィックスも好きにバインドできるのは珍しい?なかなか便利
iso_fortran_envは重宝するな
標準ユニット番号が0, 5, 6だとか古い慣習が多いし、人に見せるのは憚られるからと一々マクロ定数振るのも面倒、まあ見せる機会もないけど
良く使う行列演算や型基本的な定義集めたモジュールくらいはカジュアルな俺でも使う、useで好きな識別子にバインドできるのがいいな、今時の言語なら当たり前かもしれんが
ただ、独自型をuseする際にリテラル表記のサフィックスも好きにバインドできるのは珍しい?なかなか便利
133名無しのひみつ
2022/11/15(火) 14:38:09.28ID:LIaj/JOj >>127
gamma、erf[c]、bessel_(j|y)(0|1|n)まで組み込み関数なのはFortranらしいと思うけど
呼べるかな?で試して使えた/シンタックスハイライトされたみたいなケースがよくある
どこまでが標準なのか良くわからず使ってる
gamma、erf[c]、bessel_(j|y)(0|1|n)まで組み込み関数なのはFortranらしいと思うけど
呼べるかな?で試して使えた/シンタックスハイライトされたみたいなケースがよくある
どこまでが標準なのか良くわからず使ってる
134名無しのひみつ
2022/11/16(水) 01:32:42.53ID:fFILbDWz 言語としては十分高水準で整ったものだと思う、構造化やクラスシステムはほぼJavaだし
まあ70年の歴史を単系統で積んでるから微妙に変なとこもあるけど
にも関わらず職業プログラマが使うのは皆無なのは文化だろう、カジュアルシリアル問わず、非プログラマがメインユーザーというのが本質
なので使用頻度は高いにも関わらず、プレゼンスが認知されにくい
理数系に進めばまず一応は習うものだし、先に指摘があったように、BASICのように個人用のsoftware toolとしてよく使われ、それは普通公開を意図したものでは無いのがまず一点
もう一点も同様、こちらは数理に長けた非プログラマに好まれること
言語そのものは十分汎用にも関わらず必要な数理の教養(ある種のdomain specifc knowledge)が多過ぎて、職業プログラマがコーディング&リードするのは現実的に無理
2つの主用途が共に、IT業界と独立してるのが普及問題の障壁
まあ70年の歴史を単系統で積んでるから微妙に変なとこもあるけど
にも関わらず職業プログラマが使うのは皆無なのは文化だろう、カジュアルシリアル問わず、非プログラマがメインユーザーというのが本質
なので使用頻度は高いにも関わらず、プレゼンスが認知されにくい
理数系に進めばまず一応は習うものだし、先に指摘があったように、BASICのように個人用のsoftware toolとしてよく使われ、それは普通公開を意図したものでは無いのがまず一点
もう一点も同様、こちらは数理に長けた非プログラマに好まれること
言語そのものは十分汎用にも関わらず必要な数理の教養(ある種のdomain specifc knowledge)が多過ぎて、職業プログラマがコーディング&リードするのは現実的に無理
2つの主用途が共に、IT業界と独立してるのが普及問題の障壁
135名無しのひみつ
2022/11/16(水) 01:44:53.77ID:ecB5D9e5 今でも最速言語(多いに実装によるが)というのがFortranの強みとしてよく挙げれるが、この2点の方がより本質だと思う
136名無しのひみつ
2022/11/16(水) 05:33:52.77ID:IYF8hQmA javaとのOOPの類似は設計がGuy L. Steeleだからだろう
common lispとscheme考案したlispハッカー
さすがにlispのOOPシステムCLOS/MOP(とschemeのCLOS-like OOP)とはかなり違うけど、まあ権威
common lispとscheme考案したlispハッカー
さすがにlispのOOPシステムCLOS/MOP(とschemeのCLOS-like OOP)とはかなり違うけど、まあ権威
137名無しのひみつ
2022/11/20(日) 13:01:35.45ID:GBeX940k 複素数そのまま扱える
2022/11/26(土) 18:35:23.75ID:4O0k9YEI
使えるなら使ってりゃいいわけで、自分が開発したわけでもない他人様の言語の優劣をアホみたいに争うバカが多くて困る
2022/11/26(土) 20:54:06.59ID:hiHu6vZv
>>132
最後はHaskell由来かな?
最後はHaskell由来かな?
2022/11/30(水) 11:32:36.96ID:QZXaCh/u
x=[1]; do; print*, x; x=[0,x]+[x,0]; enddo
2022/11/30(水) 11:52:45.30ID:QZXaCh/u
integer, allocatable :: x(:)
スプレッディングで動的配列を育てるイディオムが趣深い
なおx(:, :)とランクを上げていくと…
[ ... ]は遠いむかしに配列構成子(\ ... \)の略記と習ったのだが、2xxx以降で随分拡張されてるみたいね
スプレッディングで動的配列を育てるイディオムが趣深い
なおx(:, :)とランクを上げていくと…
[ ... ]は遠いむかしに配列構成子(\ ... \)の略記と習ったのだが、2xxx以降で随分拡張されてるみたいね
2022/11/30(水) 15:15:37.67ID:NdiS++fP
未だに無数のベンダーがプロプライエタリなコンパイラ売ってるのはcommon lispとFortranくらいでは
もうフリーで良い処理系なんて沢山あるし、商用もお試し版で十分だったりするが
しかしclもそろそろlispworksの一人勝ちかね?
そのクオリティに加え、試用版が数時間で強制終了するという安売りしない姿勢から、むしろ趣味lisperの高嶺の花となってる
ifortは本当に寛容で有り難いけど、安売りしない道もあったのでは
フリーだとg95を愛用してたが、もう十年くらい開発停滞してて機能不足が目立ちはじめ、同じGNUプロジェクトのgfortran(gcc)に食われつつある
悲しい
もうフリーで良い処理系なんて沢山あるし、商用もお試し版で十分だったりするが
しかしclもそろそろlispworksの一人勝ちかね?
そのクオリティに加え、試用版が数時間で強制終了するという安売りしない姿勢から、むしろ趣味lisperの高嶺の花となってる
ifortは本当に寛容で有り難いけど、安売りしない道もあったのでは
フリーだとg95を愛用してたが、もう十年くらい開発停滞してて機能不足が目立ちはじめ、同じGNUプロジェクトのgfortran(gcc)に食われつつある
悲しい
2022/11/30(水) 15:21:58.70ID:NdiS++fP
あ、Visual Studioを忘れてた…
2022/11/30(水) 17:29:46.64ID:tkdCeSC0
>>142
g95の人は優秀過ぎて某Fortranコンパイラベンダーにヘッドハントされた
g95の人は優秀過ぎて某Fortranコンパイラベンダーにヘッドハントされた
145新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 17:50:14.82ID:citcHFZm146新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 17:50:34.73ID:citcHFZm 2進デシマル
147新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 17:53:42.53ID:citcHFZm148新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 18:00:47.97ID:V9qsqESE >>128
実は
扱うデータがどんなものかで計算速度が違うから
アルゴリズムだけみていたら間違う可能性がある
結局結果を求めるのに正確性か
いや正確でなくともある程度で早く切り上げてくれる方がいいのか
という実利面がある
AIが当たり前になってきた今は正確性より
判断に使える程度の確からしさでいいから早めに
という
ヒューリスティックもよく言われるだろ
アルゴリズムも目的に応じて取捨選択するものだしね
つまり計算ってなにという
実は
扱うデータがどんなものかで計算速度が違うから
アルゴリズムだけみていたら間違う可能性がある
結局結果を求めるのに正確性か
いや正確でなくともある程度で早く切り上げてくれる方がいいのか
という実利面がある
AIが当たり前になってきた今は正確性より
判断に使える程度の確からしさでいいから早めに
という
ヒューリスティックもよく言われるだろ
アルゴリズムも目的に応じて取捨選択するものだしね
つまり計算ってなにという
2022/11/30(水) 18:31:15.49ID:y+hQ6l9B
ベクトルとは行列計算のこと
2022/11/30(水) 18:32:55.38ID:VpoDRdbH
AI と fortran は関係あるのか?
AI様がアルゴリズムを選択してfortran使う?
AI様がアルゴリズムを選択してfortran使う?
151新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:13:44.13ID:f/qwMQAh 過程を人間に見せる必要はない。
aiは結果だけ見せれば良い。
aiは結果だけ見せれば良い。
152新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:15:49.77ID:f/qwMQAh aiとfortranは今後も交わる事は無いのでは。
153新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:32:19.54ID:ghYVrQ13154新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:33:25.36ID:ghYVrQ13155新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:34:26.34ID:ghYVrQ13 そもそもaiって言葉が素人騙しなんだよな
ニューロンとか言ったりするからな
全く違うのに
ニューロンとか言ったりするからな
全く違うのに
156新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:36:57.95ID:ghYVrQ13 インテリジェンスを知能とか訳してるのに
脳とかとすり替えたりしてんだろおまえら
脳とかとすり替えたりしてんだろおまえら
157新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:37:31.06ID:3fh9WB9i 参加できそうな話題だと思ったけど、やっぱりレベルが違った ごめん
158新規スレ立て人募集 社説+の募集スレまで
2022/11/30(水) 21:38:10.23ID:ghYVrQ13 ニューロンなんて考え方は
それまでのバイナリがオンオフスイッチだったのを
多段階にしてるくらいのもんだからな
大した話じゃない
それまでのバイナリがオンオフスイッチだったのを
多段階にしてるくらいのもんだからな
大した話じゃない
2022/11/30(水) 21:59:17.29ID:VJWpVdLy
AI さんがインプットに使うパラメータを準備してくれるだけでもいいかも。
2022/11/30(水) 22:00:07.79ID:QeqOJ1Ay
2022/11/30(水) 22:56:46.78ID:EY5dtDyd
2022/12/01(木) 08:01:37.02ID:4+frU6sz
>>152
https://qiita.com/implicit_none/items/8229d1931cd236d62ca9
CUDA Fortranというのがある
頑張って書けば出来るかもなw
まあユーザー数が少な過ぎて今後の発展が望めないだろうな
https://qiita.com/implicit_none/items/8229d1931cd236d62ca9
CUDA Fortranというのがある
頑張って書けば出来るかもなw
まあユーザー数が少な過ぎて今後の発展が望めないだろうな
163新規スレ立て人募集 社説+の募集スレまで
2022/12/01(木) 10:12:18.64ID:+08mDIrV スカラー、ベクトル、マトリックス、テンソル
自然数、整数、有理数、実数、複素数
自然数、整数、有理数、実数、複素数
164新規スレ立て人募集 社説+の募集スレまで
2022/12/01(木) 21:23:42.22ID:6hJf8kCQ >>154
スレを見てる人間はもう少し合理的だと思う。
スレを見てる人間はもう少し合理的だと思う。
165新規スレ立て人募集 社説+の募集スレまで
2022/12/01(木) 21:33:10.46ID:6hJf8kCQ >>159
どのパラメータが適切か判断するのを自動化したいって事かな。
どのパラメータが適切か判断するのを自動化したいって事かな。
2022/12/03(土) 22:06:58.47ID:vncupHyR
FORTRANが未だに使用されているんじゃない
時代に合わせ進化したから今でも現役なのだ
時代に合わせ進化したから今でも現役なのだ
167新規スレ立て人募集 社説+の募集スレまで
2022/12/03(土) 23:27:21.31ID:bUhMTGph 以前も書かれたが職業プログラマ向けの言語では無いって事が他の言語との違い。
ツールとして関数電卓の延長なのだろうね。
ツールとして関数電卓の延長なのだろうね。
2022/12/04(日) 00:42:00.62ID:3C2MHvNv
>>166
進化したところ使ってる?
進化したところ使ってる?
169名無しのひみつ
2022/12/07(水) 22:32:51.04ID:YEBh0mOB 素粒子物理学に必須級のソフトウェア「FORM」の保守はたった1人の老科学者が担っている、新しい機器では使えなくなり研究が停滞する危険性
https://gigazine.net/news/20221207-particle-physics-computer-program-maintenance-retiree/
https://en.m.wikipedia.org/wiki/FORM_(symbolic_manipulation_system)
https://gigazine.net/news/20221207-particle-physics-computer-program-maintenance-retiree/
https://en.m.wikipedia.org/wiki/FORM_(symbolic_manipulation_system)
170名無しのひみつ
2022/12/08(木) 11:18:29.81ID:DkH7AzX5 言語そのものというよりドメイン固有知識が多過ぎて職業プログラマが触れるような物ではないから、互換性を保ちつつ進化していくしかないよね
171名無しのひみつ
2022/12/10(土) 02:20:39.41ID:2ig+uaBr clerだけどまさにFortran勉強中
Fortranは義務教育的なモノゆえhacker文化と相容れないと思われがちなんだと思うけど、俺が本当のhackerとリスペクトしてる人の第一言語もFortranなので惹かれる
基本が個人プロジェクトだから、経験に基づくtips&tricksが集積されがたい、マメなブロガだから検索するとかなりの量がヒットする
非常にhackしがいのある言語に思える
希少なリソース
この人↓
GNUのscheme処理系guileと無数のschemeライブラリのメンテナ、大手jsエンジンv8, jscore, spidermonkey(chrome, safari, mozilla系 &c)コミッタ
http://wingolog.org/projects/
Fortranは義務教育的なモノゆえhacker文化と相容れないと思われがちなんだと思うけど、俺が本当のhackerとリスペクトしてる人の第一言語もFortranなので惹かれる
基本が個人プロジェクトだから、経験に基づくtips&tricksが集積されがたい、マメなブロガだから検索するとかなりの量がヒットする
非常にhackしがいのある言語に思える
希少なリソース
この人↓
GNUのscheme処理系guileと無数のschemeライブラリのメンテナ、大手jsエンジンv8, jscore, spidermonkey(chrome, safari, mozilla系 &c)コミッタ
http://wingolog.org/projects/
172名無しのひみつ
2022/12/10(土) 02:49:33.65ID:2ig+uaBr >>168,169
FORMは聞いたことないな
数式記号処理といえば、まさに記号処理の為に産まれたlisp実装のMaxima(とMacsymaのフォーク)が、機能面も数値計算(float/rational)も他の追随を許さないと思ってた
優しいUIで売ってるMaple/Wolframと比べる記事の意図がわからんけど
実際、記号処理システムは各言語にあるけど、ほぼ全てMaximaのバインディング、というかタダのラッパでしょ?
(最近流行ってるpythonではSymPyってパッケージ)
なのでにわかには信じがたい話
でもまあ、Fortranは型システムと型パターンマッチが充実してるから、記号処理をフルスクラッチ実装するなら明らかにcより楽
lex/yacc的なインフラがあるのかは不明だし、ML系の方がもっと楽だけど
FORMは聞いたことないな
数式記号処理といえば、まさに記号処理の為に産まれたlisp実装のMaxima(とMacsymaのフォーク)が、機能面も数値計算(float/rational)も他の追随を許さないと思ってた
優しいUIで売ってるMaple/Wolframと比べる記事の意図がわからんけど
実際、記号処理システムは各言語にあるけど、ほぼ全てMaximaのバインディング、というかタダのラッパでしょ?
(最近流行ってるpythonではSymPyってパッケージ)
なのでにわかには信じがたい話
でもまあ、Fortranは型システムと型パターンマッチが充実してるから、記号処理をフルスクラッチ実装するなら明らかにcより楽
lex/yacc的なインフラがあるのかは不明だし、ML系の方がもっと楽だけど
173名無しのひみつ
2022/12/10(土) 03:07:16.26ID:2ig+uaBr ごめんSymPyのmaximaバインディングはオプショナルだわ、Maximaフロントエンドは対抗馬のSage(Math)の方
ライブラリとしても引けるけど、かなり改変されたPythonインタプリタとしての使用が主な方言だから馴染めず、すぐアンインストールしてしまった
ライブラリとしても引けるけど、かなり改変されたPythonインタプリタとしての使用が主な方言だから馴染めず、すぐアンインストールしてしまった
174名無しのひみつ
2022/12/10(土) 03:15:34.08ID:JdvpSrh2 ソフトウェアだけどプログラミング言語ではないよね
数式を扱うソフトってだけ
FORM is a symbolic manipulation system. It reads text files containing definitions of mathematical expressions as well as statements that tell it how to manipulate these expressions. Its original author is Jos Vermaseren of Nikhef, the Dutch institute for subatomic physics. It is widely used in the theoretical particle physics community, but it is not restricted to applications in this specific field.[1]
FORM
Developer(s) Jos Vermaseren, et al.
Initial release1989
Written in C
Operating system Linux, Mac OS X, Windows
Type Mathematical software
License GPLv3
Website www.nikhef.nl/~form/
数式を扱うソフトってだけ
FORM is a symbolic manipulation system. It reads text files containing definitions of mathematical expressions as well as statements that tell it how to manipulate these expressions. Its original author is Jos Vermaseren of Nikhef, the Dutch institute for subatomic physics. It is widely used in the theoretical particle physics community, but it is not restricted to applications in this specific field.[1]
FORM
Developer(s) Jos Vermaseren, et al.
Initial release1989
Written in C
Operating system Linux, Mac OS X, Windows
Type Mathematical software
License GPLv3
Website www.nikhef.nl/~form/
175名無しのひみつ
2022/12/10(土) 03:25:24.15ID:JdvpSrh2176名無しのひみつ
2022/12/10(土) 03:37:17.29ID:e03UTcBx >>167
解釈の違いだとは思うが
職業プログラマーというのも千差万別だ
テニスなのかゴルフなのか陸上なのかどれでプロになる?ってのと同じ
仕事があるからその仕事するって立場と
この能力で仕事を切り開くってのもまたプロ
職業プログラマーってのも単に現代的多数派を意図してるだけだろ
時代が昔はFORTRANだけで十分職業プログラマーの言語だったし
今もそれを必要としてる仕事場から見たら立派なプロ用言語
しかも仕事ってのはそれだけで済むんじゃない
プログラミングだけが仕事の職種こそ少なくなってきて
仕事の中身でプログラミングスキルも使う職業が増えている
研究者がプログラミングするのは論文書くための実験と同じレベル
職業実験者がいるとかいないとかいうレベルが職業プログラマーがいるとかいないとか
いま哲学者でも社会学者もプログラミングできて当然
それぞれが必要時に必要な道具をつかう
プログラミングもその一つ
プログラミングのどの言語を使うのかも適時必要に応じて
そういう時代
職業プログラマーなんてのは工場ライン工みたいな存在になってる
解釈の違いだとは思うが
職業プログラマーというのも千差万別だ
テニスなのかゴルフなのか陸上なのかどれでプロになる?ってのと同じ
仕事があるからその仕事するって立場と
この能力で仕事を切り開くってのもまたプロ
職業プログラマーってのも単に現代的多数派を意図してるだけだろ
時代が昔はFORTRANだけで十分職業プログラマーの言語だったし
今もそれを必要としてる仕事場から見たら立派なプロ用言語
しかも仕事ってのはそれだけで済むんじゃない
プログラミングだけが仕事の職種こそ少なくなってきて
仕事の中身でプログラミングスキルも使う職業が増えている
研究者がプログラミングするのは論文書くための実験と同じレベル
職業実験者がいるとかいないとかいうレベルが職業プログラマーがいるとかいないとか
いま哲学者でも社会学者もプログラミングできて当然
それぞれが必要時に必要な道具をつかう
プログラミングもその一つ
プログラミングのどの言語を使うのかも適時必要に応じて
そういう時代
職業プログラマーなんてのは工場ライン工みたいな存在になってる
177名無しのひみつ
2022/12/10(土) 03:57:54.46ID:s+Q+jPJS >>172
そもそもscipy(numpy etc)の本体はf2pyという自動でFortranライブラリをコンパイルし、呼び出し規約を書き換えるだけのスクリプトなので今更
ビルド違いが沢山あるのはライブラリの実装が沢山あるから
デフォルトでは参照実装リポジトリのwww.netlib.org(分かりやすく書かれているがすごく遅い)からソースを取得してきたり、ベンダ提供の実用実装を使ったりしてるから
intel提供のビルド済Scipyが自炊より数百倍速いのはそういう理由
確かにコードだけ見ればブロードキャストやマスクなど配列演算はFortranより汚い
それでもあえてラップする理由は、対話的に試行錯誤できるインタプリタの利便性
もうバイナリ吐く言語が表に出る時代なんて来ない、永遠に裏方
LISPはREPLも良くて、Cより速いバイナリを吐けるsbclのような処理系もあるけど、見た目がな…
そもそもscipy(numpy etc)の本体はf2pyという自動でFortranライブラリをコンパイルし、呼び出し規約を書き換えるだけのスクリプトなので今更
ビルド違いが沢山あるのはライブラリの実装が沢山あるから
デフォルトでは参照実装リポジトリのwww.netlib.org(分かりやすく書かれているがすごく遅い)からソースを取得してきたり、ベンダ提供の実用実装を使ったりしてるから
intel提供のビルド済Scipyが自炊より数百倍速いのはそういう理由
確かにコードだけ見ればブロードキャストやマスクなど配列演算はFortranより汚い
それでもあえてラップする理由は、対話的に試行錯誤できるインタプリタの利便性
もうバイナリ吐く言語が表に出る時代なんて来ない、永遠に裏方
LISPはREPLも良くて、Cより速いバイナリを吐けるsbclのような処理系もあるけど、見た目がな…
178名無しのひみつ
2022/12/10(土) 04:09:49.18ID:s+Q+jPJS179名無しのひみつ
2022/12/10(土) 04:40:10.48ID:Xmww25Q9 >>177
Maximaは実装も言語もlispなのに、妥協して代数風のinfix糖衣構文を提供してるし、lisp自体が取っつきにくいのは認める
コンパイル専用言語をラップする意義も分かる
しかし、UIも対話性も標準的なインストール手順で、Python+SciPy+Sage+matplotlib…の環境より優れているMaximaをラップする意義は何なんだ?
https://maxima.sourceforge.io/
この公式HPの美麗なGUIと平易な言語を見て、同等の環境構築をすると10GB、おまけにライブラリ依存地獄のPythonを科学計算教育用途に選ぶ風潮が全く理解できない
ちなみにpure pythonは好きだぞ、むしろプライベートで一番使ってる言語
小道具作りたのしい
要するに、なんか世の中変な方向に向かってね?という話
Maximaは実装も言語もlispなのに、妥協して代数風のinfix糖衣構文を提供してるし、lisp自体が取っつきにくいのは認める
コンパイル専用言語をラップする意義も分かる
しかし、UIも対話性も標準的なインストール手順で、Python+SciPy+Sage+matplotlib…の環境より優れているMaximaをラップする意義は何なんだ?
https://maxima.sourceforge.io/
この公式HPの美麗なGUIと平易な言語を見て、同等の環境構築をすると10GB、おまけにライブラリ依存地獄のPythonを科学計算教育用途に選ぶ風潮が全く理解できない
ちなみにpure pythonは好きだぞ、むしろプライベートで一番使ってる言語
小道具作りたのしい
要するに、なんか世の中変な方向に向かってね?という話
180名無しのひみつ
2022/12/10(土) 05:10:46.87ID:s+Q+jPJS 知名度は最近落ちてきてるように感じてるが、リリースを見るとむしろ活発に開発進んでるのか
やはりバックエンド需要?
こういう歴史あるソフトウェアこそ素で使った方が快適なのに、皮肉なものだ
素というかプロットソフトやら各種ツールの連携した環境と言うべきだけど
世の中は何でもパイソンブームだが、本当のITリテラシーを身に着けるにはこういう疎結合で柔軟、ゆえにロバストなシステムに触れておくべき
モノリシックなエコシステムに閉じこもるべきではない
やはりバックエンド需要?
こういう歴史あるソフトウェアこそ素で使った方が快適なのに、皮肉なものだ
素というかプロットソフトやら各種ツールの連携した環境と言うべきだけど
世の中は何でもパイソンブームだが、本当のITリテラシーを身に着けるにはこういう疎結合で柔軟、ゆえにロバストなシステムに触れておくべき
モノリシックなエコシステムに閉じこもるべきではない
181名無しのひみつ
2022/12/10(土) 06:34:19.46ID:s+Q+jPJS https://en.m.wikipedia.org/wiki/Maxima_(software)
macsymaから半世紀以上コードベースが途切れることなく、実装言語と共に進化しつつ現在も活発に開発が続いてるのか
埃被ったユティリティの類を除き、本格的なソフトウェアでこれ以上の物は存在するのだろうか?もはや畏怖
LISPの得意なコード生成で苦手な配列演算やnumber crunchingをFortranに投げたり、周辺ユティリティとの共進化も興味深い
Common Lisp実装を名乗っているようだけど、公的な規格は約30年前くらいなわけで、実態はどうなんだろう?
もちろんほぼCLな無数の実質方言、Common Lisp拡張/準拠(できる)処理系があるのは知ってる
LISPは手習い程度だけど、これはコード覗いてみたい
macsymaから半世紀以上コードベースが途切れることなく、実装言語と共に進化しつつ現在も活発に開発が続いてるのか
埃被ったユティリティの類を除き、本格的なソフトウェアでこれ以上の物は存在するのだろうか?もはや畏怖
LISPの得意なコード生成で苦手な配列演算やnumber crunchingをFortranに投げたり、周辺ユティリティとの共進化も興味深い
Common Lisp実装を名乗っているようだけど、公的な規格は約30年前くらいなわけで、実態はどうなんだろう?
もちろんほぼCLな無数の実質方言、Common Lisp拡張/準拠(できる)処理系があるのは知ってる
LISPは手習い程度だけど、これはコード覗いてみたい
182名無しのひみつ
2022/12/10(土) 06:34:20.74ID:SnsJDeio >>180
Pythonだからモノリシックって発想どっからくんのかね
Pythonだからモノリシックって発想どっからくんのかね
183名無しのひみつ
2022/12/10(土) 06:40:04.09ID:s+Q+jPJS184名無しのひみつ
2022/12/10(土) 06:45:12.47ID:SnsJDeio >>178
んーそっすねー
だけど大きく見れば数式は数学の言語だから
数学言語をコンピュータ実行に変えてるのは
工場の生産管理の計算をコンピュータが実行するのと同じで
数式を仕事で使い慣れてる人のためのアプリケーションって見れる
数式はコンピュータの世界とは違うから
その間をうめる計算補助アプリケーション
だからエンドユーザーのシステム環境だよ
ソートのアルゴリズムが複数あるのと同じレベルで微分積分とかをどうしたら効率よく計算するかとかは別で
数式を与えて結果を教えてくれるという上位のシステムだから
んーそっすねー
だけど大きく見れば数式は数学の言語だから
数学言語をコンピュータ実行に変えてるのは
工場の生産管理の計算をコンピュータが実行するのと同じで
数式を仕事で使い慣れてる人のためのアプリケーションって見れる
数式はコンピュータの世界とは違うから
その間をうめる計算補助アプリケーション
だからエンドユーザーのシステム環境だよ
ソートのアルゴリズムが複数あるのと同じレベルで微分積分とかをどうしたら効率よく計算するかとかは別で
数式を与えて結果を教えてくれるという上位のシステムだから
185名無しのひみつ
2022/12/10(土) 06:47:08.23ID:s+Q+jPJS python公式ドキュメントも以前は参照実装としてページから参照実装.pyへの直リンが豊富にあった
今は性能求められてc実装になり、直リンが減り、参照実装.pyリンクがあっても冒頭でcモジュールを読み込んでおわり
cpythonはもはや本来の目的を果たせていない、なんとか他の実装に頑張ってもらいたい
今は性能求められてc実装になり、直リンが減り、参照実装.pyリンクがあっても冒頭でcモジュールを読み込んでおわり
cpythonはもはや本来の目的を果たせていない、なんとか他の実装に頑張ってもらいたい
186名無しのひみつ
2022/12/10(土) 06:52:32.59ID:SnsJDeio >>183
いまはコンパイルとインタープリタの差は実質ないか
そこの違いは少数以外意味なくて
それよりも何に使えるかという視点が重視
PythonかどうかではなくてPythonで何ができるか
今は画像とかテキストとかのAIライブラリが真っ先に使える
このため
統計ならRのほうが使いやすいらしいし
さっきの数式と同じで
エンドユーザーが自分で使って結果を得るための道具
そこにフォーカスかあたってる
同じ結果が出るなら別の言語でも全く構わない
が情報量からクラウドサポートまでそこがフォーカスされてる
そもそもjsをそう思ってるなら立場が違う
あんたがそれを上回る提案をして育てていく何かをあげればいい時代よ
言葉よりも実行
いまはコンパイルとインタープリタの差は実質ないか
そこの違いは少数以外意味なくて
それよりも何に使えるかという視点が重視
PythonかどうかではなくてPythonで何ができるか
今は画像とかテキストとかのAIライブラリが真っ先に使える
このため
統計ならRのほうが使いやすいらしいし
さっきの数式と同じで
エンドユーザーが自分で使って結果を得るための道具
そこにフォーカスかあたってる
同じ結果が出るなら別の言語でも全く構わない
が情報量からクラウドサポートまでそこがフォーカスされてる
そもそもjsをそう思ってるなら立場が違う
あんたがそれを上回る提案をして育てていく何かをあげればいい時代よ
言葉よりも実行
187名無しのひみつ
2022/12/10(土) 07:10:54.86ID:s+Q+jPJS >>186
計算機は計算機だよ
Pythonもschemeがr6rsのエコシステムや過剰な規定でやらかした事例から習い、small/largeのように水準分けるって議論はメーリスで度々出てた
schemeの実際の処理系はgauche、chickenを筆頭に、規格を遥かに上回る実用性とエコシステムが自然発生したわけで
asyncキーワードの導入あたりまでの話だけど
デコレータやself/clsなどより重要な機構を保守的に(ナイス)ハックで導入したにも関わらず、一旦構文に手を入れてしまった後はもうズルズルと現状追認
計算機は計算機だよ
Pythonもschemeがr6rsのエコシステムや過剰な規定でやらかした事例から習い、small/largeのように水準分けるって議論はメーリスで度々出てた
schemeの実際の処理系はgauche、chickenを筆頭に、規格を遥かに上回る実用性とエコシステムが自然発生したわけで
asyncキーワードの導入あたりまでの話だけど
デコレータやself/clsなどより重要な機構を保守的に(ナイス)ハックで導入したにも関わらず、一旦構文に手を入れてしまった後はもうズルズルと現状追認
188名無しのひみつ
2022/12/10(土) 07:19:00.39ID:s+Q+jPJS 舵取り失敗事例はperl5/rakuだね
perl5の便利さで人を集めすぎ、perl6が形になった時にはもう加熱し過ぎていた
python4.0がrakuにならないよう、早めの舵取りを願う
perl5の便利さで人を集めすぎ、perl6が形になった時にはもう加熱し過ぎていた
python4.0がrakuにならないよう、早めの舵取りを願う
190名無しのひみつ
2022/12/10(土) 07:46:07.87ID:SnsJDeio >>189
当時はそんな区分かない
当時はそんな区分かない
191名無しのひみつ
2022/12/10(土) 08:36:46.44ID:bvOgTgRH 今も昔もFortranを書く人はエンドユーザーで、書く人の層もそんなに変わってないが、意図せずインフラとしての側面を持ってしまった事を忘れずに
互換性を破らない範囲で保守性を高める機能はもう最大限に拡張されてるが
いくら保守しやすくする為に言語仕様が整備されたところで、書く人が自分が使えれば良い層なので保守性に気を配る動機が薄い
ちゃんと宣言すればJava並みの戒律も課せるが、互換性のため宣言しなければルーズ
オーパーツのようなライブラリをよく目にするから錯覚しがちだが、それは単に歴史が長いからであって、用途からしてFortranでライブラリ化するような大きいプログラムを書く事は稀
互換性を破らない範囲で保守性を高める機能はもう最大限に拡張されてるが
いくら保守しやすくする為に言語仕様が整備されたところで、書く人が自分が使えれば良い層なので保守性に気を配る動機が薄い
ちゃんと宣言すればJava並みの戒律も課せるが、互換性のため宣言しなければルーズ
オーパーツのようなライブラリをよく目にするから錯覚しがちだが、それは単に歴史が長いからであって、用途からしてFortranでライブラリ化するような大きいプログラムを書く事は稀
192名無しのひみつ
2022/12/10(土) 09:09:17.28ID:W3nqQwVf 機械語やアセンブラがシステム用で
FORTRANが科学技術計算用
COBOLが事務計算用
そういう時代だ
エンドユーザーではなくてコンピュータを使う知識を持ってるやつ用
FORTRANが科学技術計算用
COBOLが事務計算用
そういう時代だ
エンドユーザーではなくてコンピュータを使う知識を持ってるやつ用
193名無しのひみつ
2022/12/10(土) 09:19:08.37ID:Go3DCj6r 数式で∑書くより
for文のほうが楽。
for文のほうが楽。
194名無しのひみつ
2022/12/10(土) 13:59:12.04ID:S+zKPIyK >>193
ざっくり領域のΣが一番楽
そのままじゃ解けないけどw
それを真面目に書くとfor文になって、
それを数式で書くとk=0を下に、nを上に書いてるようなΣになって
しかもそれが連続する
状況によっては積分記号で書いたりするか
そしてその積分が解析的に解けないものの場合は
またfor文にするw
後はΣじゃなくて掛け算のΠになる式を使おうがご自由に
ざっくり領域のΣが一番楽
そのままじゃ解けないけどw
それを真面目に書くとfor文になって、
それを数式で書くとk=0を下に、nを上に書いてるようなΣになって
しかもそれが連続する
状況によっては積分記号で書いたりするか
そしてその積分が解析的に解けないものの場合は
またfor文にするw
後はΣじゃなくて掛け算のΠになる式を使おうがご自由に
196名無しのひみつ
2022/12/11(日) 02:05:40.58ID:RwdloU+3 ◯( ´∀` )◯ < 僕のBASICはコンパイラちゃん!
197名無しのひみつ
2022/12/11(日) 13:33:48.99ID:EcYi6465 関数型プログラミングだとfor文はご法度なんだよね?
198名無しのひみつ
2022/12/11(日) 13:46:46.22ID:XNXN2ynZ 代わりにどう書くの?と素直に疑問
200名無しのひみつ
2022/12/11(日) 14:15:34.91ID:p5u/7TEf C++が出来たころ、
C++からFORTRANのサブルーチンを呼び出すコードを書く作業を延々としていた記憶
C++からFORTRANのサブルーチンを呼び出すコードを書く作業を延々としていた記憶
201名無しのひみつ
2022/12/11(日) 15:06:10.75ID:tecsYD/h >>198
再帰
再帰
202名無しのひみつ
2022/12/11(日) 15:08:33.32ID:1l3cc1Co 再起だとLISPかPrologか。
見事に消えたが。
見事に消えたが。
203名無しのひみつ
2022/12/11(日) 16:39:13.74ID:Q+mERdBw FORTRANって体育会系のかほりがあって嫌い
文化系帰宅部はCっしょ
文化系帰宅部はCっしょ
204名無しのひみつ
2022/12/11(日) 16:46:28.62ID:XNXN2ynZ Cはエリートが使う言語で、プログラムできない人でも結果出す為に使うのがFortranだと思ってた。
Numerical Recipes in C とか頑張ったの?
Numerical Recipes in C とか頑張ったの?
205名無しのひみつ
2022/12/11(日) 17:31:22.17ID:wt+ojXMh >>202
リブートしちゃうぞ
リブートしちゃうぞ
206名無しのひみつ
2022/12/11(日) 17:37:46.29ID:wt+ojXMh >>203
CはUnixマシンのシステム言語
FORTRANは旧来型マシンの科学技術計算言語
まずマシン環境が違う
システムを弄るためのCだ
システムを知ってることが前提
というかUnixと一体だ
Unix作るための言語だったから
だからCならUnixのなんでもできる
FORTRANはサイエンティストが使いやすいように
それまでのホストマシンのアセンブラに一枚噛ませた言語
それまでのホストマシンはマシン独自のアセンブラでCのようなシステムだけど汎用って言語層がない
比べるのが間違い
CはUnixマシンのシステム言語
FORTRANは旧来型マシンの科学技術計算言語
まずマシン環境が違う
システムを弄るためのCだ
システムを知ってることが前提
というかUnixと一体だ
Unix作るための言語だったから
だからCならUnixのなんでもできる
FORTRANはサイエンティストが使いやすいように
それまでのホストマシンのアセンブラに一枚噛ませた言語
それまでのホストマシンはマシン独自のアセンブラでCのようなシステムだけど汎用って言語層がない
比べるのが間違い
207名無しのひみつ
2022/12/11(日) 17:38:29.65ID:wt+ojXMh >>204
わかってないね
わかってないね
208名無しのひみつ
2022/12/11(日) 17:44:00.06ID:wt+ojXMh CはOSとしてのUnixと一体
旧来型ホストマシンはCPUも独自マシン言語
そのアセンブラも独自アセンブラ
そこで動くOSもアセンブラで書いた独自OS
その独自OSの上でサイエンティフィックな視点でプログラミングできるようにしたのがFORTRAN
事務計算で金利計算まで丸めずにできるようにしたのがCOBOL
時代が下ってミニコンの研究者用OSを作るために作ったのがC
Cで作ったのがUnix
Cはミニコンのアセンブラをラップしてる
それぞれがいいものだったから移植されていろんなマシンで動くようになってる
がそれぞれの生まれ持った特長はそのまま
旧来型ホストマシンはCPUも独自マシン言語
そのアセンブラも独自アセンブラ
そこで動くOSもアセンブラで書いた独自OS
その独自OSの上でサイエンティフィックな視点でプログラミングできるようにしたのがFORTRAN
事務計算で金利計算まで丸めずにできるようにしたのがCOBOL
時代が下ってミニコンの研究者用OSを作るために作ったのがC
Cで作ったのがUnix
Cはミニコンのアセンブラをラップしてる
それぞれがいいものだったから移植されていろんなマシンで動くようになってる
がそれぞれの生まれ持った特長はそのまま
209名無しのひみつ
2022/12/11(日) 17:48:05.38ID:0Iwe1aa6 >>206
FORTRANを使うにはサイエンティフィックな知識が前提
Cはシステム知識が前提
FORTRANでOSをカスタマイズするようなことはしない
Cは何でもできるから科学技術計算に使ってもいい
ただしそのためのライブラリがなければ一から自作しないといけない
いまライブラリあるのはそれを作ってくれた人のおかげ
Cなら同様になんでもできる
その反対に手間と時間がかかる
言語ってのは手間と時間とカスタム度合いを天秤にかけて必要に応じて使うもの
FORTRANを使うにはサイエンティフィックな知識が前提
Cはシステム知識が前提
FORTRANでOSをカスタマイズするようなことはしない
Cは何でもできるから科学技術計算に使ってもいい
ただしそのためのライブラリがなければ一から自作しないといけない
いまライブラリあるのはそれを作ってくれた人のおかげ
Cなら同様になんでもできる
その反対に手間と時間がかかる
言語ってのは手間と時間とカスタム度合いを天秤にかけて必要に応じて使うもの
210名無しのひみつ
2022/12/11(日) 17:52:00.12ID:0Iwe1aa6 日本人がよくあるのは
ライブラリとか言語そのものとか
作ってくれた人がいて
その人がどんな必要性から作ったのかがあるのに
そんなことは知らないやつが多いこと
海外から出来合いものを持ってきて
俺様が持ってきたんだおまえら知らねーだろ
みたいに自慢し合う
たから自分で発展させていくことに想いが至らない
日本が世代間でケンカするのもそういう引き継ぎがないから
いつも新しいものを横から持ってきて
おまえら知らねーだろ
ジジイ!
こういう感じ
作った人のことをしれよ
どんなふうに変化したのかを人の歴史として語れよ
そうすれば世代間ケンカなんてなくなる
ライブラリとか言語そのものとか
作ってくれた人がいて
その人がどんな必要性から作ったのかがあるのに
そんなことは知らないやつが多いこと
海外から出来合いものを持ってきて
俺様が持ってきたんだおまえら知らねーだろ
みたいに自慢し合う
たから自分で発展させていくことに想いが至らない
日本が世代間でケンカするのもそういう引き継ぎがないから
いつも新しいものを横から持ってきて
おまえら知らねーだろ
ジジイ!
こういう感じ
作った人のことをしれよ
どんなふうに変化したのかを人の歴史として語れよ
そうすれば世代間ケンカなんてなくなる
211名無しのひみつ
2022/12/11(日) 18:03:11.98ID:5ZR31BoA 英語の世界ではライブラリとか紹介する時にどこどこの誰々が作ったライブラリって紹介されることもよくある
日本じゃ天から降ってきたみたいに元からあるようにしか紹介しないどころか
使い方を紹介してる翻訳者の大学の先生が偉そうにオレが作ったように書いたりしてる
日本じゃ天から降ってきたみたいに元からあるようにしか紹介しないどころか
使い方を紹介してる翻訳者の大学の先生が偉そうにオレが作ったように書いたりしてる
212名無しのひみつ
2022/12/11(日) 18:07:11.48ID:5ZR31BoA214名無しのひみつ
2022/12/11(日) 18:17:14.89ID:5ZR31BoA215名無しのひみつ
2022/12/11(日) 18:18:36.25ID:XNXN2ynZ 書きやすくて読みやすければCでもFortran でもRatforでもいいよ。
コンパイラ作るの他所の人だし。
って、天の声が聞こえた気がした。
コンパイラ作るの他所の人だし。
って、天の声が聞こえた気がした。
216名無しのひみつ
2022/12/11(日) 18:20:10.88ID:5ZR31BoA システムの発展もOSの発展も言語の発展も
こういう細かいことをみんながやってきたから
だーんと突然できたわけじゃないし
敵と敵が戦うだけじゃできない
敵にしてるのはビジネスだから
作ってる側は敵も味方もない
こういう細かいことをみんながやってきたから
だーんと突然できたわけじゃないし
敵と敵が戦うだけじゃできない
敵にしてるのはビジネスだから
作ってる側は敵も味方もない
217名無しのひみつ
2022/12/11(日) 18:22:31.96ID:5ZR31BoA その代わりビジネスになると
理由や温情なしに
生き返ることのないよう徹底的に叩き潰せ
ってのがアメリカ
理由や温情なしに
生き返ることのないよう徹底的に叩き潰せ
ってのがアメリカ
218名無しのひみつ
2022/12/11(日) 18:36:23.60ID:rSWDwZp2 昔、FORTRANで仕事してたってけ。
好きな言語だったよ。
高速道路の長大トンネルの制御プログラムで
水噴霧パターンを当時覚えたばっかのビットマップで組んだ。
PL/1も使ってたなあ。
情報処理試験でPL/1を選ぶと簡単だった。
そういや本物のプログラマはPascalを使わないとかいうコピペが出回って
プロはFORTRANを使うのだみたいなことが書かれていたっけ。
好きな言語だったよ。
高速道路の長大トンネルの制御プログラムで
水噴霧パターンを当時覚えたばっかのビットマップで組んだ。
PL/1も使ってたなあ。
情報処理試験でPL/1を選ぶと簡単だった。
そういや本物のプログラマはPascalを使わないとかいうコピペが出回って
プロはFORTRANを使うのだみたいなことが書かれていたっけ。
219名無しのひみつ
2022/12/11(日) 21:22:29.89ID:Lv9DrXwM >>181
lispはFPUを想定せず設計されてるから基本的な浮動小数点の罠に引っかかりにくいとか?
CL/schemeですら未だ数値型は基本有理数、リテラル1/3はそのまま1/3だし+-*/等の基本演算も有理数を返しオーバーフローも無い、数複素まで断らなければ有理係数
特にschemeはexact->inexactでfloatへのキャストや超越関数で警告出て非常にうるさい
lispはFPUを想定せず設計されてるから基本的な浮動小数点の罠に引っかかりにくいとか?
CL/schemeですら未だ数値型は基本有理数、リテラル1/3はそのまま1/3だし+-*/等の基本演算も有理数を返しオーバーフローも無い、数複素まで断らなければ有理係数
特にschemeはexact->inexactでfloatへのキャストや超越関数で警告出て非常にうるさい
220名無しのひみつ
2022/12/12(月) 08:38:54.85ID:jhqq4TAZ fortran触って珍しい機能と思ったのはpointer(type, pointer :: p)だけじゃなくそのpointee(type, target :: x)を宣言するところ
コンパイラへのヒントなんだろうけど、書く側読む側にも分かりやすい
確かオプションか宣言しない限りは無くても動いてしまうはずだけど
コンパイラへのヒントなんだろうけど、書く側読む側にも分かりやすい
確かオプションか宣言しない限りは無くても動いてしまうはずだけど
221名無しのひみつ
2022/12/12(月) 08:49:12.18ID:jhqq4TAZ デフォルトが参照渡しだしポインタ算術も無いから、あまりポインタ使う機会も無いんだけど
やはり型をパラメトライズ(制限)して使うジェネリックコンテナ作る時にポインタはあると便利
やはり型をパラメトライズ(制限)して使うジェネリックコンテナ作る時にポインタはあると便利
222名無しのひみつ
2022/12/12(月) 10:43:48.15ID:85+C3dR6 >>219
今はもう整数無限精度が標準の言語は多いし、浮動小数点がデフォルトでも有理数は標準ライブラリ提供の言語は多いけど、それでもlisp系標準の無限精度有理演算は簡単な線型代数に便利よね
掃き出し法等多くのアルゴリズムは四則演算のみだから、際どい0判定の必要なピボット選択がzerop/zero?だけで済む
分母分子が大きいと今のPCですらアホみたいに遅いから、シュミレーションやCG用途には全く使い物にならないけど
浮動小数点を扱う線型代数ライブラリは本当に凄いと思い知らされる、誤差伝播の上界伝播ロジックやファインチューンされたill-conditionヒューリック判定の塊
今はもう整数無限精度が標準の言語は多いし、浮動小数点がデフォルトでも有理数は標準ライブラリ提供の言語は多いけど、それでもlisp系標準の無限精度有理演算は簡単な線型代数に便利よね
掃き出し法等多くのアルゴリズムは四則演算のみだから、際どい0判定の必要なピボット選択がzerop/zero?だけで済む
分母分子が大きいと今のPCですらアホみたいに遅いから、シュミレーションやCG用途には全く使い物にならないけど
浮動小数点を扱う線型代数ライブラリは本当に凄いと思い知らされる、誤差伝播の上界伝播ロジックやファインチューンされたill-conditionヒューリック判定の塊
223名無しのひみつ
2022/12/12(月) 11:05:44.92ID:dTgTrzzj 数値型の値一つが無限にメモリを食い潰す可能性があるから、全てのオブジェクトを定幅ポインタで扱う言語でないとそういう配列は面倒だな
分子分母を格納した構造体へのポインタ配列なんだろうけど、無理数の出るケースも考慮してfloatとのタグ付きユニオン型である必要もある
分子分母を格納した構造体へのポインタ配列なんだろうけど、無理数の出るケースも考慮してfloatとのタグ付きユニオン型である必要もある
224名無しのひみつ
2022/12/12(月) 11:17:55.91ID:dTgTrzzj 分子分母も無限長整数だから、動的割り当て配列へのポインタを格納した構造体とのユニオン型へのポインタの配列だな
電卓としては便利だろうが、パフォーマンスはそりゃ絶望的だろう
賢い人の書いたfloat演算ライブラリ使ってりゃok
電卓としては便利だろうが、パフォーマンスはそりゃ絶望的だろう
賢い人の書いたfloat演算ライブラリ使ってりゃok
225名無しのひみつ
2022/12/12(月) 12:01:52.92ID:fE+awSzS そこで逐次評価をせず代数的に簡約する記号計算の出番ですよ、数値計算の代替にはならないけど
lisp系で有理数型がプリミティブなのは悪手だと思ってる
可能な時は約分してメモリを節約という涙ぐましい努力はしてるけど、それでも無限に時間とメモリを食う入力はいくらでも選べるから、サーバで不用意に外部入力を受け付けるとDoSで死ぬ
外部入力の評価は一般的に危ないけど、ただのプリミティブ数値型の四則演算で死に得るというのは、意識されにくいかなりの落とし穴
念入りな消毒が必要だから、むしろ自由に切り離せるライブラリ提供の方が面倒が無い
lisp系で有理数型がプリミティブなのは悪手だと思ってる
可能な時は約分してメモリを節約という涙ぐましい努力はしてるけど、それでも無限に時間とメモリを食う入力はいくらでも選べるから、サーバで不用意に外部入力を受け付けるとDoSで死ぬ
外部入力の評価は一般的に危ないけど、ただのプリミティブ数値型の四則演算で死に得るというのは、意識されにくいかなりの落とし穴
念入りな消毒が必要だから、むしろ自由に切り離せるライブラリ提供の方が面倒が無い
226名無しのひみつ
2022/12/12(月) 12:48:34.82ID:+FBlEamX OS管理とかで
「logファイルの差分を取って増分に対して処理する」
という表現に対して
差分って数学的な用語に限定して欲しいなあ
って考えてしまう人も世の中に一定数いるんだろうかw
「logファイルの差分を取って増分に対して処理する」
という表現に対して
差分って数学的な用語に限定して欲しいなあ
って考えてしまう人も世の中に一定数いるんだろうかw
227名無しのひみつ
2022/12/12(月) 14:22:29.22ID:dTgTrzzj >>225
無制限に肥大するのは例えばループで値を累積するような時であって、バッファのサイズで制限すれば問題なくね?
入力の数値型がnバイト、任意だから簡約も出来ないとして、累積乗算(*=)すれば1ステップでn^2バイト、2ステップでn^3バイト、k-1ステップでn^kバイト、指数関数的に増えるという話で
例えば初期値の分子分母が8バイトでn=16バイト表現を想定すれば、たった10ループで8GB
時間的にもギガ桁の乗算とか無理だし、意義のあるループ(数回なら書き下せばいい)を使うアルゴリズムに有理型は実質使えないというだけ
ループ無しでバッファを10文字+まで制限すれば四則演算くらいは何とかなりそうなものだが、実際に無限長整数の言語でもsanitizeされたevalは許されてる
有理型は乗算より足し算の方がヤバい(乗算を必要とする)ので、見積もりが甘過ぎるとは思うが
無制限に肥大するのは例えばループで値を累積するような時であって、バッファのサイズで制限すれば問題なくね?
入力の数値型がnバイト、任意だから簡約も出来ないとして、累積乗算(*=)すれば1ステップでn^2バイト、2ステップでn^3バイト、k-1ステップでn^kバイト、指数関数的に増えるという話で
例えば初期値の分子分母が8バイトでn=16バイト表現を想定すれば、たった10ループで8GB
時間的にもギガ桁の乗算とか無理だし、意義のあるループ(数回なら書き下せばいい)を使うアルゴリズムに有理型は実質使えないというだけ
ループ無しでバッファを10文字+まで制限すれば四則演算くらいは何とかなりそうなものだが、実際に無限長整数の言語でもsanitizeされたevalは許されてる
有理型は乗算より足し算の方がヤバい(乗算を必要とする)ので、見積もりが甘過ぎるとは思うが
228名無しのひみつ
2022/12/12(月) 14:41:31.42ID:dTgTrzzj そもそもlispでevalは本当にヤバいからやるな
式でなくフォームから決まった数のリテラルを読み取ってリストにするだけでマズい
#1=全てのリテラル表記全#1#が自己/相互参照をサポートしている
ちゃんと無限サイズのオブジェクトとして評価されるが、バッファが定数文字と思って不用意にアクセス舐めたら無限ループ
他にいくらでも罠がある
そもそも言語の評価器を流用しようという発想がそもそもの間違い、四則演算や文字列のパース程度くらい自分でやれ
式でなくフォームから決まった数のリテラルを読み取ってリストにするだけでマズい
#1=全てのリテラル表記全#1#が自己/相互参照をサポートしている
ちゃんと無限サイズのオブジェクトとして評価されるが、バッファが定数文字と思って不用意にアクセス舐めたら無限ループ
他にいくらでも罠がある
そもそも言語の評価器を流用しようという発想がそもそもの間違い、四則演算や文字列のパース程度くらい自分でやれ
229名無しのひみつ
2022/12/12(月) 14:41:37.08ID:OT63RdQo πを計算させたらおちた。
231名無しのひみつ
2022/12/12(月) 15:39:14.33ID:ENHMK9f1 関数や演算子なら空環境渡してevalを制限できるけど構文なら回避不能だな
232名無しのひみつ
2022/12/13(火) 16:14:51.42ID:qx2DLgPv 愛すべき古き良き計算機言語たち:
FORTRAN
COBOL
LISP
C
Pascal
Ada
BASIC
SQL
Smalltalk
FORTRAN
COBOL
LISP
C
Pascal
Ada
BASIC
SQL
Smalltalk
2023/01/11(水) 19:20:40.39ID:1fRIzAm1
234名無しのひみつ
2023/01/22(日) 00:56:15.11ID:q/GI0F49 あなたはこのスレッドにはもう書けません?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- DAZNに批判殺到!W杯「月980円」実は年2万6340円…「騙された」「ダークパターン」「トラップすぎる」 ★7 [Gecko★]
- 「クールジャパン機構」廃止案 政府検討へ、累積赤字が拡大 [バイト歴50年★]
- 【中傷動画】高市首相対応に苦慮、「重要法案の審議に影響」懸念「支持率じわじわ落ちるかも」危惧の声 [蚤の市★]
- 【音楽】「Adoに歌ってほしい曲」を大募集 『Adoの歌ってみたアルバム』第2弾リリース決定! [湛然★]
- 「生保レディー」改め「生保ナビゲーター ソナエルジュ」…時代に合った愛称、生保協会が一般応募から選出 [ぐれ★]
- 【高市首相】職務で一時、足元をふらつかせる場面 政府高官「病気ではない」 [ぐれ★]
- 【実況】博衣こよりのえちえち栄冠ナイン2033🧪
- 三三👊😅👊💥🏡💥👊😅👊三三
- ワイが作るAIエロ動画でお前らを射精させたい
- 【画像】女の子「あとからお口でしてあげよっか?」
- 名探偵プリキュアのキュアアルカナ・シャドウこと森亜るるかちゃんに金玉潰されたい
- 【高市悲報】ゼレンスキー「金くれ、200億ドルほど」 [616817505]