以前から、一括変換型に変わったJavaFX言語の全ぼうを知りたいと思っていたのですが、ちょうどいい文書「The JavaFX™ Script Programming Language Reference (Draft)」が、しばらく前に公開されました。
今回から何回かに分けて、その和訳を載せたいと思います。訳にはつたないところもありますが、ご容赦ください。また、コード例の部分では、字下げが抜けてしまっているため読みづらいと思いますが、あわせてご容赦ください。
今回は、目次と第1章です。
---------------------------------------------------------
JavaFX台本型プログラミング言語基準(草案)
目次
1.言語概要
2. クラスとオブジェクト
3.属性と関数
4.変数と基本データ型
5.式、文、および演算子
6.列
7.列内包
8.データ結合
9.引き金
A.鍵語と予約語
1.言語概要
この章では、JavaFX台本型プログラミング言語の概要について説明する。ここでは主な特徴の概要を述べ、特定の構成概念についての詳述は後の章で行う。この本は、Java™ Web Startソフトウェアとしてまたは従来型の机上応用プログラムとしてウェブ(Web)ページ内で実行される、表現力豊かなインタネット依頼者側応用プログラムや要素の、設計者および開発者を対象としたものである。読者がJavaScriptおよび/またはJava™プログラミング言語に精通していることを想定している。
JavaFX台本型プログラミング言語は、
・図式利用者インタフェース(GUI)構成部品の指定に宣言型構文を使用しており、開発者のプログラムコードをGUIの実際の配置にぴたりと対応させることを可能にしている。
・宣言型データ結合と増分評価を使用しており、個々の構成部品を容易に作成および構成することを可能にしている。(データ結合により)応用プログラムのデータとGUIの構成部品は、自動的に同期がとられる。
・静的に型付けされており、Javaプログラミング言語において大規模プログラムの作成と保守を可能にしているコード構造、再利用および情報隠ぺいなどの特性と同様のものをほとんどを持っている。
・Javaプログラミング言語によるソフトウェア開発のための基準実装IDE(統合開発環境)であるNetBeansIDEを含め、すべての主要IDEと連携する。
・どのような規模または複雑さのGUIも提供することができる。
・Swingの使用を容易にする。
以下の節では、JavaFX台本型プログラミング言語について駆け足で紹介する。しかるべき点についてはJavaプログラミング言語と比較および対比させながら、その核となる構文と機能についての一般的な導入を与える。そして、それぞれの主題は後の章で更に詳しく取り上げられる。
1.1 クラス
クラスの定義は、Javaプログラミング言語と多くの共通点を持っているが、相違点もある。たとえば、情報は、領域ではなく、属性に格納される。振る舞いは、操作ではなく、関数によってあらわにされる。次の例は、それぞれの基本構文を示す簡単な矩形クラスを定義している。
class Rectangle {
attribute width: Integer;
attribute height: Integer;
function grow(): Void {
width++;
height++;
}
function grow(amount: Integer): Void {
width += amount;
height += amount;
}
}
Javaプログラミング言語とは異なり、クラス定義では、既存のライブラリを単に利用する必要はない。更に、JavaFX台本型プログラミング言語は多重継承を支援しており、必要なら複数のクラスを継承することができる。
クラスは、第2章で詳しく取り上げられる。
属性と関数は、第3章で詳しく取り上げられる。
1.2 オブジェクト
オブジェクト直定数は、クラスの実体化のための簡単な構文を提供する。次のコードは、前述した矩形クラスの単一の実体を生成し、その幅と高さの属性を100に初期化する(newを必要としない点に留意すること)。
Rectangle {
width: 100
height 100
}
このオブジェクトへの参照を格納するには、var鍵語を使う。
var myRect = Rectangle {
width: 100
height 100
}
オブジェクトは、第2章で詳しく取り上げられる。
変数と基本データ型は、第4章で詳しく取り上げられる。
1.3 式、文、および演算子
他のプログラミング言語と同様に、JavaFX台本型プログラミング言語は、式、文、および演算子を支援する。
第5章は、JavaFX台本型プログラミング言語において利用可能な式、文、および演算子について論じる。
1.4 列
列は、オブジェクトの順序付けられた一覧を保持する。これは、Javaプログラミング言語の配列にほぼ類似している。両方とも複数の値を保持し、0から始まる索引により検索される。
var week = ["Monday","Tuesday","Wednesday","Thursday",
"Friday","Saturday","Sunday"];
var mon = week[0];
var wed = week[2];
var fri = week[4];
部分列も支援されている。
var week = ["Monday","Tuesday","Wednesday","Thursday",
"Friday","Saturday","Sunday"];
var weekdays = week[0..4]; // 第1部分列
var weekend = week[5..6]; // 第2部分列
第6章は列宣言の基本を取り上げており、第7章は列内包に焦点を当てている。
1.5 データ結合
データ結合は、複数オブジェクトの状態を同期させるための簡単な構文を提供する。2つのオブジェクトが互いに結合されると、1番目のオブジェクトが更新されたときはいつも2番目のオブジェクトの値が自動的に変更される。データ結合の一般的な利用法は、GUI部品をその基となるデータに同期し続けることである。
import javafx.gui.Frame;
import javafx.gui.Button;
var myString = "Click Me";
Frame {
width: 50
height: 50
visible: true
content:
Button {
text: bind myString
}
}
// コードのほかの部分でmyStringを変更すると、
// ボタン上の文字列も自動的に変更される。
データ結合は、第8章で詳しく取り上げられる。
1.6 引き金
引き金は、ある条件が満たされると実行されるコードの区画である。たとえば、ある属性の値が不適切なものに設定されることを、防ぐための処置を講じたいと思うことがあるかもしれない。次の例は、引き金の基本構文を示す。
import java.lang.System;
ReplaceDemo {
mySensitiveData: "Will anyone notice?"
}
class ReplaceDemo {
attribute mySensitiveData: String
on replace {
System.out.println("I noticed a change!");
};
// 応用特有の保護手段コードがここに書かれる
}
引き金は、第9章で詳しく取り上げられる。
0 件のコメント:
コメントを投稿