HaxeHaxeのロゴ
パラダイムマルチパラダイム
登場時期2005
開発者Haxe Foundation
コンパイラ:GPL v2以降標準ライブラリ:MIT
ウェブサイト ⇒haxe.org
テンプレートを表示
Haxe(ヘックス、発音記号は /heks/[3][4])はオープンソースの高級プログラミング言語、もしくはそのコンパイラである。
言語としてのHaxeは静的型付きのオブジェクト指向言語であり、構文はActionScript 3および標準化が中止されたECMAScript 4に似ている。Adobe FlashやJava仮想マシンおよび独自のNekoやHashLinkで実行可能なバイトコードにコンパイルされるほか、JavaScript、ActionScript 3、C++、Cppia、C#、Java、PHP 7、Python 3、Luaへのソースコードの変換が可能であるため、主にマルチプラットフォーム開発を目的として使用される。また、FlashからHTML5への移行にも適する。
2012年4月に表記がhaXeからHaxeに変更された[5]。 Haxeのコンパイラは、AVMやJava VM、そして独自の仮想マシンであるNeko及びHashLinkのバイトコードや、JavaScript、ActionScript 3、C++、Cppia、C#、Java、PHP、Python 3、Luaのソースコードを生成する。複数のプラットフォームに「コンパイルする」この戦略は、"Write once, run anywhere" の思想に基づいている。これにより、プログラマが目的のために最良のプラットフォームを選択できる。 Haxeでは、これらプラットフォームは「ターゲット」と呼ばれる。 haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。主な想定プラットフォームは、Adobe Flash、Adobe AIR。 2007年3月、AVM2へ対応した[6]。 haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。 1.0より対応(2006年5月)[6]。単一のソースファイルを出力する。主な想定プラットフォームは、ブラウザやNode.js、Electron。 Dynamic型によってJavaScriptのライブラリをそのまま利用できるほか、著名なライブラリであれば、Haxelibに公開されている(あるいは自分で定義した)externライブラリを使用することで、型安全性を保ったまま利用することができる[7]。 Haxe 4.0現在、ECMAScript 5に準拠したコードへコンパイルされる[8]。加えて、4.0以降ではECMA Script 6から追加されたクラス定義に対応した[9]。 1.xより対応(2007年3月)[6]。複数のソースファイルを出力する。主な想定プラットフォームは、Adobe FlashやAdobe AIR。 2.0.0より対応(2008年7月)[10]。複数のソースファイルを出力する。 Haxe 3まではPHP 5.1.0に準拠したコードへコンパイルされていたが、Haxe 4以降ではPHP 7.0.0へ変更された[11]。 2.4.0より対応(2009年7月)[12]。複数のソースファイルを出力する。主な想定プラットフォームは、WindowsやmacOS、Linux、iOS、Android、Tizen、BlackBerry。 C++ターゲットを利用するには、Haxelibに公開されているhxcppライブラリのインストールが必要となる[13]。また、独自のガベージコレクション機能を実装している。 2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。主な想定プラットフォームは、.NET FrameworkやMono、ASP.NET、Unity。 Haxelibに公開されているhxcsライブラリによって、.NET Framework 2.0及び4.0の標準ライブラリを利用できるようになる[15]。.NET Frameworkのパスを指定すれば、任意のバージョンを利用することも可能。 2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。 Haxelibに公開されているhxjavaライブラリによって、Java 8の標準ライブラリを利用できるようになる[16][17]。 3.2.0-rc.2より対応(2015年5月)[18]。単一のソースファイルを出力する。 3.2.0-rc.2より対応(2015年5月)[18]。単一のスクリプトファイルを出力する。 Cppiaは、外部のコンパイラを必要としない、Haxe上で完結するC++のスクリプト実行機能を提供する[19]。Haxelibで公開されているhxcppライブラリを必要とする。 3.3.0-rc.1より対応[20]。単一のソースファイルを出力する。 3.3.0-rc.1より対応[21]。バイトコードへコンパイルされる。主な想定プラットフォームは、WindowsやmacOS、Linux、iOS、Android、Nintendo Switch、PlayStation 4。 4.0.0-rc.3より対応[22]。バイトコードへコンパイルされる。 静的型付きのオブジェクト指向言語である。HaxeはActionScriptから派生した言語であるため、基本構文はActionScript3と共通する部分が多い。 HaxeはActionScript3が持つような以下の機能を持つ。 これらの機能は、クラスのようにActionScript3とよく似た構文で提供されるものもあるが、プロパティのようにActionScript3とは異なる文法で提供されるものもある。 構文が似ていても細かい挙動がActionScript3と異なるものも多い。以下にそのようなHaxeの挙動をいくつか挙げる。 また、ActionScript3にはあるがHaxeには存在しない機能もある。以下にその例を挙げる。
対応プラットフォーム
AVM
Neko
JavaScript
ActionScript 3
PHP
C++
C#
Java
Python
Cppia
Lua
HashLink
Java VM
言語
機能
ActionScript3と共通する機能
クラス、インタフェース
プロパティ
パッケージ、モジュール機構
アクセス修飾子(ただし、publicとprivateの2段階のみ)
ローカル関数、第一級関数オブジェクト、クロージャ
各種演算子(算術、代入、論理、文字列、条件、ビット)
リフレクション
ActionScript3との相違点
if文、switch文、ブロックが式であり、値を返す。
ローカル変数、関数のスコープが異なる。
privateのアクセス修飾子の意味合いが、ActionScript3のprotectedに相当する。
演算子の優先順位が異なる。
% が * と / より優先度が高い。
|、&、^の優先度が同じ。
|、&、^が、==、!=より優先度が高い。
for(初期化式; 継続条件式; 再初期化式){} のC言語形式のfor文
独自の機能
Size:34 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef