Haxe
3.3.0-rc.1より対応。単一のソースファイルを出力する。
Flashコミュニティを出自とする言語のため、ゲームの用例が多い(言語上はそれに限定されない)。以下に代表的なものを挙げる。
Evoland - Haxe創始者(Nicolas Cannasse)ほかによるインディーRPG
Papers, Please - 架空の共産国の入国審査官を疑似体験するゲーム。OpenFLを使用。Metacriticのメタスコア85を獲得。GDC 2014のIndependent Games Festivalにおいて最優秀賞を受賞。
OpenFL - Showcase - OpenFLを使用したゲームのショーケース
Stencyl - 2Dゲームエディタ。OpenFLを使用。
TiVo - Android、iOS、デジタルビデオレコーダのアプリケーションに使用している。
静的型付きのオブジェクト指向言語である。HaxeはActionScriptから派生した言語であるため、基本構文はActionScript3と共通する部分が多い。
HaxeはActionScript3が持つような以下の機能を持つ。
クラス、インタフェース
プロパティ
パッケージ、モジュール機構
アクセス修飾子(ただし、publicとprivateの2段階のみ)
ローカル関数、第一級関数オブジェクト、クロージャ
各種演算子(算術、代入、論理、文字列、条件、ビット)
リフレクション
これらの機能は、クラスのようにActionScript3とよく似た構文で提供されるものもあるが、プロパティのようにActionScript3とは異なる文法で提供されるものもある。
ActionScript3との相違点
構文が似ていても細かい挙動がActionScript3と異なるものも多い。以下にそのようなHaxeの挙動をいくつか挙げる。
if文、switch文、ブロックが式であり、値を返す。
ローカル変数、関数のスコープが異なる。
privateのアクセス修飾子の意味合いが、ActionScript3のprotectedに相当する。
演算子の優先順位が異なる。 % が * と / より優先度が高い。 |、&、^の優先度が同じ。 |、&、^が、==、!=より優先度が高い。
また、ActionScript3にはあるがHaxeには存在しない機能もある。以下にその例を挙げる。
for(初期化式; 継続条件式; 再初期化式){} のC言語形式のfor文
XMLのリテラル