2008/03/01 D-BOF k.inaba http://www.kmonos.net/ はじめての initial D 2008/03/01 D-BOF k.inaba http://www.kmonos.net/

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

プログラミング第5回 1 while ループ 文字列の操作
プログラミング言語ADP 大藤雄久.
稲葉 一浩 (k.inaba) Python と プログラミングコンテスト 稲葉 一浩 (k.inaba)
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
Javaのための暗黙的に型定義される構造体
C#によるWindowsFormApplication入門
アルゴリズムとプログラミング (Algorithms and Programming)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
haXeでオリジナルコンポーネント作り WCAN mini Vol 小笠原
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
2006/10/19 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井英二郎
アルゴリズムとデータ構造 2011年6月13日
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
プログラミングIII演習 第1回目.
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
第20章 Flyweight ~同じものを共有して無駄をなくす~
C#とC++とオブジェクト指向 上甲 健史.
プログラミング言語入門 手続き型言語としてのJava
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング 4 記憶の割り付け.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
5.9 メソッドのオーバーロード 5.10 変数の引渡し 2003/11/21 紺野憲一
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
Java8について 2014/03/07.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
もっと詳しくArrayクラスについて調べるには → キーワード検索
一時的な型 長谷川啓
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
アルゴリズムとデータ構造 2012年6月11日
なぜ演算子をオーバーロードするの? 演算子に新しい役割をもたせたいから << 演算子 左オペランドが出力ストリーム
アルゴリズムとデータ構造1 2009年6月15日
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
プログラミング 4 文字列.
アルゴリズムとデータ構造 2010年6月17日
フレンド関数とフレンド演算子.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
演算子のオーバーロード.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

2008/03/01 D-BOF k.inaba http://www.kmonos.net/ はじめての initial D 2008/03/01 D-BOF k.inaba http://www.kmonos.net/

軽く自己紹介 k.inaba (稲葉 一浩) 日本語訳 「プログラミング言語D」 解説サイト 「わかったつもりになるD言語」 Diki YukiWikiMini クローン in D QBga32.dll zlib と libbzip2 を使った圧縮書庫の展開

ってどんな言語?

一言で言うと… 変化の激しい言語

0.148 0.166 正規表現 マッチ演算子 lazy 1.005 0.147 突然2.000 文字列mixin 正規表現 マッチ演算子 廃止 1.005 文字列mixin 突然2.000 const/invariant 0.147 正規表現 マッチ演算子 0.124 static if 1.006 CTFE 0.89 mixin 0.174 tupleof 0.57 関数のネスト 0.40 テンプレート 0.148 scope文 2.007 クロージャ 0.126 内部クラス 0.15 モジュール 0.99の次が 0.100だった! 0.71 プロパティ 0.43 auto (現scope) 0.37 演算子 オーバーロード

グラフにすると そんな感じでした

まとめ 今日のDは 明日のDではない

今日の 言語

特徴1 見た目は C や Java 系統 int main() { int c = 1; DでもCでも 動くコード int main() { int c = 1; printf(“it’s %c code”,‘c’/+c++/+1); return 0; }

特徴2 ネイティブコンパイル dmd hello.d … ./hello Hello, D-BOF! 速い DLLとか何も考えずに作れる コンパイルして dmd hello.d … ./hello Hello, D-BOF! 実行

特徴3 でもスクリプト言語っぽくも使えるよ #!/usr/local/bin/rdmd import std.regexp; 正規表現 #! #!/usr/local/bin/rdmd import std.regexp; void main() { int[string] wordCount; … 連想配列 (ハッシュ) ガベコレ

特徴4 コンパイル時 eval ! Tuple!(real, “x”, real, “y”) pt; pt.x = 3.14; いろいろ柔軟です Tuple!(real, “x”, real, “y”) pt; pt.x = 3.14; pt.y = 1592; 文字列から その名前の フィールドを持つ クラスを生成

そのた特徴 オブジェクト指向っぽい機能 関数型っぽい機能 普通に クラス インターフェイス ミックスイン クロージャ テンプレート 微妙に遅延評価 Observerパターンを 実装した メソッドパッケージ class Hoge { mixin Signal!(string); void something() { emit(“event!!”); } } Hoge h = new Hoge; h.connect(&obsvr.watch);

end