スペースシャトル専用言語HAL/Sに関する電子書籍 44
ストーリー by hylom
ハッカーさんいらっしゃい 部門より
ハッカーさんいらっしゃい 部門より
あるAnonymous Coward 曰く、
スペースシャトル搭載計算機専用プログラミング言語「HAL/S」に関する電子書籍「プログラミング HAL/S」が、筆者の水城徹さんにより公開されている(MAKE: Japan : スペースシャトル専用言語HAL/Sに関する電子書籍)。この電子書籍は水城さんのWebサイトからPDF版およびepub版がダウンロードできる。
書籍内ではHAL/Sについて「極めて残念ながら、それは悲惨極まりない言語なのだ。」と評し、シャトル制御言語の歴史から「最悪とまでは言わないが、基本的に駄目」という言語仕様、入出力仕様、ハードウェアと運用仕様などが紹介されている。
なんかところどころおかしいよ (スコア:5, 参考になる)
目の付け所は面白いと思いますが、 PDF 版の第 3 章「演算」 (12~14 ページ) を眺めて 2005 年版言語仕様 (英語) [klabs.org] と照らし合わせてみたところ、内容の正確性に疑問が残ります。
他の章はまともかもしれませんが、 3 ページしかない章の中にこれだけ言語仕様と食い違う点があると、残りを読む気があまり起きないというのが正直なところ。もう少し慎重に事実確認をしてくれればなあと思います。特に、先人のしたことを「悲惨極まりない」と酷評するのであればなおさらです。目の付け所は面白いだけに、もったいない感じがします。
Re:なんかところどころおかしいよ (スコア:1)
>** は「階乗演算子」と説明されていますが (p. 12)、正しくは「べき乗演算子」です (言語仕様 6-4 ページの表 6-2)。
まあ普通に翻訳ミスの類で、本の価値がさほど変わるものでは無い。
誤字脱字や翻訳ミスの指摘は作者なら歓迎するだろうけど、
重箱の隅をつついただけで批判する気になるのはいかがなものか。
>¬ を論理否定の単項演算子として使う場合、括弧を付けなければならないことになっているので、優先順位が問題になることはありません。
それは「優先順位がグダグダなので、しょうがないから括弧を付けて運用で回避しろ」というのと同義なのでは。
それにあの調子だと、括弧を忘れた場合にコンパイルエラーがでるわけでもなさそうだしな。
>HAL/S には代入文 (言語仕様 7.3 節) はありますが、「代入演算子」なるものは存在しないようです。
やはりそれも言語仕様が変態すぎるということの傍証なのでは。。。
#「文脈によっては代入文になるけど、代入の独立した演算子はありません(キリッ)」。
#それで、どうやって解析すんのさ。。。
Re:なんかところどころおかしいよ (スコア:3)
えーと、書き方が悪かったようですが、僕の指摘は重箱の隅をつついただけではありません。僕は本書で HAL/S を駄作と評する根拠がいろいろガタガタだと指摘しています。
あと、 BASIC にも HAL/S と同様、代入演算子というのはないのですけれど、 firewheel さんはたぶんご存じないのでしょうね。
Re: (スコア:0)
件の文章は去年の2月末から3月にかけて書かれた文章のようですが、そのときから「階乗」などそのまんまのようです。
pdf/epub化するにあたって読み直すこともしなかったのでしょう。
Re:なんかところどころおかしいよ (スコア:2)
Re: (スコア:0)
> #「文脈によっては代入文になるけど、代入の独立した演算子はありません(キリッ)」。
> #それで、どうやって解析すんのさ。。。
行を先頭から見ていって、IF文でもDO文でもなくて行中に'='があれば代入文なので、最初の'='の後の'='は論理演算子と解釈すればいいだけだよ
知ろうともしないくせに語りたがるだけの馬鹿は死んでくれ
Re: (スコア:0)
いつもの本と違って、対象をタダひたすらこき下ろしたいといった調子で書いてあって、なんか変だなぁと思って読んでました。
実際やっつけなのかも。
Re: (スコア:0)
この言語が搭載されたスペースシャトルが「大いなる失敗だった」と全否定される風潮になっているので、そのノリで書いてしまったのかも知れませんね。
言語の解説だけでなく、現場でどのように運用されていたかがわかるコラムもあるとよかったなと思いました。
Re: (スコア:0)
いやいや。
水城さんって今までもさんざん宇宙機/宇宙関連の本を書いてる人で、
この方面だとアポロガイダンスコンピュータの本なんかも書いてる。
今更「大いなる失敗だった」なんて言うわけもない人なんだよね。
なのになんでこれ書いちゃったんだろう。
Re: (スコア:0)
たしかに現在の目からすれば奇妙な仕様の言語で無茶苦茶な貶され方をしているが、常識的に考えてそれをそのまま使い続けていたとはちょっと信じられない.
おそらくある時期からはもうちょっとましなCやPascal風の仕様記述言語とシミュレータを用いて開発したソースを、トランスレータでHAL/Sに自動変換していたのではないか?(昔作ったHAL/Sのコードはなるべく手を入れないようにしていたのだろうけど)
Re:なんかところどころおかしいよ (スコア:1)
Re: (スコア:0)
トランスレータが吐いたコードをチェックすりゃいいんじゃねえの?
そういう話じゃないのか。
Re: (スコア:0)
それはプログラマにとって返って地獄では?
C言語で書いたプログラムのチェックをアセンブラでするようなもの。
Re: (スコア:0)
吐き出されたコードを検証する事になって、結局一から作るのと同じになってしまうからそのままずっと使われて来たんだと思います。
Re: (スコア:0)
いや、ただ単に我慢して使いつづけていたのだとおもいます。
すくなくとも、一度は離着陸に成功したプログラムを大幅に書き直すことは、あるはずありませんから。
ましてや、年間10行くらいの修正(ドキュメントは1万頁かもしれんが)で高給をもらえるなら、だれも文句いいませんて。
Re: (スコア:0)
おかしいというか、仕様が逐次改訂されているのに最新版の資料を参照していなかったのでは?
Re:なんかところどころおかしいよ (スコア:1)
スペースシャトルが作られた時は今の最新版の仕様じゃないから、それはそれで問題ないのでは。
NASAドキュメント (スコア:2, 参考になる)
言語の特徴と欠点などがコンパクトにまとまった労作ですね。非常に面白いです。
HAL/S Documentation [klabs.org]の上のほうにドキュメントがいくつかありました。
Re: (スコア:0)
非常に興味深い文書だったが、現在の知見からの批判に終始していて、「当時の水準では一体何ができたのか」という観点はないですね
歴史学的ではない、あるいは彼はヘーゲル主義者だったのか
Re:NASAドキュメント (スコア:1)
仮に「当時の技術では、これはやむを得ない選択だった」としても、
今の観点からして失敗言語であるとすれば、それは言語設計が失敗であり、
言語が生き残れなかったのもそれが理由だったと考えるのは妥当だと思います。
LISPあたりと対比して書いたら面白いとは思うけど、そうすると議論も発散するし、執筆に関する
労力もハンパではなくかかるので、こんな簡単には配布できなかったでしょうね。
あと、当時のNASAに他に選択肢がなかったとしても不思議はないけれど、それはみずほ銀行
あたりのレガシーシステムをメンテしている人は、日々直面しているジレンマではなかろうか。
Re: (スコア:0)
なるほど、レシプロ戦闘機は生き残っていませんが、大戦当時でも失敗した設計だったということですね。
Re: (スコア:0)
HAL/Sがレシプロ戦闘機って
厚かましいにも程がある
なぜ独自言語? (スコア:1)
この手のものに使う言語って、基本Adaだと思ってましたが。
何故独自言語を作る必要があったんでしょうね?
Re:なぜ独自言語? (スコア:2, 参考になる)
開発が60年代後半から始まって70年代には本格化していた機体の制御に、83年に仕様が決定した言語を使うのはかなり無謀なんじゃないかと。
Re:なぜ独自言語? (スコア:1)
おっしゃりたいのは、米国国防総省関係は Ada 言語で統一されているはずだから…、ということですよね?ごもっともです。
Wikipedia で調べて見ましたら、米国航空宇宙局は、国家航空宇宙諮問委員会の後継組織として造られたもののようですから、国防総省とは系統が異なる組織のようです。だから、Ada 言語ではなく、独自の HAL/S言語を開発することになったのかもしません。縦割り行政ということでしょうかね? (≧ε≦)
Re: (スコア:0)
そんなことはない。単にHALはAdaの前身のひとつです。
国際宇宙ステーションではAdaが使われています。
Re:なぜ独自言語? (スコア:1)
これは失礼!HAL/S言語の方がAda言語より古いのですね。つまり、Ada言語を作るきっかけになった、数多くの言語のひとつにHAL/S言語があったんですね。
Ada言語が多機能で先進的な素晴らしい言語になったのは、ひとつにHAL/S言語での反省があったのかも知れませんね。( ´∀`)
Re: (スコア:0)
どんな言語も最初に創られた時は独自言語なんだよ。
#「キリスト教も2千年前は新興宗教だったんだ。」というのを読んで納得した。
Re: (スコア:0)
野暮なツッコミとは思いますが、2千年前にはキリスト教はなかったのではないかと。
Re: (スコア:0)
#2084571の「2千年前」を、今からきっかり2000年前と読み取るか、それとも約2000年ほど前と読み取るか、そのへんが理系と文系の分かれ目かな。
#どっちが理系でどっちが文系かは知らん
Re: (スコア:0)
前者は自閉症スペクトラム高得点、後者は普通の人ってだけだよ。
Re:なぜ独自言語? (スコア:1)
前者のツッコミのトンチにクスリとするのが普通の人。
病人にしようとするのは医者。
Re:なぜ独自言語? (スコア:1)
精神科医にかかると、どういう反応返しても病人にしてくれます。
Re: (スコア:0)
件の「野暮なツッコミ」が“トンチ”だと思える人は、笑いのセンスが独特な人、ってことでよろしいか。
Re: (スコア:0)
自分の感覚に合わない奴は全員異常ですね分かります
Re: (スコア:0)
相手を「精神科医だと思い込んでいる患者」であると思わせて、精神科医同士に話し合ってもらったらそれぞれどんな診断が下るのだろうか?
Re: (スコア:0)
精神科医なら「精神科医だと思い込んでいる患者」はまずいないということくらいは知っている。
Re: (スコア:0)
キリスト教の成立は1世紀頃だから、今からきっかり2000年前ととっても、それとも約2000年ほど前ととっても、誤りなのには変わりないね。
誤り? (スコア:0)
1世紀頃ってことは、大体西暦1~100年の間で、今が2012年。
5%程度の誤差で『だいたい』が通用しないなんて…
Re: (スコア:0)
ただたんに、Adaより古いはなしだから。当時は、陸,海,空でプログラミング言語がちがっていたのですよ。
これは、その「宇宙」版ね。
Re: (スコア:0)
だから、これは現代のプログラミング言語と比較してはだめで、TACPOL、CMS-2、Jovialと比べないといけないわけ。
これらから、Adaに引き継がれた事項もあるし、ない事項もある。。。
Re: (スコア:0)
昔と違って、今は小規模な組込用のプロセッサでもコンパイラの使用を前提としたプロセッサ・アーキテクチャになっているのと、コンパイラ作成技術そのものが進んでいて、コンパイラ屋さんに頼めばCコンパイラなんかを簡単に作ってくれます. 細かな最適化の話を別にすれば、コンパイラ屋さんが持ってる共通の中間コードを吐くフロントエンドに、各プロセッサ固有のコードを生成するコードジェネレータを付け加えるだけで出来てしまう.
一方、HAL/SはAdaよりもはるか昔の時代が時代だっただけにいろいろ仕方の無いところもあるのです.
#基本設計の古いDSPなんかにはアーキテクチャ上の制約のために実行効率の良いコンパイラなどどうやっても作りようの無いものがある
#PICマイコンの初期の製品などもコンパイラ使うことなど考えた作りにはなっていない
既視感 (スコア:1)
工夫してあるんだか無いんだかよく分からない小技の数々とか、
微妙な文法規則とか、こういうのって、凄い身近にあったような?
と、思ってしばし考えて思いついたのが、
xp までの windows cui のスクリプトかな、と。
「こういうコトをしたい」と思ったときに、思いついたままのコードでは
いまいち動かない肩透かし感とか、ちょっと似てる気がした。
Von Miller Jersey (スコア:0)
Jay Cutler Jersey [broncosedge.com]
Tim Tebow Jersey [broncosedge.com]
Von Miller Jersey [broncosedge.com]
Broncos Jersey [broncosedge.com]
Brady Quinn Jersey [broncosedge.com]
Brandon Lloyd Jersey [broncosedge.com]
Brandon Marshall Jersey [broncosedge.com]
Brian Dawkins Jersey [broncosedge.com]
Broncos Customized Jersey [broncosedge.com]
Champ Bailey Jersey [broncosedge.com]
Demaryius Thomas Jersey [broncosedge.com]
Dennis Smith Jersey [broncosedge.com]
Eddie Royal Jersey [broncosedge.com]
Elvis Dumervil Jersey [broncosedge.com]
Jake Plummer Jersey [broncosedge.com]
Javon Walker Jersey [broncosedge.com]
John Elway Jersey [broncosedge.com]
John Lynch Jersey [broncosedge.com]
Karl Mecklenburg Jersey [broncosedge.com]
Knowshon Moreno Jersey [broncosedge.com]
Kyle Orton Jersey [broncosedge.com]
Ryan Clady Jersey [broncosedge.com]
Selvin Young Jersey [broncosedge.com]
Shannon Sharpe Jersey [broncosedge.com]
Steve Atwater Jersey [broncosedge.com]
Terrell Davis Jersey [broncosedge.com]
Tom Jackson Jersey [broncosedge.com]
Willis McGahee Jersey [broncosedge.com]