Ada

勝手に補足

Ada

最近Adaの解説を書いている人が多い気が。驚くべきことにサンプル数2でも有意な(ryインドリさん yamicha.comさん これ自体は非常に喜ばしいことなのですが、明らかに試しながら書かれているにも関わらず解説口調のため、一度突っ込みたくなると止まらず……と…

5人目ー。

Ada

http://panathenaia.halfmoon.jp/alang/ada-hackathon/wiki/ 予定合わせのためのアンケート表を作りました。皆さん都合のいい日を記入くださいませ。

でも

Ada

"の代わりに%で文字列が作れたりします。しかしその場合中に"を含むことは禁止されているので全く嬉しくない。 あと16#ff#の代わりに16:ff:とか書けてlexer書くのがすごくだるい。

4人目ー。

Ada

http://panathenaia.halfmoon.jp/alang/ada-hackathon/wiki/wiki.cgi こうなると会場問題を真面目に考えないと……。 世の中にはルノアールという名の貸し会議室とコンセントのある素晴らしい喫茶店もあるそうですが、人数が少ないと一人頭の負担額が増えると…

Ada Hackathon はどのレベルまでマジなんだ…

Ada

早速の反響感謝です。 Ada Hackathon はどのレベルまでマジなんだ… http://twitter.com/kinaba/status/1066363323 かなり参加したいのだけど、現実的な時間で現実的になんかできるサブセットが存在するかどうかとかすらまったくわからないレベル http://twit…

これは!?

http://www.adacore.com/2008/11/28/NF-62-H703-009-gnat/

Ada Hackathonを本当にやる会

Ada

ということでWiki置いてみました。どなたでも構いませんので賛同していただける方は適当に記名/加筆してください。(具体的な案はまだ一切無い妄想レベルです……)http://panathenaia.halfmoon.jp/alang/ada-hackathon/wiki/それにしてもFSWiki手強すぎる。編集…

Adaのnewの話

Ada

http://www.adaic.com/standards/05rm/html/RM-4-8.htmlのallocatorの文法をごらんください。型名のところがsubtype_indicationになっております。ということは!このようなコードが意味解析はともかくパーサは通るはず! X := new not null T delta 0.25 di…

Adaの定数の話

Ada

Cだと#defineするような、ハードコーディングしてメモリに直接乗せたくないような定数ってAdaでどうやって書くの?というお話。結論を先に書きますとこれで万事OKです。 function Make_Constant is new Ada.Unchecked_Conversion (Integer, Integer); -- int…

注釈書いているうちにGNATダメだという思いが再燃してきた

Ada

Ishikawaさーん、来年こそAda Hackathonやりませんかー? (もちろん自分でゼロから作ったとしてGNATレベルまで実装できると考える方がどうかしてるのは先刻承知ですが……)

標本数2だが、驚くべきことにこれでも統計学的に有意な結果を得られるのである

Ada

http://ishikawa.arielworks.com/memo/2008/12/08/040740 なんか知らないうちにカウントされてそうだな……。私から出せそうな情報としては、http://www.macada.org/にあるXcode用のAdaプラグインを入れたら、なんか環境が破壊された気がするので、入れないこ…

問題です。

Ada

次のプログラムはなんと出力するでしょう。 with Text_IO; procedure eq is package pr is type T1 is record M : Integer; end record; function "=" (X, Y : T1) return Boolean; type T2 is tagged record M : Integer; end record; function "=" (X, Y :…

gcc 4.4の新機能

4.3でAda2005にほぼ対応してしまったgcc。追いかけるものがなくなった今、果たしてこれから先どこへ向かうのか? gccのAdaフロントエンドに加えられる変更は、AdaCoreのDevelopment Logがほぼ全てですので、何が加えられているのか見てみましょう。*1New att…

VMT弄ってinterfaceを後付けで実装するテクニックが一番役に立つよ派

Ada

Haskellの型クラスとDelphiのimplementsのいいとこ取り。

これがduck typingか……?

Ada

ホットみたいですのでhttp://d.hatena.ne.jp/Cryolite/20060108#p1の例をAdaにしてみました。

GNAT GPL 2008

Ada

出てた。

パーサの次

Ada

ACATSのテストを通せるパーサができたので、次を考えます。目標はYT独自拡張ばりばりのAda2005コンパイラ。gccに煩わされること無く好き勝手に弄れるやつ。32/64bit、Windows/Mac/BSDあたりに全対応できたらいいなあぐらいの夢想で。どう考えても力尽きます…

属性の構文はひどいだろ

Ada

Character'('A')'Img ほら、はてなの色分けも間違ってるし! 直前が識別子かリテラルか")"の後にクォーテーションが来て、後ろにアルファベット2文字以上続いている→属性、後ろに"("があって以降を式として解釈できる(スキャナレベルでは予知能力が必要)→agg…

entryの構文はひどいだろ

Ada

http://www.adaic.com/standards/05rm/html/RM-9-5-2.html entry Name; entry Name (X: Integer); -- 引数あり entry Name (1 .. 3); -- 範囲付き entry Name (1 .. 3)(X: Integer); entry Name (1 + 1) is -- 範囲付き(実装) entry Name (1 + 1)(X: Integer…

GNATbench

Ada

https://libre2.adacore.com/ すばらしそう。AonixのADTもありますのでEclipseのAda環境が2種類になりました。 最近は何でもEclipseですね。

changes

http://gcc.gnu.org/gcc-4.3/changes.html 相変わらずスルーっぷりがすごいので、何が変わったのか私の把握している範囲でまとめます。 Ada2005関連 Ada.Calendar以下のArithmeticだのFormattingだのがサポートされた。 ゴルフに役に立つのは正直これぐらい…

いいんどうしでだいバトルだ!

Ada

Ada Issues(言語仕様の改定案)の議論は、それで興行できるのじゃないかしらん。 AI05-0011-1が空っぽになっているからどうしたのかと思えば、舞台を移しAI05-0074をふたつに割っての論争中です。もっとも、進行は遅々としてますが……なにしろAda2015がターゲ…

Ada Hackathon

Ada

http://ishikawa.arielworks.com/memo/2008/01/24/052751 1000時間かけて、ACATS3.0のテストをパスするコンパイラを作ろうという企画です。 もちろん参加しますします押しかけていきます。 30日の朝8時集合ですね。わっかりましたぁ。 しかし1000時間かあ………

pragma Favor_Top_Level

──というのがいつのまにか追加されてた。 http://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Favor_005fTop_005fLevel.html#Pragma-Favor_005fTop_005fLevel サブプログラムへのaccess型をトップレベル専用にしてネストされた関数にはトランポリンで対応するら…

pragma Fast_Math

──というのがいつのまにか追加されてた。 http://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Fast_005fMath.html 規格上保たないといけない精度とか無視して突っ切るためのpragmaらしい。 紛らわしいですがきっと-ffast-mathとはなんの関係も無いです。そもそも…

更に頭の悪いUTF9

Adaでもビット操作の方が短くなった。言語の得意分野ですらこの始末……。 こりゃUTF-9が普及しても、Adaの普及は望めませんね……。 先に検証しとけよって話だ。 死にたくなったので銀猫行ってきます。

packed UTF9

もう露骨にAdaのLanguage Rankingを上げるためだけの問題を出題しました。正直ごめんなさい。 ieee754では予想外にRubyが短かった*1ものの、なんとかCに一位をキープして貰えてスクリプト言語を落とす目標は達成。 まあそんなわけで、今回は密かに暖めていた…

何もしない関数

Ada

単項"+"演算子は、定数の宣言に便利です。 function PI(X : Integer := 3) return Integer renames "+"; function PI(X : Float := Ada.Numerics.PI) return Float renames "+"; これでPIと書くだけで、Integerが要求される場面では3を、Floatが要求される場…

C++を使わないbuild-in-placeの説明

Ada

……という説明は、C++マスターのk.inabaさんにはわかっていただけたのですが、O'Camlマスターの遠藤さんにはわかっていただけませんでした。k.inabaさんに通訳していただいたり、遠藤さんにわけわからんことをわめいているのを汲み取っていただいたり、めちゃ…

C++を使ったbuild-in-placeの説明

Ada

要するに以下が通ると思って頂戴。 struct T { void nanika(); private: T(T const &s); }; T f() { return T(); or return(T result){ result.nanika(); } } int main() { T x = f(); T *y = new f(); return 0; } return文は、呼び出しもとが使用する領域…