HaXe
[Wikipedia|▼Menu]

HaxeHaxeのロゴ
パラダイムマルチパラダイム
登場時期2005
開発者Haxe Foundation, Nicolas Cannasse
最新リリース4.2.2/ 2021年5月14日 (3年前) (2021-05-14)[1]
評価版リリース4.0.0-rc.5 / 2019年9月12日 (4年前) (2019-09-12)[2]
型付け静的型付け
影響を受けた言語ActionScript, OCaml
プラットフォームクロスプラットフォーム
ライセンス

コンパイラ:GPL v2以降標準ライブラリ:MIT
ウェブサイトhaxe.org
テンプレートを表示

Haxe(ヘックス、発音記号は /heks/[3][4])はオープンソースの高級プログラミング言語、もしくはそのコンパイラである。

言語としてのHaxeは静的型付きオブジェクト指向言語であり、構文はActionScript 3および標準化が中止されたECMAScript 4に似ている。Adobe FlashJava仮想マシンおよび独自のNekoやHashLinkで実行可能なバイトコードコンパイルされるほか、JavaScript、ActionScript 3、C++、Cppia、C#JavaPHP 7Python 3Luaへのソースコードの変換が可能であるため、主にマルチプラットフォーム開発を目的として使用される。また、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では、これらプラットフォームは「ターゲット」と呼ばれる。
AVM

haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。主な想定プラットフォームは、Adobe Flash、Adobe AIR

2007年3月、AVM2へ対応した[6]
Neko

haXe Betaより対応(2006年2月)[6]。バイトコードへコンパイルされる。
JavaScript

1.0より対応(2006年5月)[6]。単一のソースファイルを出力する。主な想定プラットフォームは、ブラウザNode.jsElectron

Dynamic型によってJavaScriptのライブラリをそのまま利用できるほか、著名なライブラリであれば、Haxelibに公開されている(あるいは自分で定義した)externライブラリを使用することで、型安全性を保ったまま利用することができる[7]

Haxe 4.0現在、ECMAScript 5に準拠したコードへコンパイルされる[8]。加えて、4.0以降ではECMA Script 6から追加されたクラス定義に対応した[9]
ActionScript 3

1.xより対応(2007年3月)[6]。複数のソースファイルを出力する。主な想定プラットフォームは、Adobe FlashやAdobe AIR。
PHP

2.0.0より対応(2008年7月)[10]。複数のソースファイルを出力する。

Haxe 3まではPHP 5.1.0に準拠したコードへコンパイルされていたが、Haxe 4以降ではPHP 7.0.0へ変更された[11]
C++

2.4.0より対応(2009年7月)[12]。複数のソースファイルを出力する。主な想定プラットフォームは、WindowsやmacOS、Linux、iOSAndroidTizenBlackBerry

C++ターゲットを利用するには、Haxelibに公開されているhxcppライブラリのインストールが必要となる[13]。また、独自のガベージコレクション機能を実装している。
C#

2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。主な想定プラットフォームは、.NET FrameworkMonoASP.NETUnity

Haxelibに公開されているhxcsライブラリによって、.NET Framework 2.0及び4.0の標準ライブラリを利用できるようになる[15]。.NET Frameworkのパスを指定すれば、任意のバージョンを利用することも可能。
Java

2.10.0より対応(2012年4月)[14]。複数のソースファイルを出力する。

Haxelibに公開されているhxjavaライブラリによって、Java 8の標準ライブラリを利用できるようになる[16][17]
Python

3.2.0-rc.2より対応(2015年5月)[18]。単一のソースファイルを出力する。
Cppia

3.2.0-rc.2より対応(2015年5月)[18]。単一のスクリプトファイルを出力する。

Cppiaは、外部のコンパイラを必要としない、Haxe上で完結するC++のスクリプト実行機能を提供する[19]。Haxelibで公開されているhxcppライブラリを必要とする。
Lua

3.3.0-rc.1より対応[20]。単一のソースファイルを出力する。
HashLink

3.3.0-rc.1より対応[21]。バイトコードへコンパイルされる。主な想定プラットフォームは、WindowsやmacOS、Linux、iOS、Android、Nintendo SwitchPlayStation 4
Java VM

4.0.0-rc.3より対応[22]。バイトコードへコンパイルされる。
言語

静的型付きのオブジェクト指向言語である。HaxeはActionScriptから派生した言語であるため、基本構文はActionScript3と共通する部分が多い。
機能
ActionScript3と共通する機能

HaxeはActionScript3が持つような以下の機能を持つ。

クラスインタフェース

プロパティ

パッケージ、モジュール機構

アクセス修飾子(ただし、publicとprivateの2段階のみ)

ローカル関数、第一級関数オブジェクト、クロージャ

各種演算子(算術、代入、論理、文字列、条件、ビット)

リフレクション

これらの機能は、クラスのようにActionScript3とよく似た構文で提供されるものもあるが、プロパティのようにActionScript3とは異なる文法で提供されるものもある。
ActionScript3との相違点

構文が似ていても細かい挙動がActionScript3と異なるものも多い。以下にそのようなHaxeの挙動をいくつか挙げる。

if文、switch文、ブロックが式であり、値を返す。

ローカル変数、関数の
スコープが異なる。

privateのアクセス修飾子の意味合いが、ActionScript3のprotectedに相当する。

演算子の優先順位が異なる。

% が * と / より優先度が高い。

|、&、^の優先度が同じ。

|、&、^が、==、!=より優先度が高い。

また、ActionScript3にはあるがHaxeには存在しない機能もある。以下にその例を挙げる。

for(初期化式; 継続条件式; 再初期化式){} のC言語形式のfor文

独自の機能

その他、以下のような独自の機能を持つ[23]

型推論


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:34 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef