米国国防省の標準高等言語エイダ(Ada)を語れ!

■ このスレッドは過去ログ倉庫に格納されています
1名無しさんは伊達じゃない
垢版 |
NGNG
どうよ?
358デフォルトの名無しさん
垢版 |
NGNG
いたら怖い
F22を自衛隊が採用しても
F22のメンテするのはメリケンでしょ?
NGNG
メンテは日本人がやるでしょ。
ただブラックボックスを開けようとすると爆発するけど。
NGNG
IBMとかAONIXがPC向けにコンパイラ売ってるよ
ってことはPC向けの仕事があるからじゃないか?>向こうでは

潜水艦にNTなんて馬鹿な真似用じゃ無いことは祈っておくが
361デフォルトの名無しさん
垢版 |
NGNG
GTK Ada
http://libre.act-europe.fr/GtkAda/
NGNG
>>356
ruby.lのキーワード変えたくらいの
しょぼいものなので、晒すほどのできではないです。
emacsのやつを移植使おうとしたけどでかくてやめた。
NGNG
おお、ruby.lを見ればなんとかインデントくらいは実装できそうだ
thanx!
364デフォルトの名無しさん
垢版 |
NGNG
Ada0Yはいつ頃出るんだろう…?
365デフォルトの名無しさん
垢版 |
NGNG
>>364
0Yだけに、2009年までには出るのでは?
NGNG
>>364
英語でぐぐったところ、どうやら"Ada05"になりそう。来年。
367デフォルトの名無しさん
垢版 |
NGNG
>>366
来年ですか、ありがとう。
NGNG
>>367
規格が来年ってだけで、GNAT(gcc)に限れば先行実装されてきてるYO!
とりあえず今のところlimited withと、他のOOPLライクなメソッド呼び出し構文ぐらいは動く。
-gnatXをつけてコンパイルだ。
NGNG
だれか、俺にrandezvousを教えてくれ。

メッセージを送信すると受信側のタスクが受信して処理し終わるまでブロッキング。
受信側のタスクはメッセージが送られてくるまでブロッキングされる。

というニュアンスでいいの?
正確なところをフォロープリーズ。
NGNG
私も教えてほしい…
一般に使われてるMutex/クリティカルセクションと、
Adaのランデブー/protected型の違いによる
コーディングスタイルというかマルチスレッド用デザパタというか
そういうのの差違を説明したところないですかー?
NGNG
ランデブーって MPI みたいなやつ?

http://www-unix.mcs.anl.gov/mpi/
372デフォルトの名無しさん
垢版 |
NGNG
早く規格ができないかな。
373デフォルトの名無しさん
垢版 |
NGNG
面白そうだから今度使ってみようかな
374デフォルトの名無しさん
垢版 |
NGNG
win版開発環境はあるのか?
NGNG
>>374
コマンドラインだけでよければgccの対応言語のひとつ。
開発環境が欲しければgnat.comとかIBMとかaonixが売っているらしい
376デフォルトの名無しさん
垢版 |
NGNG
この言語を使うことによるメリットは何だろう?
NGNG
そりゃもう、徹底的なコンパイル時チェックによって、コンパイルエラーと戦いながら
バグの混じる余地の無いソースを書き上げる快感ですよ
NGNG
あだスレまだあったのか
379デフォルトの名無しさん
垢版 |
NGNG
こりゃえいだ
380デフォルトの名無しさん
垢版 |
NGNG
>>379
工エエェェ(´д`)ェェエエ工
NGNG
gcc3.5はいつになるのかな…
NGNG
>>375
gcc って直接ネイティブコード吐くの?
それとも C を経由?
NGNG
>>382
gcc -c aaa.adbとかでコンパイルするから、Cは経由してないはず。
もっとも、gccの中間表現は経由してるだろうけど、これはgccでコンパイルできる言語ならどれも同じ
384デフォルトの名無しさん
垢版 |
NGNG
この言語を使うと、他の言語を使った時よりもセキュリティが堅固なシステムを作れるのか?
NGNG
>>384
いんや、実行時はCと変わんないよ。コンパイル時チェックが厳しいだけ
まあ、デバッグコンパイルしたのを運用すれば範囲外の数値なんかは検出してくれるが…
386デフォルトの名無しさん
垢版 |
NGNG
盛り上がってまいりました!
387デフォルトの名無しさん
垢版 |
NGNG
>>386
工エエェェ(´д`)ェェエエ工
NGNG
>>387
(・∀・)イダ!!
389デフォルトの名無しさん
垢版 |
NGNG
>>374
>>375
名前がまぎらわしいけど、フリーのIDEあるよ。
GPS: The GNAT Programming System
http://libre.act-europe.fr/gps/main.html

あと、前からあるのはAdaGIDEとか。
http://www.usafa.af.mil/dfcs/bios/mcc_html/adagide.html
NGNG
GPS…酷い名前だ。
391デフォルトの名無しさん
垢版 |
NGNG
>>390
誤解されそうだな。
392デフォルトの名無しさん
垢版 |
NGNG
>>390
名前が一緒っていいのか?
393デフォルトの名無しさん
垢版 |
NGNG
>>384
まあ、C/C++でいうバッファオーバフローはないね。
http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/c-cpp.html
394デフォルトの名無しさん
垢版 |
NGNG
>> 371
MPIとは違うな。
rendezvousは、1ノード上のマルチスレッド間通信。

MPIみたいな多ノード間の通信の言語仕様は、Annex E "Distributed Systems"。
http://www.adaic.org/standards/95lrm/html/RM-E.html
395デフォルトの名無しさん
垢版 |
NGNG
このスレの住人には常識かもしれんけど

http://e-words.jp/w/Ada.html

> 当時の最新のプログラミング理論やソフトウェア方法論をまるごと取り入れようとした野心的な言語仕様で、厳密なデータ型の定義や、ソフトウェアのモジュール(部品)化、並行処理に関する仕様が特徴的である。

> しかし、あまりに多くの仕様を取り込もうとしたことが過度の肥大化を招き、当時の貧弱なハードウェアで開発を行なうのは困難になってしまった。

> このため、1980年代中盤から後半にかけて、より「軽い」仕様を持ったC言語に取って代わられた。

これ文の特にこの部分
>当時の貧弱なハードウェアで開発を行なうのは困難になってしまった。

これ読んでふと思た。
パソコンでもメモリが1G、CPUクロック3Gが常識な今、まだアセンブラに近いようなC言語使ってて良いの?
ポインタなんてのはCPUの構造を熟知してアセンブラがある程度わかって初めて正確に理解できるようなもんでしょ。

きっとAdaの時代がくるに違いありません。ひょっとしたら進化したPascalなのかもしれないけど?
識者の検証を頂けたら幸いです。
NGNG
Adaって、C並にガリガリの組込用言語だと思ってるんだけど。
Cの場合実装依存として投げてしまってる部分を、
全部ガッチガッチに文法にしてコンパイルエラー出せるようにしてあるから
仕様がでっかくなってるだけで。
NGNG
>>393にも関連するけどAdaでOSを作ろうとかいう話があったね。
(海外Webサイト)
NGNG
コンパイルエラーちゃんと出してくれる方がプログラマにはやさしいと思うが?
NGNG
>Adaって、C並にガリガリの組込用言語だと思ってるんだけど。
Adaを論理回路設計に特化させたのがVHDLだし。
つまりVHDLでCPUも造れてしまうわけで。
400デフォルトの名無しさん
垢版 |
NGNG
 
NGNG
なかなか次のgcc出ないなあ…Ada05早く使いたいYO!
402デフォルトの名無しさん
垢版 |
NGNG
>>402
05だけに、2005年まで出ないのでは?
NGNG
ではこのスレも来年まで保守か…長寿スレだな(いまでも充分
NGNG
型の種類が多すぎて覚えられない。

あと、変数を大文字から始めるという慣習のために、小指がいたくなる。
NGNG
こんなイイ言語がCより前からあったなんて….
NGNG
>>404
そんな貴方に親指シフト

マジレスすると、大文字小文字無視(だから"_"で区切ってる)なので、全部小文字で打て
407デフォルトの名無しさん
垢版 |
NGNG
408デフォルトの名無しさん
垢版 |
NGNG
>> 405
Plauger(ANSI C委員会)さんも昔
“Beyond 100,000 lines of code, you should probably be coding in Ada.”
と言ってた。
NGNG
なに?コンテナライブラリが作って?
NGNG
http://www.ada-auth.org/ai-files/grab_bag/Amendment-D8.html
誰かこいつを要約してくれ
NGNG
ISOで制定されたAda95に対する修正案のドラフト版?
NGNG
列挙型としてboolean,character,Wide_Characterが予め定義されている。
 ↓(修正)
それにWide_Wide_Characterも追加しる!

とかそんなのがいっぱい書いてあるみたいだけど…
NGNG
overridingの明示が、overriding procedure …って書くようになってるなあ
pragma overriding …はどうなるんだろう

あと面白そうなのが拡張return文
C++なんかではreturnで(コピー)コンストラクタが走った後もうそのオブジェクトには触れないが
関数を抜ける前に細工ができるようになってる
414デフォルトの名無しさん
垢版 |
NGNG
Ada05がメジャーになる日は果たしてくるのだろうか?
415デフォルトの名無しさん
垢版 |
NGNG
来ないでしょ。
NGNG
ていうか日本語で入門記事キボンヌ
マジわからん
Delphiやっててもさっぱりなんだが
NGNG
>>416
Hello World程度ならこのスレの上の方にあるだろ
それ以上は逐次質問してくれい

…このスレ三人ぐらいはいそうなので俺もわからなくても誰か答えてくれるさ
NGNG
じゃあ質問して見るか。
並列処理の制御ってどうやるの?
task,task body...をいくつか書いておけばそれらは同時に処理されるんだけど
勝手に処理が始まる。こちらで任意に処理を開始したり停止したりできない。
英語のサイトも見てacceptも試して見たがさっぱりだ。
誰かわかる?
...ああいま昔のレス見てたらlovelaceっていうAdaチュートリアルにも並列処理の事載ってるみたいだな。
そこを見るの忘れてた。当たって見るか。
419デフォルトの名無しさん
垢版 |
NGNG
ゲーム作りはC++やJAVAが主流だし、日本ではこの言語がどんな所で
使われてるのかさっぱり分からん。
日本語の参考書も見たことないし…
大学か趣味プログラミングが主流なのかな?
NGNG
アメリカでも使ってるヤツ少ないんじゃないか?
NGNG
今書いてみたヘボサンプルを貼ってみるテスト。
with Ada.Text_IO;
procedure Test is
 task type A_Task is
  entry Setup(Message: in String);
  entry Join;
 end A_Task;
 task body A_Task is
 begin
  Ada.Text_IO.Put_Line("* start!");
  accept Setup(Message: in String) do
   Ada.Text_IO.Put("* "); Ada.Text_IO.Put(Message); Ada.Text_IO.Put_Line("!");
  end Setup;
  loop
   select accept Join do Ada.Text_IO.Put_Line("* exit!"); end Join; abort A_Task;
   else Ada.Text_IO.Put("#"); delay 0.1;
   end select;
  end loop;
 end A_Task;
 type A_Access is access A_Task;
 A: A_Access;
begin
 Ada.Text_IO.Put_Line("go!"); A := new A_Task; A.Setup("setup");
 delay 1.0; A.Join; Ada.Text_IO.Put_Line("end!");
end Test;
NGNG
Win32で言えば、entryがCreateEventで、acceptがWaitForSingleObjectで、
selectがWaitForMultipleObjectsで、delayがSleepで、abortがExitThread…かな。
なおacceptの後にdoを続けた場合、そのブロックが終わるまで呼び出し元は待ってるようだ。
それとtask typeって形で型にしておけば、newするまで実行されない。
NGNG
with Ada.Text_IO;
procedure Test2 is
begin
 select
  delay 1.0;
 then abort
  loop
   Ada.Text_IO.Put("*");
   delay 0.1;
  end loop;
 end select;
end Test2;
条件を満たしたらthen abort以下の処理を強制中断するとか…こんな機能あっても使うのか?
RM読んでたら、並列処理関係はほんとのほんとに無駄に機能豊富。
424418
垢版 |
NGNG
>>421-422
ありがたい。助かるよ。
が、>>421のプログラムをそのままコンパして実行って見たが
やっぱりtask body A_Task 内のaccept setup()の所で止まる...
いやぁ、上で「acceptも試して見たがさっぱりだ」と書いたが同じだよ。
acceptに入った時点でプログラムが止まるんだ。無いと普通に動くんだけどねぇ。
しかもacceptの有無にかかわらず呼び出し元も止まるし。
コンパるときに何かオプション必要だっけ?
とりあえず今やらんとしていることは>>421を参考にできそうだ。ありがとう。
NGNG
>>424
んー…別にオプションも要らないけど…
環境は?こっちはMinGWの3.4.2@Windows2000
426418
垢版 |
NGNG
>>425
GNAT3.15p+gcc2.8.1@MandrakeLinux10.0也。
gcc3.4.2でやりたいんだけどね。うまくいかなくて。
まずはしっかりと環境を整えるべきだったか。
先にgcc3.4.2使えるようにするか...。
427デフォルトの名無しさん
垢版 |
NGNG
 
428デフォルトの名無しさん
垢版 |
NGNG
>>423
select-then abortはそれなりに便利だよ。

時間をかければかけるほど精度の高い解が得られる近似計算があって、
ただし時間制約(100msecとか、イベントが入ってくるまで)が来たら、
その時点までに得られた近似解を採用しなければならない、なんて
「タイムアウト」は、リアルタイムシステムには 割とよくある
問題領域だと思うけど。

「タイムアウト」がどんなOSでもソース・コンパチで書けるって、
かなり樂。
NGNG
>>428
ほうほう
430デフォルトの名無しさん
垢版 |
NGNG
>>396
確かに。

例えばメモリマップドのハードウエアをアクセスするなら、
CやC++よりもAdaのほうが確実で樂だしね。
ユーザ定義の固定小数点も使えるからA/DやD/Aなんかも直感的。
NGNG
GNATのprotected型、multi-read-exclusive-writeになってない気がする…
気のせいだろうか?単なるクリティカルセクションのような…
432デフォルトの名無しさん
垢版 |
NGNG
>>274
タイーフォ
NGNG
>>430
まじで?
俺GBAで使ってみたいんだけど、誰かやってみるやつはいないか?
NGNG
>>433
ARM向けクロスコンパイラ、ですか。
NGNG
YES!YES!YES!
NGNG
よくわからないデスケド、この辺?
http://www.mingw.org/MinGWiki/index.php/build%20a%20Win32%20x-compiler%20for%20Linux
…逆かも
437デフォルトの名無しさん
垢版 |
NGNG
AGE
NGNG
CLONE OF ADA sage !
439433
垢版 |
NGNG
とりあえず、コンパイルできたら報告するよ
440デフォルトの名無しさん
垢版 |
NGNG
>>439
がんがれ!
NGNG
>>439
GOGO
442433
垢版 |
NGNG
コンパイルできたヽ( ´ー`)ノ
手順まとめてみた
http://tinyurl.com/42wx4

この辺が参考になりますた

http://milky.way-nifty.com/nuzou/2003/12/cygwinarmgbazau.html
http://gba.imou.to/gcc.html

ただ、adaでコンパイルはまだ試してないorz
443418
垢版 |
NGNG
ようやくgcc3.4.2のgnat*がインストールできた...
初心者よ、
ttp://gcc.gnu.org/install/build.htmlを見る前に
INSTALL/build.htmlを見よう。
...インストールなんかで詰まるのは俺ぐらいか...

ちなみにgcc3.4.2だと>>421のプログラムも正常に動作。
GNAT3.15じゃなくgccを使おう。
...GNAT3.15でいいやと思うのは俺ぐらいか...

長かったor2
444デフォルトの名無しさん
垢版 |
NGNG
>>443
乙!
NGNG
もつかれ
446デフォルトの名無しさん
垢版 |
NGNG
Adaは宇宙開発にも使われてるのかな?
447デフォルトの名無しさん
垢版 |
NGNG
ada
NGNG
PL/Iと同じ轍を踏んだ言語
449デフォルトの名無しさん
垢版 |
NGNG
>>446
FedSat - Ada Inside
http://groups.google.co.jp/groups?selm=3dfc72d4%241%40iridium.webone.com.au
International Space Station
http://www.boeing.com/defense-space/space/power/iss.html
NGNG
>The language on the On Board Computer? Ada-95. Of course.
>
>The compiler? Gnat 3.13p

>"In space, no-one can press CTRL-ALT-DEL"
>
>But with Ada, you don't have to.

カコイイ。
451446
垢版 |
NGNG
>>449
ありがd。
やっぱり使われてたんだ!
452デフォルトの名無しさん
垢版 |
NGNG
こりゃえいだって既出ですか、そうですか
NGNG
454デフォルトの名無しさん
垢版 |
NGNG
>>449
おお
455デフォルトの名無しさん
垢版 |
NGNG
Beagle 2:
http://www.xgc.com/news/2000.htm
The Beagle 2 Mars lander, using ERC32 Ada, successfully separated
from Mars Express and started its descent to the red planet.
456デフォルトの名無しさん
垢版 |
NGNG
Atlas V:
http://www.ddci.com/programs_atlasv.shtml
Lockheed Martin Space Systems depends on TADS to develop modern,
object-oriented real-time flight control software for the new
Atlas V launch vehicle.

The maiden voyage of Lockheed Martin’s first Atlas V rocket
lifted off from Space Launch Complex 41 at Cape Canaveral on
August 12, 2002, freed from its earthly bonds by flight control
software created with DDC-I’s Tartan Ada Development System
(TADS).
457デフォルトの名無しさん
垢版 |
NGNG
こいつもAdaという噂。
http://www.nasda.go.jp/projects/rockets/gx/component_02_j.html#configuration
まあ1段目はロッキードだけど。

他のところはどうなんだろう?
458デフォルトの名無しさん
垢版 |
NGNG
アメリカではいろいろ使われてるんだな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況