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

■ このスレッドは過去ログ倉庫に格納されています
1名無しさんは伊達じゃない
垢版 |
NGNG
どうよ?
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
アメリカではいろいろ使われてるんだな
459デフォルトの名無しさん
垢版 |
NGNG
>>458
参考書もいっぱい出てるし、そうだろうな。
460デフォルトの名無しさん
垢版 |
NGNG
461デフォルトの名無しさん
垢版 |
NGNG
>>1
m9(^Д^)プギャー
NGNG
http://burks.brighton.ac.uk/burks/language/shoot.htm

すごい言われようだな(w
463デフォルトの名無しさん
垢版 |
NGNG
>>462
まあAda以外の言語にもすごいこといってるし
464デフォルトの名無しさん
垢版 |
NGNG
盛り上がってきたな!
NGNG
ADAはたぶん埋もれる言語の一つだと思う。
466デフォルトの名無しさん
垢版 |
NGNG
>>465
このスレがそのことを暗示しているような…
467デフォルトの名無しさん
垢版 |
NGNG
 
468はるな
垢版 |
NGNG
作り方分かりますか?
コンピュータが 0から 9までの数を 4つ, 順序付きで重複なく選ぶとする. プレイヤ(人間)は, この数列を当てるのだが, はずれた場合に提示されるヒントは次の通り.

正解の n番目の数を n番目に解答していれば, Hit と呼ぶ. Hit の個数がヒントとして提示される.
正解の n番目の数を m番目(n≠m)に解答していれば, Blow と呼ぶ. Blow の個数がヒントとして提示される.
NGNG
with Ada.Numerics.Discrete_Random,Ada.Text_Io,Ada.Integer_Text_Io,Ada.Calendar;
use Ada.Text_Io,Ada.Integer_Text_Io,Ada.Calendar;
procedure game Is
package R Is New Ada.Numerics.Discrete_Random(natural); use R;
type Four_Array is array(1..4)of Integer;
function Generate Return Integer is
seed:Generator;
begin
Reset(seed,Integer(Seconds(Clock)*100));
return Random(Seed) mod 10;
end Generate;
function Search(Target:Four_array;Seed:In Integer) Return integer Is
begin
for I in 1..4 loop
if Target(I) = Seed then
return i;
end if;
end loop;
return 0;
end Search;
procedure Initialize(computer:In out Four_array) is
begin
for I in 1..4 loop
computer(I):=-1;
end loop;
end initialize;
NGNG
procedure Decide(computer:in out Four_array) Is
int:Integer;
begin
Initialize(Computer);
for I in 1..4 Loop
loop Int:=Generate;exit when Search(computer,Int) = 0; end loop;
Computer(I):=Int;delay 0.01;
end loop;
end Decide;
procedure Read(Player:in out Four_array) is
int,Index:Integer:=1;Char:character;
begin
while Index <= 4 Loop
Get_Immediate(char);
case Char is
when '0'..'9' =>
Int:=Character'Pos(char)-16#30#;
if Search(Player,int) /= 0 then
New_Line;Put_Line("その値はもう使えません");
for I in 1..Index-1 loop
Put(Character'Val(Player(i)+16#30#));
end loop;
else Put(char);Player(index):=int;Index:=Index+1; end if;
when others =>
New_Line;Put_Line("0から9までの数値を入れてください");
for I in 1..Index-1 Loop
Put(Character'Val(Player(I)+16#30#));
end loop;
end case;
end loop;
end Read;
NGNG
function Compare(computer,Player:in Four_array) return Boolean is
Hit_Count:Integer:=0;
Blow_Count:Integer:=0;
Search_Result:integer;
begin
for I In 1..4 Loop
Search_Result:=Search(Computer,Player(i));
if Search_Result = I Then
Hit_Count:=Hit_Count+1;
elsif Search_result /= 0 then
Blow_Count:=Blow_Count+1;
end if;
end loop;
New_Line;
Put_Line("Hit : "&Integer'Image(Hit_count));
Put_Line("Blow : "&Integer'Image(Blow_count));
if Hit_Count = 4 then
return True;
end if;
return False;
end Compare;
computer,player:Four_Array;
begin
Decide(computer);
loop
Initialize(player);
Read(Player);
exit when Compare(computer,Player);
end loop;
end game;
NGNG
ここって改行いくつまで...?
まぁもっとうまいひとが書けばもっと短くなるだろうが。
473デフォルトの名無しさん
垢版 |
NGNG
474デフォルトの名無しさん
垢版 |
NGNG
>>24
> あの設計者は、懲役3年執行猶予2年くらいには相当するね。
執行猶予のほうが短いなんて…
NGNG
>>29
ぬるぽ
476デフォルトの名無しさん
垢版 |
NGNG
>>465
embedded?
477デフォルトの名無しさん
垢版 |
NGNG
>>475
ガッ!
478デフォルトの名無しさん
垢版 |
NGNG
(;´Д`)ハァハァ
NGNG
Adaって今更な感じもあってか、書籍やWebページが少ないね。
特に書籍にいたっては絶版になっているのか入手がむずい。

みなさんはどうやって情報を得てるんですか?
NGNG
RM読む
NGNG
A#+DirectXとかやったひといないのかな
482デフォルトの名無しさん
垢版 |
NGNG
>>481
そんなのがあるのか、知らなかったよ。
483デフォルトの名無しさん
垢版 |
NGNG
(;´д`)ハァハァ (;´Д`)ハァハァ (;゜Д゚ )ハァッハァッ :.` ;:.・∵ ゚ д:.`
484デフォルトの名無しさん
垢版 |
NGNG
すでにこれまでに話題なってそうな質問です。恐縮。
Adaが突然実装できなくなるとどんな飛行機が落っこちますか。
NGNG
? 工場から出荷できないんじゃない?
既に稼動してるのは落ちないと思うし。
05/01/22 02:06:43
保守〜
05/01/22 02:21:50
Mingw入れたら必要ないのに付いてきた。
488デフォルトの名無しさん
垢版 |
05/01/23 02:29:04
>>446
こないだタイタンに着地したホイヘンスも、Adaらしい。
http://www.crn.vnunet.com/analysis/1157756
489デフォルトの名無しさん
垢版 |
05/01/23 08:48:22
LogicaCMG designed the Huygens software using the hierarchical object-oriented design (Hood) method
and then developed it in Ada 83, a general-purpose programming language developed
by the US Department of Defence to help software designers develop large, reliable applications.

05/01/23 18:16:57
Nida
05/01/30 22:52:20
英語力不足でLovelaceがPut_Line("Hello, world!");から先に進めませんorz
現在のAda力も同レベル・・・日本語文献が欲しい…
492デフォルトの名無しさん
垢版 |
05/02/04 18:16:23
>>491
古いやつならあるぞ。
05/02/24 22:43:48
ほっしゅ。
494デフォルトの名無しさん
垢版 |
05/03/03 14:31:19
保守
495デフォルトの名無しさん
垢版 |
05/03/03 14:56:31
国防総省がAda作った背景何て言うんだっけ?

言語の統一の必要性の方じゃなくて、
プログラマが足りなくなるって事象を。
ソフトウェア危機だっけ?
それに対する回答が言語の統一だったような。
496デフォルトの名無しさん
垢版 |
05/03/12 18:30:28
Ada0Yはどうなったんだ?
05/03/12 19:22:01
>>496
tp://hp.vector.co.jp/authors/VA028375/ada/
ここお薦め。
498デフォルトの名無しさん
垢版 |
2005/03/22(火) 00:15:23
オブジェクト指向なの?
499デフォルトの名無しさん
垢版 |
2005/03/27(日) 10:48:07
>>1
どうだろうね
500デフォルトの名無しさん
垢版 |
2005/03/28(月) 15:11:32
ada
2005/03/30(水) 00:18:38
>>498
http://web.archive.org/web/20020605044428/http://www.tsujiken.ee.kogakuin.ac.jp/jada95.html
502デフォルトの名無しさん
垢版 |
2005/04/06(水) 13:03:49
?
2005/04/18(月) 12:46:28
hoshu
504デフォルトの名無しさん
垢版 |
2005/04/22(金) 17:50:19
使用者が少ないっぽいな
505デフォルトの名無しさん
垢版 |
2005/04/22(金) 21:45:29
実際の話、この言語で情報システムとか組んだことのある香具師いるのか?
506デフォルトの名無しさん
垢版 |
2005/04/30(土) 20:39:36
ほしゅ
507デフォルトの名無しさん
垢版 |
2005/05/11(水) 15:45:08
保守
2005/05/12(木) 05:03:14
gcc4.0で、無名アクセス型とそれに伴いクロージャ(関数内関数の持ち出し)が使えるようになってるが、祭りじゃないのか?
2005/05/12(木) 08:13:33
現況では、組み込みのリアルタイム処理しかadaを使っておいしいシステムはなさそう。
しかも、ある程度規模が大きいとか、変なCPUとかじゃないと利点も生かせない。(24BitCPUとか)
必要なところでは必要だけど、メジャーにはならんね。
510デフォルトの名無しさん
垢版 |
2005/05/13(金) 23:07:33
win版の統合開発環境はでるのかな?
2005/05/13(金) 23:12:43
>>510
既に沢山あるようだが、無料のはGPSぐらいしかないな…。
2005/05/14(土) 11:20:50
メインステートからexit出来ないのが不便だ
SIGTERM受けたときにexit(0)したいんだけど
誰か良い方法知りません?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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