InfoQ

News

Mark Mahieu氏がCICEクロージャプロトタイプを作成

作者 Charles Humble, 翻訳者 編集部 投稿日 2008年1月25日 午前12時10分

コミュニティ
Java
トピック
言語,
コード分析
タグ
Java SE
過去数年のJava業界において最もホットな話題は、Java言語にフルサポートクロージャを付加することであった。クロージャが導入可能な複雑性が与えられているのを踏まえ、多様なプロポーサルのためのプロトタイプを用いて実験することが可能でない限りそれがもたらす影響を判断するのは難しい。
今やNeal Gafter氏のBGGAプロポーサルプロトタイプ(source)に参加しているMark Mahieu氏は、Bob Lee氏、Doug Lea氏、Josh Bloch氏によって記されたCICE/ARMプロポーサルの実装(source)を編さんしている。Concise Instance Creation Expressions (CICE)(source)は単純にRunnable、Callable、かもしくはComparatorのような単一の抽象メソッドを用いて、内部クラスのインスタンス のインスタント化のための、よりコンパクトなシンタックスを提供する。Automatic Resource Management (ARM)(source)ブロックはクロージャ用の主要使用ケースの一つをサポートする。リソース上でクローズメソッドを自動的に呼ぶブロックのレキシカルなスコープを出るような時にブロック内でのリソーススコープの使用である。

Mahieu氏の最初の実装はスコープ内に制限されている。CICEには表現、パブリックローカル変数と黙示的にファイナルローカル変数のみが実装されて いる。パブリックローカルとタイプインファレンスは実装されていない。ARMのブロック実装はARMブロックのdo() { } formのみをサポートしまたスタート地点としてjava.io.Closeableに依存している。Mahieu氏が記したように、Closeableを使用しているARM仕様そのものはたくさんの既存のタイプ、java.sql.Connection, Statement, ResultSetなどなどが未チェックの例外を投入するという事実の観点においてそれを実装するように作ることができないため問題的なのである。

プロトタイプは既にチェック済みの例外用のdo() { } formのデフォルトセマンティックを変更するより、新しいARM実装のビルド(source)がプロポーサル内の詳細を排斥するのを助けている。

Stephen Colebourne氏がFCM用のプロトタイプ(source)に取り掛かっているのでこの先数年において私達はプロポーサルが作用しているかいないかを把握することが可能になるだろう。

原文はこちらです:http://www.infoq.com/news/2008/01/cice-closure

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

Javaトラブルシューティングメルマガ総集編 2008/06~07

エスエムジーでは、Javaのトラブル事例とその解決ノウハウの一部をメルマガとして配信しています。この記事では過去2ヶ月のメルマガの総集編として、追加情報を含めたトラブル事例のダイジェスト情報を提供いたします。

PythonプログラマがRuby技術者認定試験を受けてみた

筆者はPythonプログラマですが、ちょっとしたきっかけから、Ruby技術者認定試験を受験してきました。この勉強の経験の中で、いくつか気づきがあったので、言語学習の1つの方法として説明していきたいと思います。

RailsのActiveMessaging入門

この記事では、ActiveMessagingと関連技術について紹介し、それをRailsアプリケーションで利用する方法を説明します。

ソフトウェア開発におけるウェブベースのコミュニケーションにモデリングを導入する

モデリングツールはソフトウェア開発において重要な役割を果たしており、また、モデリングはコミュニケーションツールでもあるわけですが、まだまだ未発達です。本記事では、ウェブというコミュニケーションツールとの相性にフォーカスをあてたKodouguというモデリングツールの紹介をします。

ファイルシステムでHello World

この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。

XMLを越える万能なRESTful API

Railsがバージョン1.2で確実に参加するようになったRESTfulリソースの世界では、当然のことながらXMLを共通言語として使用します。RESTfulなアプリケーションではXMLと並んで他の標準を簡単にサポートできます。

プレゼンテーション層を合理化する

この記事では、Webアプリケーションが特徴となるシン・クライアントのパラダイムは"その場しのぎの解決策"であり捨て去らなければならないと考えています。なぜこのようなことを言うのか理解していただくためにインターネットが広まり始めた90年代半ばに立ち戻りましょう。

David Nuescheler氏がJCRとRESTについて語る

このインタビューでは、Day社のCTO兼JCRのスペックリードであるDavid Nuescheler氏が、JCR(Javaのコンテントリポジトリ標準)、RESTとの関係、Sling Webフレームワークについて語っています。