とある目的のために各種言語を調査しています。
ALGOL(アルゴル)は、命令型プログラミング言語ファミリの1つ[注 1]。
名前「ALGOL」は「アルゴリズム言語」を意味する英語「algorithmic language」に由来する。
1950年代中ごろに開発され、多くの言語に影響を及ぼし、
ACMや教科書や学術論文などでアルゴリズム記述のデファクトスタンダードとして30年以上使われた
ALGOLはコードブロックを導入
begin と end でそれを囲むことで、構文スコープのネスティングを可能にした最初の言語となった。
"Algol 60 Report"[3] で言語設計の主要な記法となったバッカス・ナウア記法を導入している。
ここの記述を見る限りは、特徴的な機能として
- コードブロック
- 構文スコープのネスティング
が上げられるようだ。また、記法として バッカス・ナウア記法
を導入した言語らしい。
実際に動かしてみようかと色々検索した結果、ALGOL60は見当たらなかったがALGOL68
の方のコンパイラは見つかった。せっかくなので動作させてみる。(ちなみに、コンパイラを落としてこなくてもonlineで試せるので、面倒くさいと思う人はそちらで)
コンパイル
wget https://jmvdveer.home.xs4all.nl/algol68g-2.8.4.tar.gz
tar zxvf algol68g-2.8.4.tar.gz
cd algol68g-2.8.4
./configure && make
実行
割と簡単に動きました。
cat > main.alg
print("Hello world!")
./a68g main.alg
ファイルを開いたら、さすがのvimもデフォルトでALGOLのsyntaxは対応してなかったみたい。
あとで、 コードサンプルここに転がっているのでここから適当にもらってきて試して見る。