Contenu connexe
Similaire à L-1グランプリ "D言語" (20)
L-1グランプリ "D言語"
- 1. (それと) D 言語
でー @detcoder
- 2. 自己紹介
でとこーだ@ detcoder
● D 言語や DTM や RDBMS
● 好きな物:オカルト 嫌いな物:カルト
● ユニット「しめり蒸気 (wetsteam.org) 」
- 3. 部屋と私と D 言語
まとめ!(発表時はここで小芝居)
● もともと VC++ で同人ゲームを作っていた
● コーディング・デバッギングがめんどくさい!
● サークル内で D 言語を使うことに
- 4. D 言語とは
● D 言語は C 言語の次の意味
● C/C++ の遺産を継承しつつ、先進的な設計
● C/C++ の文法を踏襲。関数も呼べる
● ラムダ式・無名関数・契約プログラミング
クロージャー・ GC ・スコープガード文 etcetc
- 5. Walter Bright 氏
Zortech C++ コンパイラ
-> 世界で最初の
Native C++ コンパイラ
-> 後の Symantec C++
-> 更に後の DMC
( DigitalMars C/C++ )
DigitalMars DMDScript
->D 言語 /C++ による
ECMAScript 実装(速い)
ABEL
-> ハードウェア記述言語
Symantec Visual Cafe
->Java の統合開発環境
PHOTO: decltype
http://en.wikipedia.org/User:Dec
ltype
from : WikipediaCommons
License:CC BY-SA 3.0
- 9. D 言語の現状
● 最新バージョンは 2.060
● Windows ・ Mac ・ Linux に対応
● インストーラー (win) や deb/rpm(Linux)
● 現時点 Beta 版で Win64bit を吐けるように!
(Linux/Mac は以前から吐けていた )
- 10. D 言語の現状
● 安定版 D1 開発版 D2
● 現行は D2
● D1 はメンテナンスのみ
● D1 はオワコン
● 2012 年末没予定
- 12. それでは
GO TO
DMD!!
( ここで GitHub に公開してあるソース紹介 )
https://github.com/detcoder/L1G
- 13. 1 line tail5
writeln(
stdin.byLine().map!(a=>a.idup). array.
retro.take(5).retro.join("n")
);
● UFCS
第一引数を前置できる文法
hoge(moge) と moge.hoge は等価
hoge(foo, bar) と foo.hoge(bar) 〃
● テンプレート引数
関数名 !( テンプレート引数 )( 関数の引数 )
to!int(hogehoge)
- 14. Hello World !
import std.string, std.range, std.algorithm, std.conv, std.array;
struct D
{
string msg;
D opDispatch(string s)()
{
return typeof(return)(
((a, b)=>a.equal(b))(
msg.retro.cycle.take(2),
msg.chain(s).retro.take(2).array.retro)
? ((a, b)=>(
a.insertInPlace(msg.countUntil(b)+1, ", "), a.idup)
)(msg.dup, msg.retro.take(2).array.retro)~s
: text(msg,s));
}
string d(T)()
{
return text(msg, T.stringof.toLower, "! ", T.stringof);
}
}
struct H
{
static D opDispatch(string s)() { return D(typeof(this).stringof~s); }
}
pragma(msg, H.e.l.l.o. w.o.r.l.d! D);
( From アンサイクロペディア)
void main() {}
- 16. 私が D 言語を好きな訳
● 安い 習得コストと開発環境が
● 速い 実行速度とコンパイルが
● うまい 充実の Phobos と過去遺産
- 17. D 言語の使われ方
● 活発なのはゲーム界隈と競技プログラミング
● DirectX/WinAPI が叩ける
● それなりに処理速度が速い
● C/C++ の遺産が利用できる場合がある
( C++ はあまり期待できないけども;)
- 19. D 言語の使われ方
● 活発なのはゲーム界隈と競技プログラミング
● AtCoderでも利用可能に!
● CTFE ・テンプレート mixin
● std.bigint ( 1,000 桁まで最適化)
● std.concurrency( マルチスレッド)
- 20. D 言語の課題
破壊的変更の恐怖(主にライブラリ関係)
( 最近はそれほどでもなく、ライブラリにも移行期間が )
● 書籍が少ない
● さらにキラーフレームワークが無い
● おまけに決定的な IDE も無い
( デバッガは C++ のものが使える )
- 23. D 言語のコミュニティ
● 主に twitter
(「D言語」で検索、もしくは #dlang)
● dsource.org( trac+subversion )
● ニュースグループ( digitalmars.D )
● @mono_shoo 氏の「D言語友の会」
- 24. D 言語のコミュニティ
● Twitter ( dmd コミッター 1 人 :Phobos コミッター 2 人)
● @repeatedly氏
つけ麺の人。 Phobos コミッター
● @mono_shoo氏
東方の人。 Phobos コミッター
- 25. D 言語のコミュニティ
● Twitter
<D> <D>
● @repeatedly 氏
つけ麺の人。 Phobos コミッター
● @mono_shoo 氏
東方の人。 Phobos コミッター
- 26. 参考文献
● プログラミング言語D(公式) by DigitalMars
● プログラミング言語D(和訳) by k.inaba
● 競技プログラミングのためのD言語
by cafelier
● D言語基礎文法最速マスター
by @repeatedly
● D言語友の会(dusers.dip.jp)
by @mono_shoo & authors
● Template 「 DarkGray Crawls」 by Foral