2024-12-12: DAY 12 - LDPL (Quine AC 2024)
DAY 12
LDPLというプログラミング言語があります。
COBOLの影響を受けている言語で、全体的に英語っぽく書けるのが特徴です。
なぜこの時代にCOBOL? という気もしますが、感触はそんなに悪くないです。
これで大きなプログラムを書けるかというと微妙なのですが。
C++の関数がわりと簡単に呼べるみたいなので、その点は便利そうです。
そもそもC++へと変換されてコンパイルされてるっぽい。
Quineはこんな感じです。
予約語っぽいのを大文字にしてますが、別に小文字でもいいはずです。
配列に入れていい感じにループしていくだけ。
DATA:
code IS TEXT
codes IS TEXT LIST
i IS NUMBER
q IS TEXT
PROCEDURE:
PUSH "DATA:" TO codes
PUSH " code IS TEXT" TO codes
PUSH " codes IS TEXT LIST" TO codes
PUSH " i IS NUMBER" TO codes
PUSH " q IS TEXT" TO codes
PUSH "" TO codes
PUSH "PROCEDURE:" TO codes
PUSH " GET ASCII CHARACTER 34 IN q" TO codes
PUSH " FOR i FROM 0 TO 7 STEP 1 DO" TO codes
PUSH " display codes:i lf" TO codes
PUSH " REPEAT" TO codes
PUSH " FOR EACH code IN codes DO" TO codes
PUSH " display codes:17 q code q codes:18 lf" TO codes
PUSH " REPEAT" TO codes
PUSH " FOR i FROM 7 TO 17 STEP 1 DO" TO codes
PUSH " display codes:i lf" TO codes
PUSH " REPEAT" TO codes
PUSH " PUSH " TO codes
PUSH " TO codes" TO codes
GET ASCII CHARACTER 34 IN q
FOR i FROM 0 TO 7 STEP 1 DO
display codes:i lf
REPEAT
FOR EACH code IN codes DO
display codes:17 q code q codes:18 lf
REPEAT
FOR i FROM 7 TO 17 STEP 1 DO
display codes:i lf
REPEAT
実行は ldpl
コマンドを叩くと ファイル名-bin
という実行ファイルができるので、それを実行する。
$ ldpl quine.ldpl && ./quine-bin | diff quine.ldpl -