Hack (プログラミング言語)
From Wikipedia, the free encyclopedia
登場時期
2014年
設計者
Julien Verlaguet, Alok Menghrajani, and others[1]
開発者
meta 
最新リリース
4.172 / 2022年11月2日[2]
| 登場時期 | 2014年 |
|---|---|
| 設計者 | Julien Verlaguet, Alok Menghrajani, and others[1] |
| 開発者 |
meta |
| 最新リリース | 4.172 / 2022年11月2日[2] |
| 型付け | 静的、動的、弱い型付け |
| 影響を受けた言語 |
PHP、Java、C Sharp、OCaml、Scala、Haskell |
| ライセンス |
MITライセンス |
| ウェブサイト |
hacklang |
Hackは、Metaにより開発されたプログラミング言語である。オープンソースとして公開されており、同社が開発したPHP実行環境のHipHop仮想マシン (HHVM) で動作する[3]。
HackはHHVM環境で動作するPHPの新しいバージョンと見なすこともできるが、PHPとは異なり動的/静的双方の型システムが使用可能となっている。MetaではHackを「漸進的型付き言語」であるとしており、これがHackの強みとされている。
特徴
構文
Hackスクリプトの基本的なファイル構造は、PHPスクリプトのものとわずかに異なるもののほぼ同じである。PHPがスクリプトの開始を <?php で宣言するのに対して、Hackでは <?hh で宣言する。
<?hh
echo 'Hello World';
上のスクリプトはPHPと酷似している。実行すると、以下の出力がブラウザに対して与えられる。
Hello World
注意が必要な点だが、HackのコードはPHPのようにHTML中に埋め込むことができない。例えば、PHPでは以下のようにPHPとHTMLを一つのファイルに記述することができる。
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<!-- hhではこうした記述はできない -->
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
しかし、Hackではこの構文はサポートされていない。そうした用途には、同じくMetaが開発したXHPや、別途テンプレートエンジンを用いる必要がある。[5]
関数
Hackでは関数の引数や戻り値に型を指定することができる。型の指定は以下のように行う。
<?hh
// Hackの関数では以下のように型を指定する。
function negate(bool $x): bool {
return !$x;
}