はじめての initial D 2008/03/01 D-BOF k.inaba http://www.kmonos.net/ 軽く自己紹介 k.inaba (稲葉 一浩) 日本語訳 「プログラミング言語D」 解説サイト 「わかったつもりになるD言語」 Dで書いて公開してるアプリ Diki YukiWikiMini クローン in D QBga32.dll zlib と libbzip2 を使った圧縮書庫の展開 ってどんな言語? 一言で言うと… 変化の激しい言語 0.148 0.166 1.005 0.147 突然2.000 正規表現 lazy 文字列mixin const/invariant 正規表現 マッチ演算子 0.124 マッチ演算子 廃止 1.006 static if 0.89 CTFE 0.174 0.57 mixin tupleof 0.40 0.148 関数のネスト テンプレー 2.007 scope文 0.126 ト クロージャ 内部クラス 0.15 0.99の次が 0.100だった! モジュール 0.71 0.43プロパティ 0.37 auto (現scope) 演算子 オーバーロード グラフにすると そんな感じでした まとめ 今日のDは 明日のDではない 今日の 言語 特徴1 見た目は C や Java 系統 DでもCでも 動くコード int main() { int c = 1; printf(“it’s %c code”,‘c’/+c++/+1); return 0; } 特徴2 ネイティブコンパイル 速い DLLとか何も考えずに作れる コンパイルして dmd hello.d … ./hello Hello, D-BOF! 実行 特徴3 でもスクリプト言語っぽくも使えるよ #! ガベコレ #!/usr/local/bin/rdmd import std.regexp; void main() { int[string] wordCount; … 正規表 現 連想配列 (ハッ シュ) 特徴4 コンパイル時 eval ! いろいろ柔軟です Tuple!(real, “x”, real, “y”) pt; pt.x = 3.14; pt.y = 1592; 文字列から その名前の フィールドを持つ クラスを生成 そのた特徴 オブジェクト指向っぽい機能 普通に クラス インターフェイス ミックスイン class Hoge { mixin Signal!(string); 関数型っぽい機能 普通に クロージャ テンプレート 微妙に遅延評価 Observerパターンを 実装した メソッドパッケージ void something() { emit(“event!!”); } } Hoge h = new Hoge; h.connect(&obsvr.watch); end
© Copyright 2024 ExpyDoc