BASIC

君はEQV演算子を知っているか!?

私は知りませんでした。↓の右のように書いても一緒ですし。Fortran由来でしょうか?FortranではXORも.NEQV.らしい。 A=B XOR C=D (A=B)<>(C=D) A=B EQV C=D (A=B)=(C=D) A=B IMP C=D (A=B)>=(C=D)*1 *1:BASICでは真は-1←ビット演算子で論理演算できるため大…

FizzBuzz

追いついた♪ I=1 'for I=1 to 100 *F A=1 if I mod 3 = 0 then ?"Fizz";:A=0 if I mod 5 = 0 then ?"Buzz";:A=0 if A then ?I; ? I=I+1:if I<=100 goto *F 'next ...>basicll -r fizzbuzz.bas 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16…

LLVM用BASICコンパイラを書いていたり

http://panathenaia.halfmoon.jp/basicll/ Quineで3位*1を取るためだけのBASIC処理系です。まだLISTしか出力命令が無いです。LLVMで非効率となるgcc拡張構文のひとつに&&labelがあります。LLVMではローカルラベルのアドレスを取れないため、序数に対応付けて…

YabasicのEOF判定

open#1,"/dev/stdin" ... if eof(1)then... とかでできましたけどそんな。ひ、ひどい。ハンデにしては理不尽過ぎる。順当に行けばHaskellに勝てる言語なのにっ。BASICをHaskellの上に持ってこようと目論んでたのにっ。http://golf.shinh.org/lranking.rbでAv…

YabasicはBASICじゃねえ

Yabasicという処理系があります。 http://www.yabasic.de/ これが、BASICとして如何に酷いかをつらつら書きたいと思います。 NEXT J,Iができない。 FOR I=1TO 8:FOR J=I+1TO 9:...:NEXT J,I 'ふつーのBASIC FOR I=1TO 8:FOR J=I+1TO 9:...:NEXT:NEXT 'Yabasi…