Haxe

Haxe (ヘックス)



Haxe(ヘックス、発音記号は /heks/)は、オープンソースで開発されている高機能プログラミング言語、またはそのコンパイラです。

概要



Haxeは、静的型付けのオブジェクト指向言語であり、ActionScript 3とECMAScript 4に類似した構文を持ちます。主な特徴として、以下の点が挙げられます。

マルチプラットフォーム対応: JavaScript、ActionScript 3、C++、C#、Java、PHP、PythonLuaなど、多様なプラットフォーム向けのコードを生成できます。
高い互換性: Adobe FlashJava仮想マシン(JVM)上で動作するバイトコードへのコンパイルも可能です。
柔軟な開発: FlashからHTML5への移行など、様々なニーズに対応できます。

2012年4月には、表記が「haXe」から「Haxe」へと変更されました。

対応プラットフォーム



Haxeコンパイラは、以下のプラットフォームをターゲットとして、バイトコードソースコードを生成できます。

AVM (Adobe Flash, Adobe AIR)
Java VM
Neko (Haxe独自の仮想マシン)
HashLink (Haxe独自の新しい仮想マシン)
JavaScript (ブラウザ、Node.js、Electron)
ActionScript 3 (Adobe Flash, Adobe AIR)
C++ (Windows, macOS, Linux, iOS, Android, Tizen, BlackBerry)
C# (.NET Framework, Mono, ASP.NET, Unity)
Java
PHP
Python 3
Lua
Cppia

この多様なプラットフォームへの対応は、「Write once, run anywhere」(一度書けば、どこでも実行できる)という理念に基づいています。開発者は、目的に最適なプラットフォームを選択できます。

言語仕様



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

構文



ActionScript3と共通する機能として、以下のものが挙げられます。

クラス、インタフェース
プロパティ
パッケージ、モジュール機構
アクセス修飾子 (public, private)
ローカル関数、第一級関数オブジェクト、クロージャ
各種演算子
リフレクション

ActionScript3との相違点



構文が似ていても、細かい挙動が異なる点も多くあります。

if文、switch文、ブロックが式であり、値を返す
ローカル変数、関数のスコープが異なる
privateのアクセス修飾子の意味合いが異なる
演算子の優先順位が異なる

独自の機能



Haxeは、以下のような独自の機能も備えています。

型推論
型パラメータ (ジェネリクス)
インライン関数
列挙型
型エイリアス (typedef)
パターンマッチング
構造的部分型付け
関数の部分適用
条件付きコンパイル
配列内包表記、辞書内包表記
文字列リテラル内での改行、文字列内の変数展開
静的拡張 (Mixin)
マクロ

型システム



Haxeでは、詳細な型宣言が可能です。静的型付き言語でありながら、`Dynamic`型や`untyped`キーワードを使用することで、部分的に型チェックを無効化できます。また、`extern`クラスによる型定義を行うことで、動的型のターゲットのライブラリに対して型チェックを有効にして連携できます。

標準ライブラリ



Haxeの標準ライブラリは、すべてのターゲットで動作するもの、複数のターゲットで動作するもの、個別のターゲットのみで動作するものがあります。

すべてのターゲット: バイナリ操作、ZIP圧縮/解凍、処理、ユニットテストなど
複数のターゲット: 標準入出力、SQL操作など
個別のターゲット: 各ターゲットの標準API、HTML5 API (JavaScript)など

サードパーティーライブラリ



OpenFL: Flashに類似したAPIを提供するオープンソースライブラリクロスプラットフォーム開発に利用されます。

コンパイラ



Haxeコンパイラは、OCamlで実装されています。主な機能は以下の通りです。

複数プラットフォームへのコンパイル
デッドコード削除
定数畳み込み
リソースデータの埋め込み
IDE連携機能
ドキュメント生成
ソースマップ生成 (JavaScript)

統合開発環境 (IDE)



Haxeでの開発には、以下のIDEやエディタが利用できます。

FlashDevelop
Visual Studio Code (プラグイン)
Sublime Text (Haxeバンドル)
Atom (atom-haxe)
Vim (Vaxe)
IntelliJ IDEA (公式プラグイン)
FDT

Haxeで書かれたソフトウェア



Evoland
Papers, Please
Stencyl
TiVo

歴史



Haxeは、2005年にNicolas Cannasse氏によって開発が開始されました。当初はActionScriptの代替コンパイラとして開発されましたが、現在はプラットフォーム中立な言語環境を目指しています。

言語名の由来



Haxeという名前は、短くシンプルで、使われていないこと、そして「X」を含んでいることから名付けられました。2012年に、表記が「haXe」から「Haxe」に変更されました。

HashLink



HashLinkは、Nekoの後継となる新しい仮想マシンです。Windows、macOS、Linux上で動作し、DirectXやSDL、OpenALなどのマルチメディア機能を内包します。HL/JIT方式とHL/C方式の2種類の動作形態があり、HL/C方式ではC言語ソースコードを出力することで、高いパフォーマンスと移植性を実現します。

参照



公式Haxeウェブサイト
Try Haxe!
OpenFL
ActionScript3とHaxeを比較したチートシート

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。