書いた日 2025年1月12日
そう、こうすれば標準入出力以外の手段で、なんやかんやができる…と思います。 そうすれば、コードゴルフとかで、あるいは使いやすいプログラムの作りかたとして役に立つかも。
C-INTERCALとCLC-INTERCALの2つのメジャーな実装があると思います1。
逆に、他にもあるとか、そんなばかなと思います2。
ないよ今のところ。入出力関連について、あるところと言えば、こんな感じだと思います。
最新版は2024年10月に出た0.33なんだけれど、 ウェブでそのまま載ってるのは0.27という、2007年の版のマニュアルになってて、 最新版のマニュアルもそこから全く変わってなくてびっくりしました。 最新版でなんか増えなかったかを調べてみました。 機能としてはマジで増えてなくて、バグ修正してたのがこれまでの内容だったんです。まあこの話はさておき、入出力関連で何やるんだろうね?
C-INTERCALというコンパイラは、C-INTERCALという方言の他にCLC-INTERCALとかPIC-INTERCALとかをなんやかんやするんだけど、 C-INTERCALという方言に限って話すとなれば、
の二つがあります。PIC-INTERCALとかだとピンへの入出力だったり。なんでって?組み込みプログラミング。
最新版は2024年4月の1.00で、入出力としてはこんな機能。しかもC-INTERCALより機能たくさんあるよ。
じつはC-INTERCALコンパイラは、C言語の関数とリンクできたり、 Befunge-98のプログラムとリンクできたりするので、この機能を使えば コマンドライン引数の内容を配列に書き込むようなライブラリが実現できるんですけど、 まあ詳しくは元ネタのマニュアルをごらんください。
システムコール#10
を追加して「.X
に引数の数、:X
に最大文字数、;XSUB#1
から;XSUB,X
までの各配列に各引数の内容をバイナリI/Oで表したものをそれぞれ格納する」っていう機能を追加してこれをプルリクしてもらおうかなと思います。暇だったら。
いかがでしたか?
今日は、INTERCALに機能を拡張する場合の概要をお話ししました。
コード例とかあったら前向きに検討しますのでお楽しみに。