プログラミング言語Dartの基礎

2012110日(初版)

201257日(最新更新)

株式会社 クレス

 

 

PDF版はここから

ファイルが大きいのでInternet Explorerで取り込めないときは、右クリックして「対象をファイルに保存」を実行する

Open Office用のODT版はここからダウンロード

Microsoft Office用のDOCX版はここからダウンロード

Dart言語仕様書邦訳版はここから

 

この資料は多少でもJavaJavaScriptの経験を持つ技術者向けにDartの基礎をDart言語仕様書に沿って説明する為のものである。不明な箇所はDart言語仕様書を参照されたい。また構文の記述は仕様書の「2. 本仕様書の表記(Notation)」の節を見て頂きたい。この資料はAPIに関しては特に説明していないので、この言語を試すときにはDart API Referenceも見て頂きたい。

 

大規模で構造化されたウェブ・アプリケーションに対応可能なプログラミング言語であるDartは、JavaJavaScriptの経験を持つ技術者には馴染みやすい言語である。オブジェクト指向の要素としてクラスとインターフェイスを使っている。デフォルトではJavaScriptと同じ動的な型づけを使っているが、静的な型づけも可能で、複雑化するアプリケーションをより構造化でき、またより厳格にチェックできるようになる。

 

Dartの開発の中心になっているのがChromeブラウザのV8エンジンを担当したLars Bak(ラース・バーク)であり、従ってDartJavaScriptの技術がベースになっている。彼とJava言語仕様の作成者の一人であるGilad Bracha(ジラード・ブラーカ)がこの言語を公式に発表したときのプレゼンテーションでは、この言語のことを「シンプルで意外性のないオブジェクト指向プログラミング言語」(A simple and unsurprising OO programming language)だと述べている。即ち:

 

Ÿ   クラス・ベース、単一継承、インターフェイスつき

Ÿ   静的な型づけはオプショナル

Ÿ   真の構文スコープ

Ÿ   単一スレッド

Ÿ   なじみのある文法

 

が特徴だとしている。

 

この言語が今後普及するかどうかが注目されるところである。しかしGoogleは大規模ウェブ・アプリケーションでは大きな影響力を持っており、またChromeAndroidへのVM組込みも予想され、しかもJavaScriptへのクロス・コンパイラを持っていることから、その潜在性は大きいと言わねばならない。但しJavaScriptの次期バージョン(Harmony)にはクラスが導入されるという噂もある。

 

Dartは現在開発段階にあり、仕様書も頻繁にバージョン・アップされている。従ってそれに合わせこの資料も改版の予定である。ここに示したサンプル・プログラムたちは現時点で動作が確認されたものである。読者は「Dartの実行」の節を見れば、これらのサンプル・プログラムを自分で容易に実行して確かめることができる。

 

 

*** 内容 ***

 

1  概要

2  変数とその型(Variables and Types)

3  関数(Functions)

4  関数リテラル(Function Literal)

5  クラス(Classes)

6  総称型(Generics)

7  式(Expressions)

8  文(Statements)

9  Dartの型処理と型チェック

10  組込み識別子、予約語およびコメント

11  Dartの実行

12  イベント処理(Event Driven Style Processing)

13  並行処理(Concurrent Processing)

14  HTTPサーバ(HttpServer)

 

本資料で使われているサンプルのうち主要なものは以下の表から取得できる。なお、ブラウザはChromeあるいはSafariを使用する必要がある。他のブラウザではカット/ペーストすると改行が消えてしまうので注意のこと。読者はこれらを所定の名前のファイルにコピーし、htmlファイルを直接Dartiumで開く、あるいはDart Editorを使ってJavaScriptに変換しChromeブラウザで実行させて、その動作を確認することができる。なお、これらのサンプルを商用に使用すること及びその結果については当社はその責を負わない。

 

タイトル

対応する節

Gist

FutureSample_1

非同期コールバック処理

 

FutureSample_2

順序づけられたイベント処理

 

FutureSample_3

イベントの並行受付

 

IsolateTest

アイソレート間の通信リンクの確立

gist: 2652416 

TimerIsolateSample

高精度タイマのアイソレートとその使い方

gist: 2652622

DartCodeToHtmlPage

Dart Editorで作成したコードをこれらのサンプルのようなページのHTMLテキストに変換するツール

 

DumpHttpRequest

HTTPサーバの章参照のこと。サーバ開発用のツールで、クライアントからの要求内容をそのクライアントに返すサーバ

gist: 2653400 

StatusLineTest

HTTPサーバの章参照のこと。サーバ開発用のツールで、いろんなステータスを設定したときのブラウザの対応を調べる

gist: 2659478

FileServer

簡単なファイル・サーバ。HTTP応答の作成の教材

gist: 2659496 

 

この資料はページ数が多いので、PDFでは下図のようにしおりを、ODTではナビゲータを、DOCXでは見出しマップを利用されたい。