HAL/Sを通して見るプログラム言語の記述に関する歴史

「プログラムの空白に意味がなかった時代」との言葉に軽い気持ちでリプを返した結果、60〜70年代のプログラミング言語にまつわる貴重なお話を聞けたのでまとめました。
2
酔漢 @🏍⛺📻 @suikan_blackfin

徳叉迦さんに教えて頂いたHAL/S言語。想像以上に酷い。 twitter.com/dtaksak/status… HAL/Sはシャトルの制御システム記述用にとして70年代を通じて使われたらしいけれど、今の人にはちょっと理解できないひどさだと思う。

2015-11-03 21:08:32
徳叉迦🚤 @dtaksak

@suikan_blackfin 空白文字が乗算演算子のHAL/Sをたまには思い出してあげてください。 www2a.biglobe.ne.jp/~mizuki/tmp/pr…

2015-11-02 21:58:49
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 何故こんな酷いものが存在できたかを理解するには、70年代初頭がアメリカのコンピュータ科学にとって一つの暗黒時代だったことを理解する必要がある。 60年代のコンピュータ科学の中で無視できないウェイトを占めたのがコンパイラ技術だった。

2015-11-03 21:10:15
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 人類初の高級言語としてリリースされたFORTRANの反省に基づいて、主にヨーロッパで(アメリカ生まれの)生成文法に倣った文法記述へと向かう流れが生じている。 大まかに言ってAlgol系。BNF記法をつかって文法を記述する。

2015-11-03 21:12:24
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin BNFで言語を記述するのは単なるお約束では無くて、背景にはオートマトンや文法クラス(正規表現、文脈依存文法など)があって、整然とした機械処理ができるほうこうに進んだ一方アメリカは力業でPL/Iを作った。

2015-11-03 21:14:26
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin PL/I の文法は綺麗とは言えないもので、ただ、動く。アメリカ的プラグマティズムというか、Nice to haveを入れすぎてえらいことになった。 ヨーロッパはかっちり作る良い手段を得たのに、なぜか60年代の後半にAlgol68を産んでしまう

2015-11-03 21:16:14
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 大西洋を挟んで、アメリカは九龍城のような言語を作り、ヨーロッパはザクラダファミリアのような言語を作ってしまった。 70年代初頭というのはいろんな意味でコンピュータ言語の研究者が唇を嚙み、やり直しを計っていた頃である。

2015-11-03 21:17:43
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin よく知られているように、この頃相前後してPascalやC言語へと連なる研究が進められている。 で、話を戻すと70年代の頭のアメリカで広く使われていたプログラミング言語は PL/I、COBOL、FORTRANだった。

2015-11-03 21:19:24
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 私がPaslcalを学んだときには文脈依存文法の考え方を頭に入れて、拡張BNF記法をたどりながら頭の中で文法を再現できるようにしていた。Pascalはそれができるように設計されていた。

2015-11-03 21:20:51
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 私の思い込みでしか無いんだけど、古いアメリカ系プログラミング言語はそれが希薄だった。文法にNice to Haveが多い。厳格にしようという意思を感じない。 HAL/Sが成立した年代はちょうどそういうただれた雰囲気が万円していた頃。

2015-11-03 21:22:39
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin 巨大プロジェクトには新機軸を持ち込みにくい。PL/Iなどを最新技術として学んだ熟練技術者達がNice to Haveの塊みたいなものを思いついても不思議ではない。 むしろ不思議なのはシャトルが飛んだことだよ

2015-11-03 21:23:46
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin シャトルは70年代の終わりにようやく滑空を始め、80年代頭に打ち上げが行われる。 ちょうどその頃米軍は、「質の悪いソフトに国防を任せる」という事の重大さに遅まきながら気づいて震え上がった。 「バグで核戦争が起きたらどうしよう」

2015-11-03 21:26:30
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin というわけで、70年代の終わりから米軍が開始した新プログラミング言語プロジェクトは、Adaとして結実する。極めて読みやすく理解しやすい。そして、コンパイラを通せば、文法エラーが無いことを補償してくれる。

2015-11-03 21:27:26
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin Adaは産業界には広がらなかったけれど、一定の成果は上げた。そしてAdaの文法はVHSICプロジェクトの中の野心的なハードウェア記述言語、VHDLに受け継がれていく。

2015-11-03 21:28:36
酔漢 @🏍⛺📻 @suikan_blackfin

@suikan_blackfin というわけで、人類のフロンティアを支えたシステムの中のHAL/Sなる言語が、どのような闇の中で生まれたかという歴史の話でした。 さぁ、どのくらいツッコミがはいるかな。

2015-11-03 21:30:21