トップページ⇒tech
31コメント11KB

  米国防総省 Ada  

■ このスレッドは過去ログ倉庫に格納されています
0001名犬アメ公 NGNG
米国防総省で開発されたAdaと言う言語は他の言語とくらべて何処が凄いのだろうか?
是非お聞かせ下さい

0002名無しさん@お腹いっぱい。 NGNG
みょ〜に覚えることが多いこと
0003名犬アメ公 NGNG
お
使った事があるんでしょうか?
もっと詳しく教えて下さい
そしてAdaは何処で手に入れられますか? >>2
0004名無しさん@お腹いっぱい。 NGNG
Ada = PL/I + FORTRAN + COBOL だっけ?
当時の三大言語をすべて取り入れたような、超肥満言語です。
更に肥満体な FORMAC なども有ったような…
0005じじぃ NGNG
小さい処理系も有ったぞな。
わしは、CP/Mの処理系を持っておるぞ。
ワレ物だがな。。。ふぉっふぉっふぉ☆
0006名無しさん@お腹いっぱい。 NGNG
いや…じじぃ…なくてもフリーの処理系があるよ
自分でやった方が得るものは大きい
0007名無しさん@お腹いっぱい。 NGNG
>>3
gnatで検索かけよう
0008名無しさん@お腹いっぱい。 NGNG
Adaの凄いところは、Algol系のブロック構造を持つ、抽象データ型を
サポートする、統合開発環境(名前忘れた)がある、といったところ。

これらは、当時、膨らむ一方のソフトウェア開発コストに危機感を
持ったDoDが、生産性と品質を向上させるために取り組んだプロ
ジェクトがAdaを生んだ。
今の技術常識からすると、上記のAdaの特徴は当たり前すぎて、
どう凄いのかピンと来ないと思うけど、これが20年以上前に作ら
れたところが凄い。というか、Adaは、現在のOO言語(+クラスラ
イブラリ+開発環境)の基礎となるアイデアおよび技術の基になっ
ているのだ。
0009おれ NGNG
Jargon(ハッカーズ大辞典)より引用

Ada
n.国防総省のソフトウェアプロジェクト用としてペンタゴンが指定している Pascal
期限の言語。ハッカーのほとんど誰もが口をそろえて言うように、天の声によってこ
の手の決定が下されたときに生まれるものの(技術的な意味での)典型がまさに Ada
だ。これは、委員会によって設計された役に立たない使いづらい全体として悲惨とし
か言いようのない数十億ドル規模の公共事業だ(よく「1980年代のPL/I」という言い
方をされる)。とくにAdaの例外処理とプロセス間通信の機能は、ハッカーたちの
お笑い草になっている。Ada Lovelace(Byron卿の娘で、19世紀中頃にCharles
Babbage による機械式計算機関の設計に協力し、世界初のプログラマとなった)も、
こんなのに自分の名前が使われて草葉の陰で泣いてるぞ、きっと。
0010名無しさん@お腹いっぱい。 NGNG
Adaらくらくうかるからだ
0011名犬アメ公 NGNG
一通りの説明ありがとう
んでそのAdaのソフトかそのソフトのソースが置いてあるところ
教えてくれ。
0012名無しさん@お腹いっぱい。 NGNG
おめでとう!
態度のでかい教えてクンは自分で探す決まりになっています>1
0013名無しさん@お腹いっぱい。 NGNG
あ、その決まり、おれも知ってる。
0014名犬アメ公 NGNG
おーのぅ
でかい態度とってすみませんでした(;o;)
調子ぶっこいてました。
Adaのソフトかそのソフトのソースが置いてあるところ教えて下さい。
お願いします
それともっとよた話聞かせて下さい。
 
0015名無しさん@お腹いっぱい。 NGNG
Adaってやっぱりランデブーでタスク間通信するしかないんですか。
飛行機もミサイルも皆ランデブーで実装しているなら、結構使える
通信手段ということになりそうですが、実際のとこどうなのでしょ
うか。 >識者の方々

私は、共有メモリ・セマフォの類が揃ってないと落ち着きませんが、
昔は、その手の拡張を行った処理系はAdaとは呼ばせない、とその筋
が言っていたように記憶してます。

Adaの本を読んだのは10年以上前なので、今のAdaのことは知りません。
0016>15 NGNG
Ada95で、protected record という名前の、
排他機能付き共有メモリができました。
001716 NGNG
ところで、GNATインストールして使ってみた人っていますか?
0018名無しさん@お腹いっぱい。 NGNG
FreeのAdaを輸入CD-ROM屋さんで見たことあるなあ
5、6年前だが
001915 NGNG
> 16
どうも。
ランデブーっておおげさで、小規模の組み込み用途とは相性が悪そう
に思えます。OSの機能を直接利用すること無しにAda本来の機能だけ
で同期をとっているのであれば、性能ネックになりそうです(以上
推測)。

ITRONのような比較的低レベルのOSを使う組み込みとは相性が悪そう
(これまた推測)です。DoDの想定していた組み込み用途ではどのよ
うなOSを使っていたのか興味があります。
0020名無しさん@お腹いっぱい。 NGNG
Adaってソースがそのままドキュメントとなるような方針が掲げられていますが、このことはどう思いますか?
メンテナンスしやすくなるんでしょうか?それとも冗長だと思いますか?
0021名無しさん@お腹いっぱい。 NGNG
ダメなプログラマがソースを書くと、自動的にダメなドキュメントがデキアガルンダヨ
冗長っていうより毒にしかなってないと思う
002216 NGNG
>16
別に私はAdaに詳しいわけじゃ全然ないんですが。

Adaの言語仕様は'78〜'83に出来たもので、
その頃は、高級言語にマルチタスク機能をいれるのが流行りだったと思う。
Modula-2とか、Concurrent Pascalとか。
要するにまだ黎明期で、どう言うモデルが好ましいか良く分かっていなかったのでは?
Ada95の改定で、protected recordが出来たわけだから、あまり良くなかったのでしょうか。

組み込み用途に関しては、'80年頃のことだし、OSは無いと仮定していそうな・・・
002322 NGNG
× >16
○ >19
002416 NGNG
>20
Adaは確かに、書き易さよりも可読性を重視していますが、
当時としてはともかく、今日的には特別ドキュメント性を重視しているかどうか?
プログラム本体と、外部仕様を分けて書くようになってますが、今では普通のことだし。
すくなくとも、Javaに比べれば全然ドキュメント性を重視していないかと。

Adaの出来た'70年代末頃といえば、恐らく構造化プログラミングも普及しきっていないし、
古いプログラムのメンテナンスとかも考えると、可読性では悪夢の時代ではなかったかと推測。
そういう、スパゲティープログラム職人からすれば、Adaの文法はかしこまり過ぎていて、
まるでプログラムと一緒に仕様書も書かされているような物だったかもしれません。
0025名無しさん@お腹いっぱい。 NGNG
>24
>Javaに比べれば全然ドキュメント性を重視していない
どうしてこんなことが言える?もちろんここでのドキュメント性というのはソース(コメントを除く)がそのままドキュメントであるという意味だけど。
002624 NGNG
>25

/** .... */
だね。
0027名無しさん@お腹いっぱい。 NGNG
>26
で、何が言いたいんだ?
002826 NGNG
すみません。
Javaの /** ... */ は、コメントだから25には該当しないね。
コメント抜きなら、Javaと同程度かな。

外部仕様と、内部の実装を分けて書くという程度なので、
特別Adaが、ドキュメント性を重視しているとは思わないけど。
Delphiだって似たようなものでしょう?
Cだって、関数プロトタイプという外部仕様をヘッダーファイルに書くわけだし。
0029名無しさん@お腹いっぱい。 NGNG
>28
>特別Adaが、ドキュメント性を重視しているとは思わないけど。
少なくともCやJavaと同じような重視のされ方じゃないということじゃない?
制御構造の表記の仕方にしても。
003019 NGNG
> 22
なるほど、OS無し環境ならOSとのミスマッチは生じないですね。
各言語の位置付けは以下のようになりますでしょうか。

Concurrent Pascal:
「Pascalに並行処理記述能力を追加してみたらこんな具合にな
りました。高級言語で並行処理を記述してもそんなに効率悪く
ないですよ。PDP-11上でこの程度でした。」といった感じの、
実験的な言語。

Modula-2:
コルーチンで並行処理を記述する、OSのスケジューラは必要ない言語。
コルーチンで済む限りでは十分に実用的。

Ada:
元々組み込み用途を考えていたので言語仕様に並行処理記述を入れる
必要があった。その後、DoDのソフトは何でもかんでもこれひとつで
統一する方向に変わったので、仕様が(当時としては)かなり大きく
なってしまった不幸な言語。全ては要件提示者の問題で、イシビアは
悪くない。
0031名無しさん@お腹いっぱい。 NGNG
Adaって、言語仕様だけじゃなく、
処理系の正当性を認定するためのテストスイートや、国に認定を受ける手順まで標準化されてるんですね。
さすが軍用言語だ...

こんなのをみつけました

Ada Information Clearinghouse - AdaIC http://www.adaic.org/
Ada Home the Home of the Brave Ada Programmers (HBAP) http://www.adahome.com/

ところで、イベントや並列動作を記述できる、VHDLという、Adaの親戚言語があります。
これも国防総省言語なんですが、この言語は、LSIをつくるとき日常的に使われてます。
■ このスレッドは過去ログ倉庫に格納されています