Hack
Hack
Hackのロゴ
登場時期 2014年 (12年前) (2014)
設計者 Julien Verlaguet, Alok Menghrajani, and others[1]
開発者 meta ウィキデータを編集
最新リリース 4.172 / 2022年11月2日[2]
型付け 静的、動的、弱い型付け
影響を受けた言語 PHPJavaC SharpOCamlScalaHaskell ウィキデータを編集
ライセンス MITライセンス ウィキデータを編集
ウェブサイト hacklang.org ウィキデータを編集
テンプレートを表示

カテゴリ / テンプレート

Hackは、Metaにより開発されたプログラミング言語である。オープンソースとして公開されており、同社が開発したPHP実行環境のHipHop仮想マシン (HHVM) で動作する[3]

HackはHHVM環境で動作するPHPの新しいバージョンと見なすこともできるが、PHPとは異なり動的/静的双方の型システムが使用可能となっている。MetaではHackを「漸進的型付き言語」であるとしており、これがHackの強みとされている。

歴史

編集

Hackは2014年3月20日に一般に公開された[4]。Hackは公開以前からMeta社内において広く使用されており、同社の実環境における厳しいテストをくぐり抜け開発された。

Hackの登場はPHPにも影響を与えており、2015年12月にリリースされたPHP7は、Hackと同一構文の型システムを搭載している。

特徴

編集

Hackの特徴としては、Web開発において広く用いられているPHPとシームレスに連携できることがまず挙げられる。PHPで書かれたほとんどのスクリプトは、そのままHackのスクリプトとして実行可能である。[5] Hackの型システムでは、関数引数戻り値クラスプロパティに型の指定が可能となる(ローカル変数は不可)[6][7]

構文

編集

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;
}

脚注

編集
  1. ^ Contributors to facebook/hhvm”. Github.com. 2014年3月25日閲覧。
  2. ^ 出典URL: https://hhvm.com/blog/2022/11/02/hhvm-4.172.html, 閲覧日: 2024年4月15日, 題名: Release 4.172, 出版日: 2022年11月2日
  3. ^ Cade Metz (2014年3月20日). “Facebook Introduces 'Hack,' the Programming Language of the Future”. wired.com. 2014年4月15日閲覧。
  4. ^ Hack: a new programming language for HHVM”. Code.facebook.com. 2014年3月23日閲覧。
  5. ^ a b Hack and HHVM: Unsupported PHP Features in Hack - Manual”. Docs.hhvm.com. 2014年4月2日閲覧。
  6. ^ Hack and HHVM: Type Annotations - Manual”. Docs.hhvm.com. 2014年3月25日閲覧。
  7. ^ Hack and HHVM: Type Inference - Manual”. Docs.hhvm.com. 2014年3月25日閲覧。

関連項目

編集

外部リンク

編集

📚 Artikel Terkait di Wikipedia

プログラミング言語一覧

Scripting Language - Safe Pointer Arithmetic, Reactive Programming, Regex Switches, and A Lot More!”. 2026年1月21日閲覧。 ^ “The Quorum Programming Language”. 2025年7月15日閲覧。

HipHop Virtual Machine

“Facebook Introduces 'Hack,' the Programming Language of the Future”. Wired. 2014年4月15日閲覧。 ^ “Hack: a new programming language for HHVM”. code.facebook

PHP (プログラミング言語)

独自の中間言語にコンパイルし、そこから動的に機械語にコンパイル/最適化を経て実行される。ただし、HHVM4.0 以降はPHPから派生した言語であるHack専用となり、PHP自体のサポートは削除された。 Phalanger (Apache License) プラハ・カレル大学のオープンソースプロジェク

CoffeeScript

commit of the mystery language)」というコメントとともに Git リポジトリにコミットした。CoffeeScript は電子書籍である "Create Your Own Programming Language" を読んで開発された。このときのコンパイラは Ruby

OCaml

リティなど、様々なアプリケーション領域で活用されている。 名称の「CAML」は元々「Categorical Abstract Machine Language(圏論的抽象機械言語)」の頭字語であったが、OCamlではこの抽象機械を省略している。OCamlはフランス国立情報学自動制御研究所(Inria

ケン・トンプソン

For their invention of UNIX® operating system and the C programming language, which together have led to enormous growth of an entire industry

Return-oriented programming

Return-oriented programming(ROP)は、実行保護やコード署名などのセキュリティ防御の機構が存在するマシンで任意コードの実行を可能にするセキュリティエクスプロイトである。 この手法では、攻撃者はコールスタックを操作してプログラムの制御フローを乗っ取り、マシンのメモリ上に存

AtCoder

Inc, AtCoder. “TOYOTA Programming Contest 2023 Summer(AtCoder Heuristic Contest 021)”. AtCoder. 2023年8月2日閲覧。 ^ Inc, AtCoder. “HACK TO THE FUTURE 2019予選”