- 342 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:51:07 ]
- InfoQ: Googleの実験、新しい言語Go
www.infoq.com/jp/news/2009/11/Go-Google-New-Language この言語の作者によれば、Goの目標のいくつかは以下の通りである。 * 静的言語の効率性と動的言語の記述しやすさを組み合わせること。事実、開発者は静的にするか動的にするかを選択することが可能である。 * 安全性。Goは型安全であり、暗黙のキャストを許容せず、明示的なキャストのみを許容する。 また、ポインタ演算を提供せず、ガベージコレクションを提供するため、メモリ安全である。 * 並行性と通信に対する優れたサポートの提供。 * 効率的で遅延のないガベージコレクションを持つこと。 * 高速なコンパイル。 次のような興味深い特徴を持っている。 * ポインタを持っているが、ポインタ演算はない。 * インターフェースを持つ。 * 同期チャネルを持つ。このチャネルはスレッド間の通信に使われ、並行処理の基礎となっている。 Goはそれをやりとりすることでメモリの共有を促進するが、共有メモリを通じて通信はしない。ある時点ではただ1つのスレッドだけが共有値に対するアクセスを持つことができ、チャネルを通じてスレッド間でのその値の受け渡しが行われる。 * ゴールーチン(Goroutines)。これは並行処理のために利用されるもう1つの構造である。 ゴールーチンは単に“go”キーワードを接頭辞として持つ関数あるいはメソッドである。ゴールーチンはスレッドと結びついていて、チャネルを通じて別のゴールーチンと通信する。 * 並列化。ゴールーチンとチャネルは計算を複数のCPU上で動かすために利用することができる。 * リフレクション。全ての型とチャネルに対してリフレクションが使える。 * エンベッディング(Embedding)。シンプルな継承の仕組みである。
|

|