米国国防省の標準高等 ..
417:デフォルトの名無しさん
04/10/16 11:17:01
>>416
Hello World程度ならこのスレの上の方にあるだろ
それ以上は逐次質問してくれい
…このスレ三人ぐらいはいそうなので俺もわからなくても誰か答えてくれるさ
418:デフォルトの名無しさん
04/10/16 13:46:40
じゃあ質問して見るか。
並列処理の制御ってどうやるの?
task,task body...をいくつか書いておけばそれらは同時に処理されるんだけど
勝手に処理が始まる。こちらで任意に処理を開始したり停止したりできない。
英語のサイトも見てacceptも試して見たがさっぱりだ。
誰かわかる?
...ああいま昔のレス見てたらlovelaceっていうAdaチュートリアルにも並列処理の事載ってるみたいだな。
そこを見るの忘れてた。当たって見るか。
419:デフォルトの名無しさん
04/10/16 14:59:42
ゲーム作りはC++やJAVAが主流だし、日本ではこの言語がどんな所で
使われてるのかさっぱり分からん。
日本語の参考書も見たことないし…
大学か趣味プログラミングが主流なのかな?
420:デフォルトの名無しさん
04/10/16 15:02:41
アメリカでも使ってるヤツ少ないんじゃないか?
421:デフォルトの名無しさん
04/10/16 15:23:27
今書いてみたヘボサンプルを貼ってみるテスト。
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;
422:デフォルトの名無しさん
04/10/16 15:28:36
Win32で言えば、entryがCreateEventで、acceptがWaitForSingleObjectで、
selectがWaitForMultipleObjectsで、delayがSleepで、abortがExitThread…かな。
なおacceptの後にdoを続けた場合、そのブロックが終わるまで呼び出し元は待ってるようだ。
それとtask typeって形で型にしておけば、newするまで実行されない。
423:デフォルトの名無しさん
04/10/16 16:29:31
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読んでたら、並列処理関係はほんとのほんとに無駄に機能豊富。
424:418
04/10/16 19:47:23
>>421-422
ありがたい。助かるよ。
が、>>421のプログラムをそのままコンパして実行って見たが
やっぱりtask body A_Task 内のaccept setup()の所で止まる...
いやぁ、上で「acceptも試して見たがさっぱりだ」と書いたが同じだよ。
acceptに入った時点でプログラムが止まるんだ。無いと普通に動くんだけどねぇ。
しかもacceptの有無にかかわらず呼び出し元も止まるし。
コンパるときに何かオプション必要だっけ?
とりあえず今やらんとしていることは>>421を参考にできそうだ。ありがとう。
425:デフォルトの名無しさん
04/10/16 23:08:40
>>424
んー…別にオプションも要らないけど…
環境は?こっちはMinGWの3.4.2@Windows2000
426:418
04/10/16 23:28:54
>>425
GNAT3.15p+gcc2.8.1@MandrakeLinux10.0也。
gcc3.4.2でやりたいんだけどね。うまくいかなくて。
まずはしっかりと環境を整えるべきだったか。
先にgcc3.4.2使えるようにするか...。
427:デフォルトの名無しさん
04/10/16 23:31:28
428:デフォルトの名無しさん
04/10/19 07:56:04
>>423
select-then abortはそれなりに便利だよ。
時間をかければかけるほど精度の高い解が得られる近似計算があって、
ただし時間制約(100msecとか、イベントが入ってくるまで)が来たら、
その時点までに得られた近似解を採用しなければならない、なんて
「タイムアウト」は、リアルタイムシステムには 割とよくある
問題領域だと思うけど。
「タイムアウト」がどんなOSでもソース・コンパチで書けるって、
かなり樂。
429:デフォルトの名無しさん
04/10/20 15:21:33
>>428
ほうほう
430:デフォルトの名無しさん
04/10/26 22:16:15
>>396
確かに。
例えばメモリマップドのハードウエアをアクセスするなら、
CやC++よりもAdaのほうが確実で樂だしね。
ユーザ定義の固定小数点も使えるからA/DやD/Aなんかも直感的。
431:デフォルトの名無しさん
04/10/27 04:29:46
GNATのprotected型、multi-read-exclusive-writeになってない気がする…
気のせいだろうか?単なるクリティカルセクションのような…
432:デフォルトの名無しさん
04/10/27 10:35:41
>>274
タイーフォ
433:デフォルトの名無しさん
04/10/27 14:34:29
>>430
まじで?
俺GBAで使ってみたいんだけど、誰かやってみるやつはいないか?
434:デフォルトの名無しさん
04/10/27 19:56:21
>>433
ARM向けクロスコンパイラ、ですか。
435:デフォルトの名無しさん
04/10/28 13:26:14
YES!YES!YES!
436:デフォルトの名無しさん
04/10/28 18:52:38
よくわからないデスケド、この辺?
URLリンク(www.mingw.org)
…逆かも
437:デフォルトの名無しさん
04/10/30 10:36:04
AGE
438:デフォルトの名無しさん
04/10/30 16:19:33
CLONE OF ADA sage !
439:433
04/11/02 16:43:11
とりあえず、コンパイルできたら報告するよ
440:デフォルトの名無しさん
04/11/02 17:30:23
>>439
がんがれ!
441:デフォルトの名無しさん
04/11/03 06:34:18
>>439
GOGO
442:433
04/11/03 16:48:20
コンパイルできたヽ( ´ー`)ノ
手順まとめてみた
URLリンク(tinyurl.com)
この辺が参考になりますた
URLリンク(milky.way-nifty.com)
URLリンク(gba.imou.to)
ただ、adaでコンパイルはまだ試してないorz
443:418
04/11/07 13:52:44
ようやくgcc3.4.2のgnat*がインストールできた...
初心者よ、
URLリンク(gcc.gnu.org)を見る前に
INSTALL/build.htmlを見よう。
...インストールなんかで詰まるのは俺ぐらいか...
ちなみにgcc3.4.2だと>>421のプログラムも正常に動作。
GNAT3.15じゃなくgccを使おう。
...GNAT3.15でいいやと思うのは俺ぐらいか...
長かったor2
444:デフォルトの名無しさん
04/11/07 18:14:41
>>443
乙!
445:デフォルトの名無しさん
04/11/07 19:20:35
もつかれ
446:デフォルトの名無しさん
04/11/13 17:53:52
Adaは宇宙開発にも使われてるのかな?
447:デフォルトの名無しさん
04/11/16 16:43:51
ada
448:デフォルトの名無しさん
04/11/16 17:18:08
PL/Iと同じ轍を踏んだ言語
449:デフォルトの名無しさん
04/11/17 00:07:40
>>446
FedSat - Ada Inside
URLリンク(groups.google.co.jp)
International Space Station
URLリンク(www.boeing.com)
450:デフォルトの名無しさん
04/11/17 12:14:47
>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.
カコイイ。
451:446
04/11/17 23:59:54
>>449
ありがd。
やっぱり使われてたんだ!
452:デフォルトの名無しさん
04/11/18 22:48:43
こりゃえいだって既出ですか、そうですか
453:デフォルトの名無しさん
04/11/19 23:16:35
ぷ
454:デフォルトの名無しさん
04/11/19 23:55:43
>>449
おお
455:デフォルトの名無しさん
04/11/20 00:18:10
Beagle 2:
URLリンク(www.xgc.com)
The Beagle 2 Mars lander, using ERC32 Ada, successfully separated
from Mars Express and started its descent to the red planet.
456:デフォルトの名無しさん
04/11/20 00:27:35
Atlas V:
URLリンク(www.ddci.com)
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:デフォルトの名無しさん
04/11/20 00:42:28
こいつもAdaという噂。
URLリンク(www.nasda.go.jp)
まあ1段目はロッキードだけど。
他のところはどうなんだろう?
458:デフォルトの名無しさん
04/11/20 20:40:27
アメリカではいろいろ使われてるんだな
459:デフォルトの名無しさん
04/11/21 17:42:33
>>458
参考書もいっぱい出てるし、そうだろうな。
460:デフォルトの名無しさん
04/11/22 09:28:24
461:デフォルトの名無しさん
04/11/23 14:27:52
>>1
m9(^Д^)プギャー
462:デフォルトの名無しさん
04/11/23 20:12:11
URLリンク(burks.brighton.ac.uk)
すごい言われようだな(w
463:デフォルトの名無しさん
04/11/24 14:51:06
>>462
まあAda以外の言語にもすごいこといってるし
464:デフォルトの名無しさん
04/11/26 15:09:12
盛り上がってきたな!
465:デフォルトの名無しさん
04/11/26 18:02:13
ADAはたぶん埋もれる言語の一つだと思う。
466:デフォルトの名無しさん
04/11/26 22:27:30
>>465
このスレがそのことを暗示しているような…
467:デフォルトの名無しさん
04/11/30 18:21:01
468:はるな
04/11/30 19:30:11
作り方分かりますか?
コンピュータが 0から 9までの数を 4つ, 順序付きで重複なく選ぶとする. プレイヤ(人間)は, この数列を当てるのだが, はずれた場合に提示されるヒントは次の通り.
正解の n番目の数を n番目に解答していれば, Hit と呼ぶ. Hit の個数がヒントとして提示される.
正解の n番目の数を m番目(n≠m)に解答していれば, Blow と呼ぶ. Blow の個数がヒントとして提示される.
469:作ってみたその1
04/12/01 00:02:43
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;
470:作ってみたその2/3
04/12/01 00:08:55
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;
471:作ってみたその3/3
04/12/01 00:09:44
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;
472:作ってみた人
04/12/01 00:11:01
ここって改行いくつまで...?
まぁもっとうまいひとが書けばもっと短くなるだろうが。
473:デフォルトの名無しさん
04/12/05 00:06:46
?
474:デフォルトの名無しさん
04/12/05 01:10:19
>>24
> あの設計者は、懲役3年執行猶予2年くらいには相当するね。
執行猶予のほうが短いなんて…
475:デフォルトの名無しさん
04/12/05 01:11:05
>>29
ぬるぽ
476:デフォルトの名無しさん
04/12/07 23:52:55
>>465
embedded?
477:デフォルトの名無しさん
04/12/09 13:30:08
>>475
ガッ!
478:デフォルトの名無しさん
04/12/10 18:33:23
(;´Д`)ハァハァ
479:デフォルトの名無しさん
04/12/20 00:05:18
Adaって今更な感じもあってか、書籍やWebページが少ないね。
特に書籍にいたっては絶版になっているのか入手がむずい。
みなさんはどうやって情報を得てるんですか?
480:デフォルトの名無しさん
04/12/20 02:32:29
RM読む
481:デフォルトの名無しさん
04/12/22 01:01:37
A#+DirectXとかやったひといないのかな
482:デフォルトの名無しさん
04/12/25 23:42:24
>>481
そんなのがあるのか、知らなかったよ。
483:デフォルトの名無しさん
04/12/30 19:03:17
(;´д`)ハァハァ (;´Д`)ハァハァ (;゜Д゚ )ハァッハァッ :.` ;:.・∵ ゚ д:.`
484:デフォルトの名無しさん
04/12/31 21:59:02
すでにこれまでに話題なってそうな質問です。恐縮。
Adaが突然実装できなくなるとどんな飛行機が落っこちますか。
485:あーげあし〜
05/01/04 12:15:24
? 工場から出荷できないんじゃない?
既に稼動してるのは落ちないと思うし。
486:デフォルトの名無しさん
05/01/22 02:06:43
保守〜
487:デフォルトの名無しさん
05/01/22 02:21:50
Mingw入れたら必要ないのに付いてきた。
488:デフォルトの名無しさん
05/01/23 02:29:04
>>446
こないだタイタンに着地したホイヘンスも、Adaらしい。
URLリンク(www.crn.vnunet.com)
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.
490:デフォルトの名無しさん
05/01/23 18:16:57
Nida
491:デフォルトの名無しさん
05/01/30 22:52:20
英語力不足でLovelaceがPut_Line("Hello, world!");から先に進めませんorz
現在のAda力も同レベル・・・日本語文献が欲しい…
492:デフォルトの名無しさん
05/02/04 18:16:23
>>491
古いやつならあるぞ。
493:デフォルトの名無しさん
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はどうなったんだ?
497:デフォルトの名無しさん
05/03/12 19:22:01
>>496
URLリンク(hp.vector.co.jp)
ここお薦め。
498:デフォルトの名無しさん
05/03/22 00:15:23
オブジェクト指向なの?
499:デフォルトの名無しさん
05/03/27 10:48:07
>>1
どうだろうね
500:デフォルトの名無しさん
05/03/28 15:11:32
ada
501:デフォルトの名無しさん
05/03/30 00:18:38
>>498
URLリンク(web.archive.org)
502:デフォルトの名無しさん
05/04/06 13:03:49
?
503:デフォルトの名無しさん
05/04/18 12:46:28
hoshu
504:デフォルトの名無しさん
05/04/22 17:50:19
使用者が少ないっぽいな
505:デフォルトの名無しさん
05/04/22 21:45:29
実際の話、この言語で情報システムとか組んだことのある香具師いるのか?
506:デフォルトの名無しさん
05/04/30 20:39:36
ほしゅ
507:デフォルトの名無しさん
05/05/11 15:45:08
保守
508:デフォルトの名無しさん
05/05/12 05:03:14
gcc4.0で、無名アクセス型とそれに伴いクロージャ(関数内関数の持ち出し)が使えるようになってるが、祭りじゃないのか?
509:デフォルトの名無しさん
05/05/12 08:13:33
現況では、組み込みのリアルタイム処理しかadaを使っておいしいシステムはなさそう。
しかも、ある程度規模が大きいとか、変なCPUとかじゃないと利点も生かせない。(24BitCPUとか)
必要なところでは必要だけど、メジャーにはならんね。
510:デフォルトの名無しさん
05/05/13 23:07:33
win版の統合開発環境はでるのかな?
511:デフォルトの名無しさん
05/05/13 23:12:43
>>510
既に沢山あるようだが、無料のはGPSぐらいしかないな…。
512:デフォルトの名無しさん
05/05/14 11:20:50
メインステートからexit出来ないのが不便だ
SIGTERM受けたときにexit(0)したいんだけど
誰か良い方法知りません?
513:デフォルトの名無しさん
05/05/14 18:39:44
>>512
「メインステート」の意味がよくわからないけど、returnでだめなら例外投げるとか?
514:デフォルトの名無しさん
05/05/19 14:42:35
Ada05
515:デフォルトの名無しさん
05/06/03 23:46:19
ループを次に進めるような奴は無いんだろうか…?
DelphiだとContinueみたいな。
516:デフォルトの名無しさん
05/06/04 01:47:31
>>515
ラベル付きexitが使えるので、end loopの直前まで飛べばいい。
517:515
05/06/05 10:51:50
>516
ありがとうございます。
exitがラベル取れなかったので(exit_statement ::=exit [loop_name] [when condition];)
gotoに読み替えて、end loop;直前まで飛んで解決しました。
518:デフォルトの名無しさん
05/06/05 16:54:53
おお、技術的な会話をしてるのか
519:516
05/06/05 20:01:25
あー、悪い。
exitはループ以外の名前やgoto用ラベルは取れなかったっけね。
begin〜endにも名前が付けられるのだから、begin〜endもexitで脱出できていいと思うのだけどなあ。
520:515
05/06/08 22:33:42
>516
どうせなら、やっぱり全部exitで出れる様に統一して欲しいですよねぇ。
begin...end;を出れるだけでも変わってくるのだけどなぁ。
521:デフォルトの名無しさん
05/06/09 00:29:49
常に一回だけ素通りする、loop 〜 exit; end loop; でくくるとか。
522:デフォルトの名無しさん
05/06/25 22:42:48
ほっしゅ。
523:デフォルトの名無しさん
05/07/21 22:55:42
ほ
524:デフォルトの名無しさん
05/07/26 09:31:15
し
525:デフォルトの名無しさん
05/07/27 00:19:45
ひ
526:デフォルトの名無しさん
05/07/27 22:36:25
ゅ
527:デフォルトの名無しさん
05/07/27 23:34:24
OY for 95がインスコできないよorz
gnatmakeして置き換えで何故駄目なんだ。。。
それ以上のインストール方法も書いてないし。。。
助けてぇ、エロい人ぉ
528:デフォルトの名無しさん
05/07/28 15:56:16
>>527
gcc 4.0.0以降は、Ada.ContainersもAda.Directoriesも標準装備。
529:デフォルトの名無しさん
05/07/28 16:20:20
ところで、配列の初期化でothers => <>を使ったら、要素数分空ループが生成されているような…。
除去してくれないのかgcc 4.0.1…。
subtype T is String(1..10);
S : aliased String := T'(others => <>);
なんでこんな書き方してるのかというと、aliasedつけて'Accessで渡そうとすると、初期化されてないってエラー?が出るから…。
530:527
05/08/11 22:51:13
>528
ありがとうエロイ人!
今までGNAT使ってたけどやっぱgccに乗り換えるよ。
そして亀レスすまん。
531:デフォルトの名無しさん
05/08/12 09:16:10
"GNAT"としてパッケージ化がされてないってだけで、GNATとgccの中のAdaは同じものに思えるのは…気のせいではあるまい。
532:デフォルトの名無しさん
05/08/15 16:37:09
あはは
533:デフォルトの名無しさん
05/08/29 11:38:04
ふと思ったんだけど、windowsで*.dllロードしたいときはどうするんだろう?
そのままImportしても出来ないし。。。
534:デフォルトの名無しさん
05/08/29 20:21:27
>>533
libgdi32.aみたいなのをリンクしても駄目?
-lgdi32
535:デフォルトの名無しさん
05/08/30 22:54:04
>>534
出来たよ、ありがとう。
つーか、リンカオプションまとめてる所とかないかな。
あの辺がさっぱり解らん。
536:デフォルトの名無しさん
05/09/15 20:51:11
GNAT GPL 2005パッケージ出たね。
URLリンク(libre2.adacore.com)
gcc見る限り多態コンストラクタや拡張returnはまたパッチが出て無いようではあるのだけれど、実装済みなのだろうか?
ベースがgcc 3.4.5というのがまた。どうせなら4.0.2ベースに…。
537:デフォルトの名無しさん
05/09/15 20:51:41
えーい、どうせだからあげ、あげ。
538:デフォルトの名無しさん
05/09/15 21:11:50
gccのスナップショット見る限りは、新機能パッチは最新ver(いまだと4.1.0)にしか適用されていないので、3.4.5ベースでAda2005というのはAdaCoreのカスタムなんだろうが…。
ぐだぐだ言ってないで落としてみればいいのだろうが、登録がw
539:デフォルトの名無しさん
05/10/05 10:00:03
STLの元になったAdaのコンテナライブラリってソース出ているの?
540:デフォルトの名無しさん
05/10/11 00:27:57
>>539
知らないなあ…。
逆にSTLをバックポートしたようなものは幾つか見かけたが。
541:デフォルトの名無しさん
05/10/11 00:31:31
ところで、interfaceへのダウンキャストができないのだが…そういうものなのか?
Java-like interfaceなんて言って、そのつもりで使ってると、困るんだが…。
542:デフォルトの名無しさん
05/10/12 14:39:57
task内でなくとも
select
delay xx.x;
〜
then abort
〜
end select;
が使えることに驚き。
そんな今日。
ついでにage。
543:デフォルトの名無しさん
05/10/12 15:25:17
>>542
>>423
exit when なんていう構文をさっぱり綺麗に忘れていた今日この頃。
そしてsage
544:デフォルトの名無しさん
05/10/12 21:02:30
次スレではタイトル半角希望。
そして次スレとC++0xはどちらが早いだろうか…
545:デフォルトの名無しさん
05/10/30 13:51:47
保守
546:デフォルトの名無しさん
05/11/13 10:32:48
保守ついでに
<チラシの裏。>
307でgwindowsがMinGWで動かないって書いてあるけど、展開してADA_*_Path通す(”<展開したどこか>\bindings”)だけで此方では一応動いた。
gnatcomも同様。(よくは知らないが)
ただ文字列関係がANSIのままなので2k, xpではcoding\*_unicode.ad?で置換した方がよさ気。
私みたいなmeユーザには関係のない話だけど。
</チラシの裏。>
ところで、誰かRendez-vons教えてください。
何の事だかさっぱりわからない。
547:デフォルトの名無しさん
05/11/14 21:00:21
>>546
entryで待ち合わせて一時的に合流処理、っぽい。
Javaなんかのsynchronizedとは逆の考え方っぽい。
共有資源に対して直接排他アクセス権をどうこうするのではなく、
共有資源を扱うガイド役のタスクがあって、
そいつがあちこちからの要求に付き添って行動することで
同時にアクセスされないことを保証してる、っぽい。
…間違ってたらすまん。
548:デフォルトの名無しさん
05/11/17 19:44:08
なんでこんな終わった言語をいつまでもGCCはサポートするん?
549:デフォルトの名無しさん
05/11/17 23:01:49
終わって無いから。
550:デフォルトの名無しさん
05/11/18 02:37:35
adaの利点って何ですか?
例えばD言語やC++なんかと比べてアドバンテージってある?
551:デフォルトの名無しさん
05/11/18 23:05:01
アドバンテージが必要か?
552:デフォルトの名無しさん
05/11/19 01:35:43
>>550
おもいっきし書くのが面倒くさくて
しかもコンパイラが厳しすぎること。
いや、マジで。
553:デフォルトの名無しさん
05/11/19 12:35:19
>>552
つまりアフォには書けない ⇒ バグが減る、ウマー
ってことか。(w
554:デフォルトの名無しさん
05/11/20 00:16:04
…Σ (゚Д゚;)さてはお前、頭いいな。
Adaでアドバンテージと言えば、並行処理を挙げないと。
555:デフォルトの名無しさん
05/11/20 01:18:06
sourceforge.netにAda関連のプロジェクトがあるね
2005年になってから増えたようだ
コンテナライブラリもいろいろあるようだが皆使ってる?
Booch Componentsなんてどうよ?
556:デフォルトの名無しさん
05/11/20 19:08:11
>>553
俺のようなアフォでも苦労してコンパイルが通る頃には
なかなかバグの無いコードになってるところとかな。
Adaにしかないような機能はいっぱいあるけど
アドバンテージとするなら「コンパイラの厳しさ」が勝ると思う。
557:デフォルトの名無しさん
05/11/21 20:45:56
コンパイルといえば
GCC3.4.2でコンパイルしたら実行ファイルのサイズが202KBだったんだが
GCC4.0.1でコンパイルしたら29KBになってワロス
何もオプション変えてないのにな
素敵コンパイラ(´∀`)
558:デフォルトの名無しさん
05/11/21 20:59:33
・何かの拍子でデバッグシンボルを削除した
・知らないうちにlibgnat-4.0.dllを使うようになってる
どっちかじゃないか?
559:デフォルトの名無しさん
05/11/21 21:02:48
>>555
コンテナは標準のAda.Containersができたから、
STLで言うところのalgorithmを共通化するためには
関数のシグネチャ(Adaなんで命名規則は違ってていい)が
Ada.Containersと互換じゃないと…。
Ada.Containersも微妙に肥大だったり小回りが利かなかったりするんで
互換の軽量コンテナがあればいいんだが。
560:デフォルトの名無しさん
05/11/21 22:20:39
>>558
> ・知らないうちにlibgnat-4.0.dllを使うようになってる
ディストリビューションごと変えた(だけな)んで多分こっちだワ
lddで見てみたらリンクしてた
561:デフォルトの名無しさん
05/12/01 18:44:12
declare
torf:boolean:=false;
begin
put_line(torf'img);
torf:=boolean'value("true");
end;
↑これが通ってちゃんと動く
さらにAdaのboolean型は列挙型であるため
ユーザー定義の列挙型でも可能
他にこれができる言語ってある?
562:デフォルトの名無しさん
05/12/01 20:39:28
program testBool;
var
torf: boolean;
begin
torf := false;
writeln(torf);
readstring('true', torf);
writeln(torf);
end.
program testEnum;
type
userEnum = (melon, apple, orange);
var
userEnumV: userEnum;
begin
userEnumV := melon;
writeln(userEnumV);
readstring('apple', userEnumV);
writeln(userEnumV);
end.
563:デフォルトの名無しさん
05/12/01 21:26:01
PascalはRead/Writeで列挙型が入出力できる。文字列とのスマートな変換は無かったと思う。DelphiならRTTIで可能。
あとはJavaだのC#だのVM系はできて当然なんじゃないかな?
でもAdaのが一番手軽で便利っぽい。
564:デフォルトの名無しさん
05/12/01 21:28:15
…ていうか562はPascalか…処理系によってはあるのかもなあ。
Delphiのリファレンスには562の使い方のReadStringは無かった。
565:デフォルトの名無しさん
05/12/02 08:04:35
JDK1.5
enum Foobar { FOO, BAR, BAZ }
class FoobarSample {
public static void main(String[] a) {
boolean b = Boolean.valueOf("true");
System.out.println(b);
Foobar fb = Foobar.valueOf("FOO");
System.out.println(fb);
}
最近のスクリプト系の言語だと連想配列(ハッシュ)使うかな?
566:デフォルトの名無しさん
05/12/03 20:48:42
これどうですか?
Ada―移植性とプログラミング・スタイル
URLリンク(www.amazon.co.jp)
567:デフォルトの名無しさん
05/12/04 00:43:52
1989年かー。
Ada2005どころかAda95もまだだなー。
でもAdaは他の言語と違って、言語の底にある考え方を理解して無いと、何もできないっぽい(←うけうり)ので、今も売られてる本があるだけマシか…?
568:デフォルトの名無しさん
05/12/04 02:56:04
レオン:エイダ〜
エイダ:レオ〜ン
シェリー:うぅ・・・
エイダ:Gウィルスが・・・
レオン:エイダ〜
G最終形態:グチャグチャ
自爆シークエンス:あぼ〜ん
569:デフォルトの名無しさん
05/12/04 03:19:06
AdaでOracleにアクセスできる処理系ってありますか?
AdaでWebアプリケーションを作成することはできますか?
570:デフォルトの名無しさん
05/12/04 04:03:14
>>569
Webアプリは単にCGIなら標準入出力が扱える言語ならなんでもできるので勿論Adaでも可能。
サーバー向けにgccでクロスコンパイラ作ればいい。
JSPだのASP.NETだのは、JGNATやMGNATでがんばれ。
Oracleは、商用Adaなら普通にバインディングついてくるっぽい。
571:デフォルトの名無しさん
05/12/05 21:11:19
>566
どうだったかなぁ。
お勧めはこれだけど。
URLリンク(www.amazon.co.jp)
在庫切れか。
572:デフォルトの名無しさん
05/12/23 22:25:25
h
573:デフォルトの名無しさん
05/12/28 21:15:15
o
574:デフォルトの名無しさん
05/12/29 06:23:55
バグの出にくい言語仕様を考える。
スレリンク(tech板)
このスレのアイデアの半分ぐらいは既にAdaにあるんだよなあ…。
> そうすると、制約だらけでウザいだけの言語になって、さらに既存の言語の拡張という形はとれなくなるが。
までピッタシカンカンだしなあ…。
575:デフォルトの名無しさん
06/01/07 19:02:40
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure NSort is
N : Natural;
begin
Get(N);
declare
Used : array (1 .. N) of Boolean := (others => False);
procedure Rec(F : Natural; Par : not null access procedure) is
begin
if F < N then
for I in Used'Range loop
if not Used(I) then
declare
procedure P is
begin
Par.all; Put(I, 2);
end;
begin
Used(I) := True; Rec(F + 1, P'Access); Used(I) := False;
end;
end if;
end loop;
else
Par.all; New_Line;
end if;
end Rec;
procedure Prompt is begin Put('>'); end Prompt;
begin Rec(0, Prompt'Access); end;
end NSort;
576:デフォルトの名無しさん
06/01/19 21:02:18
age
577:デフォルトの名無しさん
06/02/05 11:33:10
すいませんどなたかlimitedが何なのか教えてもらえませんか
一応RM95読んだんですけど生半可な英語力でわかりませんでした
578:デフォルトの名無しさん
06/02/05 14:43:56
>>577
限られた、とか、限定の、とか、限定版、とかそういう意味で、
Adaでの意味は「代入禁止」。
579:デフォルトの名無しさん
06/02/06 00:43:16
なるほど。tnx
580:デフォルトの名無しさん
06/02/14 10:30:27
保守するだけじゃなんなので、教えて君。
つか、見てる人何人いるんだろう?
とりあえず、Adjustで何をしたらいいのか教えてください。
代入時に呼び出されてるっぽいことはわかるんだけど。
代入直前なのか直後なのか、引数は代入される側なのかする側なのか、とか。
581:デフォルトの名無しさん
06/02/14 11:47:22
このスレの誰か入門書を書いてくれー。
582:デフォルトの名無しさん
06/02/14 13:08:30
「RM嫁」とか、「とりあえずそれっぽいの書いて、コンパイルエラーを消してけ」としか。
RMは非常に読みにくいが、コンパイルエラーは親切。
「初心者の初心者による入門書」なら書けるけど、、、読んでも得るもの少ないよ?
583:デフォルトの名無しさん
06/02/14 20:35:12
>>580
oopweb.com
URLリンク(oopweb.com)
とかどうだ。
コピーコンストラクタのようなものと書かれてはいるが
584:デフォルトの名無しさん
06/02/14 21:34:42
>>580
a := b;としたらAdjust(a);が呼ばれる。
例えば中にポインタがあったりして、その中身まで複写しないと
いけないようなケースでコピー後の調整を行うのがAdjust。
全部コピーして回るC++のコピーコンストラクタとはちょと違う。
type a is new Controlled with record x : access Work_Area; y: Integer; end;
procedure initialize(obj:in out x) is begin obj.x := new Work_Area; end;
procedure Free is new Unchecked_Deallocate(...);
procedure finalize(obj:in out x) is begin Free(obj.x); end;
とすると必要なAdjustは
procedure adjust(obj:in out x) is begin obj.x := new Work_Area'(obj.x.all); end;
x,yとも値は勝手にコピーされるけど、xは中身まで複製しないとその後共有してしまうしFinalizeで二重解放になってしまう。
585:デフォルトの名無しさん
06/02/14 22:04:25
なるほど、「複製」ではなく「調整」か
586:580
06/02/14 23:33:15
>>583-584
ありがとう!
とりあえず代入の際の補助と理解しといた。
587:デフォルトの名無しさん
06/02/15 01:14:38
>>581
切実
588:デフォルトの名無しさん
06/02/15 23:44:59
amazonあたりでAdaの洋書を買おうとか思うんだがお薦めある?
589:デフォルトの名無しさん
06/02/27 09:53:30
URLリンク(www.macada.org)
このへん使ってる人っている?
590:デフォルトの名無しさん
06/03/02 00:58:34
>>589
URLリンク(libre2.adacore.com)
のppc-darwinを使ってる。
591:デフォルトの名無しさん
06/03/02 01:09:03
>>588
いまなら
Programming in Ada 95:
www.amazon.com/gp/product/0201342936
Ada As A Second Language:
www.amazon.com/gp/product/0070116075
もうすこししたら
Programming in Ada 2005 with CD:
www.amazon.com/gp/product/0321340787
co.ukだと出版がJune 30, 2006と書いてあるけど,
著者もまだ予定を出版社からきいてないみたいだからデマかも。
592:デフォルトの名無しさん
06/03/02 01:35:23
>>588
とりあえず、
Object Oriented Programming in Ada95
URLリンク(burks.bton.ac.uk)
とか
Ada for Software Engineers
URLリンク(stwww.weizmann.ac.il)
なら,もと有料だったのがタダ。
特に、あとのBen-Ariのは,RM95の解説にもなってるのでお薦め。
昔これ読んで、やっとStreamが理解できた。
593:デフォルトの名無しさん
06/03/16 11:11:36
そろそろ保守
594:デフォルトの名無しさん
06/03/28 04:30:58
ほす
595:デフォルトの名無しさん
06/04/06 05:04:02
AdaってGPLなんだよね
それさえなければな
596:デフォルトの名無しさん
06/04/06 08:17:58
GNATがGPLなだけで、他の有償コンパイラはあるけど?
ちょっと検索すれば一杯出てくる。IBMとかも出してるし。
597:デフォルトの名無しさん
06/04/08 21:46:30
あれ?コンパイラのGPLも感染するんだっけ?
598:デフォルトの名無しさん
06/04/08 22:17:54
GNATつかうとGPL汚染されるはず。
リンクされるライブラリの問題?
599:デフォルトの名無しさん
06/04/08 22:37:34
ライブラリの問題で、コンパイラ自体は、エディタとかと同じ扱いだったはず。
600:デフォルトの名無しさん
06/04/08 22:59:47
>GNATつかうとGPL汚染されるはず。
ブルブルガタガタ
601:デフォルトの名無しさん
06/04/09 00:35:26
libgnat.aがGPLだしねえ。って震えるほどか?
あとバイナリ配らないことにすればGPLにする必要もないわけで。
602:デフォルトの名無しさん
06/04/09 14:41:12
バイナリ配らないプログラムにどんな意味が?
603:デフォルトの名無しさん
06/04/09 14:46:17
相手が非Windowsだったらgccぐらい入ってるだろうから、makeしてくれ、と。
あとCGIとかもバイナリは「配布」する必要が無い。
ソースはGPLとは矛盾しない別ライセンスにして、GPLのバイナリと一緒に公開してもいいわけで。
…Adaの問題というかgcc使う限りそうなんだけどな。
gccが嫌でそれでもAdaを使いたいなんて意思がある奴はどっかの製品買ってるだろうし、こんなのでごねてるのはgccがGPLでなくても結局使わないとも思うが。
604:デフォルトの名無しさん
06/04/09 15:00:35
gcc は関係ないでしょ。gcc を使っても GPL に汚染されない言語もある訳だし。
605:デフォルトの名無しさん
06/04/09 15:14:18
そりゃ、ラインタイム全部用意できればねえ。
MinGW用のwindows.hとインポートライブラリなんかはGPLじゃないので、それだけで書いたらGPL以外にできるんだけども。
606:デフォルトの名無しさん
06/04/15 09:30:31
Cからimportすれば別だけどAdaでfork出来ない、つまり別プロセス立てられないよね
サーバーアプリケーションとかデーモンを作るときはどうするんだ?
サーバーアプリはtaskでいいかもしれんが
607:デフォルトの名無しさん
06/04/16 00:53:52
あれ?そういえば標準ライブラリに別プロセス実行機能が無いね。
やっぱ組み込みまでターゲットとかそんな理由なんだろうか。(GNAT.OS_Libにspawnの宣言はあるけど)
608:デフォルトの名無しさん
06/04/28 22:45:32
保守というかチラシの裏:begin
図書館で検索したら一応4冊のAdaの本があった。
日本語1冊、英語3冊。
日本語のは出版が古くAda83で、さらにサンプルが少なかったので、英語の一冊を借りてきた。
さて、GWはこいつと格闘するか。
end 保守というかチラシの裏;
609:デフォルトの名無しさん
06/05/04 04:53:25
GPS は凄いけど作るものが無い。
どこかで Adaプログラマ募集してないかな。
内職時給800円くらいでおk。
610:デフォルトの名無しさん
06/05/04 05:25:49
GPSは2.0代のを見てしょぼいと思ったが
GNAT GPL 2005のほうのGPS 3.0インストールしてみたら凄かった。
更にVS統合が出てた。
URLリンク(www.martincarlisle.com)
仕事は……それこそ軍隊にでも雇われないと、内職に出すようなのは無いんじゃないか……。
開発速度を犠牲にしても堅牢性を追求するAdaの姿勢は、一般企業が求めてるものとは違う気がするし、何より日本では知名度が無い。
つーか、仕事あるなら俺を雇ってくださいお願いします。
611:デフォルトの名無しさん
06/05/04 11:28:48
仕事があるとしても新規開発じゃなくて
過去Adaがポッとで始めたときに物珍しさ?で作られたものの保守くらいだろうね
大概C++で書き直されてるんじゃないかと思うけど
612:デフォルトの名無しさん
06/05/13 22:40:35
ほしゅ
613:デフォルトの名無しさん
06/05/13 23:51:08
新参ですが、エイダは何が得意なんですか?
614:デフォルトの名無しさん
06/05/14 00:19:00
数学と競馬が得意ですわ
615:デフォルトの名無しさん
06/05/14 00:40:15
多次元配列を扱うサブルーチンが書きやすい。
616:デフォルトの名無しさん
06/05/14 06:43:58
delphiみたいなradツール作ってよ。
617:デフォルトの名無しさん
06/05/14 16:04:50
>>616
GWindows
…Delphiの足元どころか一般的に想像されるGUIツールの水準にもとかそういう話はこの際おいといてくれ。
618:デフォルトの名無しさん
06/05/16 00:02:20
Adaで業務システム組んだことのある奇特な方いますか?
619:デフォルトの名無しさん
06/05/24 22:50:05
GWindowsがDelphiライクに使えればいいのになぁ、無理か。
GtkAdaは、、、どっちもどっちか。
620:デフォルトの名無しさん
06/06/08 12:21:50
h
621:デフォルトの名無しさん
06/06/14 21:09:21
GNAT GPL 2006キター
622:デフォルトの名無しさん
06/06/14 21:37:56
マジだー!!!!ktkr!!!!!
623:デフォルトの名無しさん
06/06/17 21:57:22
保守
と、チラシの裏。
さて、GNAT GPL 2006入れたらコンパイルできなくなったぞ、と。
>Ada compiler not installed on this system
orz
環境変数かな。
624:デフォルトの名無しさん
06/06/20 17:31:12
インストール時にPATHに追加するか聞いてくるくせに、追加しないかダメみたいだ。なんじゃそら。
私のとこもgcc-4.1いれてたので、そっちが起動されて混乱してた
625:デフォルトの名無しさん
06/06/22 01:07:10
>>591
>Programming in Ada 2005 with CD:
>www.amazon.com/gp/product/0321340787
届いた!
626:デフォルトの名無しさん
06/06/22 02:11:22
>>625
うぉ、うらやまし。
AdaCoreにある.pdf以上のこと、書かれてる?
627:デフォルトの名無しさん
06/06/22 03:45:22
CreateGame〜陸海空オンライン〜
次世代新基軸MMO製作プロジェクト始動!
PG大募集!力あるものだけね。
よろすく
628:デフォルトの名無しさん
06/06/22 08:51:29
>>624
Windows?
今LinuxにインストールしたけどPATHに追加するかなんて聞かれなかった
629:623
06/06/22 09:26:43
俺も聞かれなかった@ppc-darwin
手作業で追加しろ、とは言われたけど。
結局、gccが見つけてくれなかったのはPATHの表現が原因だった。
公式の表記には従っとくものだと思った。
630:デフォルトの名無しさん
06/06/22 23:09:51
>>628-629
Yes, Windowsです。
631:デフォルトの名無しさん
06/06/22 23:40:17
GPSで、TABで3文字インデントを行うような設定どっかにないかな……
Ctrl+/で補完される基準もよくわからん
632:デフォルトの名無しさん
06/06/23 01:26:41
宣言関係は2文字インデント、処理が3文字インデントだっけか。
何かに乗ってたなぁ、何だっけか。。。
633:デフォルトの名無しさん
06/06/30 12:58:34
拡張リータン構文はどうやって使うの?
return ... do 〜 end return;内とそれが帰った先の両方で
system.address_image 使って変数のアドレスが同じ(= return 時のコピーが行われない)ようだということは確認できたけど
↓のようにしたらアドレスは同じでも中身のデータが壊れてましたよ?
俺使い方間違ってる?
function test return string is
str:string(1..10):=(others=>'n');
begin
return ret_str:string(str'range) do
for i in str'range loop
ret_str(i):=str(i);
end loop;
end return;
end test;
634:デフォルトの名無しさん
06/06/30 21:06:25
>>633
サイズ可変な型に関しては怪しいらしい。
URLリンク(www.adacore.com)
>subtype is constrained and 〜
もしかControlledもダメか?きついな。
635:デフォルトの名無しさん
06/06/30 21:49:38
Ada用のx64用コンパイラはありませんか?
636:デフォルトの名無しさん
06/06/30 22:10:28
>>635
gccを自分でビルドすれ
637:デフォルトの名無しさん
06/07/01 00:15:10
x64で動作するコンパイラじゃなくて
x64ネイティブバイナリを吐き出すコンパイラって意味じゃないの?
gccのAdaって対応してたっけ?
638:デフォルトの名無しさん
06/07/01 15:32:09
そう言われると不安だな……。
AonixやIBMなら売ってそうな気もする。知らんが。
639:デフォルトの名無しさん
06/07/01 23:50:35
>>633
limitedじゃないやつに対してもコンパイラ内部エラーがでた。
実装されたばかりの機能だから、バグバグみたいだ……。
not nullなんかもgcc 4.0.0直後はgenericと混ぜるとすぐ落ちてたしな……。
640:デフォルトの名無しさん
06/07/01 23:51:53
補足、Limited_Controlledを拡張returnで返そうとするとまだ実装されてませんとかでる。
641:デフォルトの名無しさん
06/07/14 19:12:19
拡張リターンヤバいマジヤバい
privateなrecord型のメンバー変数のアクセス型返せる上に
それやるとコンパイル時にもランタイム時にもエラーにならない
そして普通に中身書き換えられる
>>640
limited_controlled型は拡張リターンでなくてもエラーにならないか?
そして保守
642:デフォルトの名無しさん
06/07/15 01:55:07
>>641
普通のリターンでエラーになるのは当たり前なんですよ。コピーができないのがlimited型だから。
ただ、拡張リターンは「コピー無しに値を返せる」わけで、limited型にも使えるのがウリのひとつだった筈。
643:デフォルトの名無しさん
06/07/26 12:32:11
GNAT GPL 2006アップデートされてる?
libre2.adacore.comの日付がJul 24, 2006になってるけど
644:デフォルトの名無しさん
06/07/30 02:22:56
DLしなおしてみたが、gdbの日付が変わっているだけだった。しょぼん。
645:デフォルトの名無しさん
06/07/30 02:58:21
GNAT GPL 2006だとimited withしてもtask typeが見えるようにならないみたいなんだが、
これって仕様通りなのかな?
実験してたらGNAT落ちるし。
package Class_As is
type Hog
646:デフォルトの名無しさん
06/07/30 03:00:29
途中でおくちゃった
-- class_as.ads
limited with Class_Bs;
package Class_As is
type Class_A is tagged record
B : access Class_Bs.Class_B;
Foo : access String;
end record;
procedure Hoge(O : in out Class_A);
end Class_As;
-- class_as.adb
with Class_Bs;
package body Class_As is
procedure Hoge(O : in out Class_A) is
begin
O.B := new Class_Bs.Class_B;
end Hoge;
end Class_As;
647:デフォルトの名無しさん
06/07/30 03:01:52
-- class_bs.ads
limited with Class_As;
package Class_Bs is
type Class_B is limited private;
private
task type Class_B is
entry Hoge;
end Class_B;
end Class_Bs;
-- class_bs.adb
with Class_As;
package body Class_Bs is
task body Class_B is
begin
accept Hoge;
end Class_B;
end Class_Bs;
task typeが見えないなら1度privateで宣言したらどうなるか実験してたら、
コンパイル中にGNAT落ちるし。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5495日前に更新/151 KB
担当:undef