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

■ このスレッドは過去ログ倉庫に格納されています
1名無しさんは伊達じゃない
垢版 |
NGNG
どうよ?
2005/05/13(金) 23:12:43
>>510
既に沢山あるようだが、無料のはGPSぐらいしかないな…。
2005/05/14(土) 11:20:50
メインステートからexit出来ないのが不便だ
SIGTERM受けたときにexit(0)したいんだけど
誰か良い方法知りません?
2005/05/14(土) 18:39:44
>>512
「メインステート」の意味がよくわからないけど、returnでだめなら例外投げるとか?
514デフォルトの名無しさん
垢版 |
2005/05/19(木) 14:42:35
Ada05
2005/06/03(金) 23:46:19
ループを次に進めるような奴は無いんだろうか…?
DelphiだとContinueみたいな。
2005/06/04(土) 01:47:31
>>515
ラベル付きexitが使えるので、end loopの直前まで飛べばいい。
517515
垢版 |
2005/06/05(日) 10:51:50
>516
ありがとうございます。
exitがラベル取れなかったので(exit_statement ::=exit [loop_name] [when condition];)
gotoに読み替えて、end loop;直前まで飛んで解決しました。
518デフォルトの名無しさん
垢版 |
2005/06/05(日) 16:54:53
おお、技術的な会話をしてるのか
519516
垢版 |
2005/06/05(日) 20:01:25
あー、悪い。
exitはループ以外の名前やgoto用ラベルは取れなかったっけね。
begin〜endにも名前が付けられるのだから、begin〜endもexitで脱出できていいと思うのだけどなあ。
520515
垢版 |
2005/06/08(水) 22:33:42
>516
どうせなら、やっぱり全部exitで出れる様に統一して欲しいですよねぇ。
begin...end;を出れるだけでも変わってくるのだけどなぁ。
2005/06/09(木) 00:29:49
常に一回だけ素通りする、loop 〜 exit; end loop; でくくるとか。
2005/06/25(土) 22:42:48
ほっしゅ。
2005/07/21(木) 22:55:42
524デフォルトの名無しさん
垢版 |
2005/07/26(火) 09:31:15
2005/07/27(水) 00:19:45
2005/07/27(水) 22:36:25
2005/07/27(水) 23:34:24
OY for 95がインスコできないよorz
gnatmakeして置き換えで何故駄目なんだ。。。
それ以上のインストール方法も書いてないし。。。

助けてぇ、エロい人ぉ
2005/07/28(木) 15:56:16
>>527
gcc 4.0.0以降は、Ada.ContainersもAda.Directoriesも標準装備。
2005/07/28(木) 16:20:20
ところで、配列の初期化でothers => <>を使ったら、要素数分空ループが生成されているような…。
除去してくれないのかgcc 4.0.1…。

subtype T is String(1..10);
S : aliased String := T'(others => <>);

なんでこんな書き方してるのかというと、aliasedつけて'Accessで渡そうとすると、初期化されてないってエラー?が出るから…。
530527
垢版 |
2005/08/11(木) 22:51:13
>528
ありがとうエロイ人!
今までGNAT使ってたけどやっぱgccに乗り換えるよ。
そして亀レスすまん。
2005/08/12(金) 09:16:10
"GNAT"としてパッケージ化がされてないってだけで、GNATとgccの中のAdaは同じものに思えるのは…気のせいではあるまい。
532デフォルトの名無しさん
垢版 |
2005/08/15(月) 16:37:09
あはは
2005/08/29(月) 11:38:04
ふと思ったんだけど、windowsで*.dllロードしたいときはどうするんだろう?
そのままImportしても出来ないし。。。
2005/08/29(月) 20:21:27
>>533
libgdi32.aみたいなのをリンクしても駄目?
-lgdi32
2005/08/30(火) 22:54:04
>>534
出来たよ、ありがとう。
つーか、リンカオプションまとめてる所とかないかな。
あの辺がさっぱり解らん。
2005/09/15(木) 20:51:11
GNAT GPL 2005パッケージ出たね。
https://libre2.adacore.com/

gcc見る限り多態コンストラクタや拡張returnはまたパッチが出て無いようではあるのだけれど、実装済みなのだろうか?
ベースがgcc 3.4.5というのがまた。どうせなら4.0.2ベースに…。
537デフォルトの名無しさん
垢版 |
2005/09/15(木) 20:51:41
えーい、どうせだからあげ、あげ。
2005/09/15(木) 21:11:50
gccのスナップショット見る限りは、新機能パッチは最新ver(いまだと4.1.0)にしか適用されていないので、3.4.5ベースでAda2005というのはAdaCoreのカスタムなんだろうが…。
ぐだぐだ言ってないで落としてみればいいのだろうが、登録がw
2005/10/05(水) 10:00:03
STLの元になったAdaのコンテナライブラリってソース出ているの?
2005/10/11(火) 00:27:57
>>539
知らないなあ…。
逆にSTLをバックポートしたようなものは幾つか見かけたが。
2005/10/11(火) 00:31:31
ところで、interfaceへのダウンキャストができないのだが…そういうものなのか?
Java-like interfaceなんて言って、そのつもりで使ってると、困るんだが…。
2005/10/12(水) 14:39:57
task内でなくとも
select
delay xx.x;

then abort

end select;
が使えることに驚き。
そんな今日。
ついでにage。
2005/10/12(水) 15:25:17
>>542
>>423

exit when なんていう構文をさっぱり綺麗に忘れていた今日この頃。
そしてsage
2005/10/12(水) 21:02:30
次スレではタイトル半角希望。
そして次スレとC++0xはどちらが早いだろうか…
2005/10/30(日) 13:51:47
保守
2005/11/13(日) 10:32:48
保守ついでに
<チラシの裏。>
307でgwindowsがMinGWで動かないって書いてあるけど、展開してADA_*_Path通す(”<展開したどこか>\bindings”)だけで此方では一応動いた。
gnatcomも同様。(よくは知らないが)
ただ文字列関係がANSIのままなので2k, xpではcoding\*_unicode.ad?で置換した方がよさ気。
私みたいなmeユーザには関係のない話だけど。
</チラシの裏。>


ところで、誰かRendez-vons教えてください。
何の事だかさっぱりわからない。
2005/11/14(月) 21:00:21
>>546
entryで待ち合わせて一時的に合流処理、っぽい。
Javaなんかのsynchronizedとは逆の考え方っぽい。
共有資源に対して直接排他アクセス権をどうこうするのではなく、
共有資源を扱うガイド役のタスクがあって、
そいつがあちこちからの要求に付き添って行動することで
同時にアクセスされないことを保証してる、っぽい。

…間違ってたらすまん。
548デフォルトの名無しさん
垢版 |
2005/11/17(木) 19:44:08
なんでこんな終わった言語をいつまでもGCCはサポートするん?
2005/11/17(木) 23:01:49
終わって無いから。
2005/11/18(金) 02:37:35
adaの利点って何ですか?
例えばD言語やC++なんかと比べてアドバンテージってある?
2005/11/18(金) 23:05:01
アドバンテージが必要か?
2005/11/19(土) 01:35:43
>>550
おもいっきし書くのが面倒くさくて
しかもコンパイラが厳しすぎること。

いや、マジで。
2005/11/19(土) 12:35:19
>>552
つまりアフォには書けない ⇒ バグが減る、ウマー

ってことか。(w
2005/11/20(日) 00:16:04
…Σ (゚Д゚;)さてはお前、頭いいな。

Adaでアドバンテージと言えば、並行処理を挙げないと。
2005/11/20(日) 01:18:06
sourceforge.netにAda関連のプロジェクトがあるね
2005年になってから増えたようだ

コンテナライブラリもいろいろあるようだが皆使ってる?
Booch Componentsなんてどうよ?
2005/11/20(日) 19:08:11
>>553
俺のようなアフォでも苦労してコンパイルが通る頃には
なかなかバグの無いコードになってるところとかな。
Adaにしかないような機能はいっぱいあるけど
アドバンテージとするなら「コンパイラの厳しさ」が勝ると思う。
2005/11/21(月) 20:45:56
コンパイルといえば

GCC3.4.2でコンパイルしたら実行ファイルのサイズが202KBだったんだが
GCC4.0.1でコンパイルしたら29KBになってワロス
何もオプション変えてないのにな
素敵コンパイラ(´∀`)
2005/11/21(月) 20:59:33
・何かの拍子でデバッグシンボルを削除した
・知らないうちにlibgnat-4.0.dllを使うようになってる

どっちかじゃないか?
2005/11/21(月) 21:02:48
>>555
コンテナは標準のAda.Containersができたから、
STLで言うところのalgorithmを共通化するためには
関数のシグネチャ(Adaなんで命名規則は違ってていい)が
Ada.Containersと互換じゃないと…。

Ada.Containersも微妙に肥大だったり小回りが利かなかったりするんで
互換の軽量コンテナがあればいいんだが。
2005/11/21(月) 22:20:39
>>558
> ・知らないうちにlibgnat-4.0.dllを使うようになってる
ディストリビューションごと変えた(だけな)んで多分こっちだワ
lddで見てみたらリンクしてた
2005/12/01(木) 18:44:12
declare
 torf:boolean:=false;
begin
 put_line(torf'img);
 torf:=boolean'value("true");
end;

↑これが通ってちゃんと動く
さらにAdaのboolean型は列挙型であるため
ユーザー定義の列挙型でも可能

他にこれができる言語ってある?
2005/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.
2005/12/01(木) 21:26:01
PascalはRead/Writeで列挙型が入出力できる。文字列とのスマートな変換は無かったと思う。DelphiならRTTIで可能。
あとはJavaだのC#だのVM系はできて当然なんじゃないかな?

でもAdaのが一番手軽で便利っぽい。
2005/12/01(木) 21:28:15
…ていうか562はPascalか…処理系によってはあるのかもなあ。
Delphiのリファレンスには562の使い方のReadStringは無かった。
2005/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);
}

最近のスクリプト系の言語だと連想配列(ハッシュ)使うかな?
2005/12/03(土) 20:48:42
これどうですか?
Ada―移植性とプログラミング・スタイル
ttp://www.amazon.co.jp/exec/obidos/ASIN/4764901579/503-1051603-3695108
2005/12/04(日) 00:43:52
1989年かー。
Ada2005どころかAda95もまだだなー。

でもAdaは他の言語と違って、言語の底にある考え方を理解して無いと、何もできないっぽい(←うけうり)ので、今も売られてる本があるだけマシか…?
2005/12/04(日) 02:56:04
レオン:エイダ〜

エイダ:レオ〜ン

シェリー:うぅ・・・

エイダ:Gウィルスが・・・

レオン:エイダ〜

G最終形態:グチャグチャ

自爆シークエンス:あぼ〜ん
569デフォルトの名無しさん
垢版 |
2005/12/04(日) 03:19:06
AdaでOracleにアクセスできる処理系ってありますか?
AdaでWebアプリケーションを作成することはできますか?
2005/12/04(日) 04:03:14
>>569
Webアプリは単にCGIなら標準入出力が扱える言語ならなんでもできるので勿論Adaでも可能。
サーバー向けにgccでクロスコンパイラ作ればいい。
JSPだのASP.NETだのは、JGNATやMGNATでがんばれ。
Oracleは、商用Adaなら普通にバインディングついてくるっぽい。
2005/12/05(月) 21:11:19
>566
どうだったかなぁ。
お勧めはこれだけど。
http://www.amazon.co.jp/exec/obidos/ASIN/4781904734/qid=1133784487/sr=1-17/ref=sr_1_2_17/250-5384434-5362614
在庫切れか。
2005/12/23(金) 22:25:25
h
573デフォルトの名無しさん
垢版 |
2005/12/28(水) 21:15:15
o
2005/12/29(木) 06:23:55
バグの出にくい言語仕様を考える。
http://pc8.2ch.net/test/read.cgi/tech/1111747980/

このスレのアイデアの半分ぐらいは既にAdaにあるんだよなあ…。

> そうすると、制約だらけでウザいだけの言語になって、さらに既存の言語の拡張という形はとれなくなるが。

までピッタシカンカンだしなあ…。
2006/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デフォルトの名無しさん
垢版 |
2006/01/19(木) 21:02:18
age
2006/02/05(日) 11:33:10
すいませんどなたかlimitedが何なのか教えてもらえませんか
一応RM95読んだんですけど生半可な英語力でわかりませんでした
2006/02/05(日) 14:43:56
>>577
限られた、とか、限定の、とか、限定版、とかそういう意味で、
Adaでの意味は「代入禁止」。
2006/02/06(月) 00:43:16
なるほど。tnx
2006/02/14(火) 10:30:27
保守するだけじゃなんなので、教えて君。
つか、見てる人何人いるんだろう?

とりあえず、Adjustで何をしたらいいのか教えてください。
代入時に呼び出されてるっぽいことはわかるんだけど。
代入直前なのか直後なのか、引数は代入される側なのかする側なのか、とか。
2006/02/14(火) 11:47:22
このスレの誰か入門書を書いてくれー。
2006/02/14(火) 13:08:30
「RM嫁」とか、「とりあえずそれっぽいの書いて、コンパイルエラーを消してけ」としか。
RMは非常に読みにくいが、コンパイルエラーは親切。

「初心者の初心者による入門書」なら書けるけど、、、読んでも得るもの少ないよ?
2006/02/14(火) 20:35:12
>>580
oopweb.com
ttp://oopweb.com/Ada/Documents/AdaLinux/VolumeFrames.html?/Ada/Documents/AdaLinux/Volume/book.html
とかどうだ。
コピーコンストラクタのようなものと書かれてはいるが
2006/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で二重解放になってしまう。
2006/02/14(火) 22:04:25
なるほど、「複製」ではなく「調整」か
586580
垢版 |
2006/02/14(火) 23:33:15
>>583-584
ありがとう!
とりあえず代入の際の補助と理解しといた。
2006/02/15(水) 01:14:38
>>581
切実
2006/02/15(水) 23:44:59
amazonあたりでAdaの洋書を買おうとか思うんだがお薦めある?
2006/02/27(月) 09:53:30
ttp://www.macada.org/
このへん使ってる人っている?
590デフォルトの名無しさん
垢版 |
2006/03/02(木) 00:58:34
>>589
ttps://libre2.adacore.com/
のppc-darwinを使ってる。
591デフォルトの名無しさん
垢版 |
2006/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デフォルトの名無しさん
垢版 |
2006/03/02(木) 01:35:23
>>588
とりあえず、
Object Oriented Programming in Ada95
ttp://burks.bton.ac.uk/burks/language/ada/ada95.pdf
とか
Ada for Software Engineers
ttp://stwww.weizmann.ac.il/g-cs/benari/books
なら,もと有料だったのがタダ。
特に、あとのBen-Ariのは,RM95の解説にもなってるのでお薦め。
昔これ読んで、やっとStreamが理解できた。
2006/03/16(木) 11:11:36
そろそろ保守
594デフォルトの名無しさん
垢版 |
2006/03/28(火) 04:30:58
ほす
2006/04/06(木) 05:04:02
AdaってGPLなんだよね
それさえなければな
2006/04/06(木) 08:17:58
GNATがGPLなだけで、他の有償コンパイラはあるけど?
ちょっと検索すれば一杯出てくる。IBMとかも出してるし。
2006/04/08(土) 21:46:30
あれ?コンパイラのGPLも感染するんだっけ?
2006/04/08(土) 22:17:54
GNATつかうとGPL汚染されるはず。
リンクされるライブラリの問題?
2006/04/08(土) 22:37:34
ライブラリの問題で、コンパイラ自体は、エディタとかと同じ扱いだったはず。
2006/04/08(土) 22:59:47
>GNATつかうとGPL汚染されるはず。
ブルブルガタガタ
2006/04/09(日) 00:35:26
libgnat.aがGPLだしねえ。って震えるほどか?
あとバイナリ配らないことにすればGPLにする必要もないわけで。
2006/04/09(日) 14:41:12
バイナリ配らないプログラムにどんな意味が?
2006/04/09(日) 14:46:17
相手が非Windowsだったらgccぐらい入ってるだろうから、makeしてくれ、と。
あとCGIとかもバイナリは「配布」する必要が無い。

ソースはGPLとは矛盾しない別ライセンスにして、GPLのバイナリと一緒に公開してもいいわけで。

…Adaの問題というかgcc使う限りそうなんだけどな。
gccが嫌でそれでもAdaを使いたいなんて意思がある奴はどっかの製品買ってるだろうし、こんなのでごねてるのはgccがGPLでなくても結局使わないとも思うが。
2006/04/09(日) 15:00:35
gcc は関係ないでしょ。gcc を使っても GPL に汚染されない言語もある訳だし。
2006/04/09(日) 15:14:18
そりゃ、ラインタイム全部用意できればねえ。
MinGW用のwindows.hとインポートライブラリなんかはGPLじゃないので、それだけで書いたらGPL以外にできるんだけども。
2006/04/15(土) 09:30:31
Cからimportすれば別だけどAdaでfork出来ない、つまり別プロセス立てられないよね
サーバーアプリケーションとかデーモンを作るときはどうするんだ?
サーバーアプリはtaskでいいかもしれんが
2006/04/16(日) 00:53:52
あれ?そういえば標準ライブラリに別プロセス実行機能が無いね。
やっぱ組み込みまでターゲットとかそんな理由なんだろうか。(GNAT.OS_Libにspawnの宣言はあるけど)
2006/04/28(金) 22:45:32
保守というかチラシの裏:begin
 図書館で検索したら一応4冊のAdaの本があった。
 日本語1冊、英語3冊。
 日本語のは出版が古くAda83で、さらにサンプルが少なかったので、英語の一冊を借りてきた。
 さて、GWはこいつと格闘するか。
end 保守というかチラシの裏;
2006/05/04(木) 04:53:25
GPS は凄いけど作るものが無い。
どこかで Adaプログラマ募集してないかな。
内職時給800円くらいでおk。
2006/05/04(木) 05:25:49
GPSは2.0代のを見てしょぼいと思ったが
GNAT GPL 2005のほうのGPS 3.0インストールしてみたら凄かった。

更にVS統合が出てた。
ttp://www.martincarlisle.com/VisualStudioIntegration.htm

仕事は……それこそ軍隊にでも雇われないと、内職に出すようなのは無いんじゃないか……。
開発速度を犠牲にしても堅牢性を追求するAdaの姿勢は、一般企業が求めてるものとは違う気がするし、何より日本では知名度が無い。
つーか、仕事あるなら俺を雇ってくださいお願いします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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