「Hack (プログラミング言語)」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''Hack'''(読み:はっく)とは、[[PHP]]から派生した[[プログラミング言語]]である。
+
'''Hack'''とは、[[PHP]]から派生した[[プログラミング言語]]である。
  
 
== 概要 ==
 
== 概要 ==
 
Hackは[[Facebook]]が2014年に発表した[[PHP]]を[[魔改造]]した[[プログラミング言語]]である<ref>https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/</ref>。PHP自体を魔改造により独自拡張したものなので長い歳月をかけてアホみたいに増えまくった[[PHP]]の関数群もそのまま使える。
 
Hackは[[Facebook]]が2014年に発表した[[PHP]]を[[魔改造]]した[[プログラミング言語]]である<ref>https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/</ref>。PHP自体を魔改造により独自拡張したものなので長い歳月をかけてアホみたいに増えまくった[[PHP]]の関数群もそのまま使える。
  
Hackは[[JavaVM]]の[[パクリ]]のような[[HHVM]]([[ヒップホップ仮想マシン]])という[[仮想マシン]]の上で動作する。ヒップホップ仮想マシン自体は古くから有名であり、もともとは[[PHP]]を[[中間コード]]にして多段階で[[最適化]]する手法を実現したかったようだ。ただ、これだけ聞くと[[Phalanger]]の[[車輪の再発明]]のように思えるが真相は不明である。
+
Hackは[[JavaVM]]の[[パクリ]]のような[[HHVM]]という[[仮想マシン]]の上で動作する。もともとは[[PHP]]を[[中間コード]]にして多段階で[[最適化]]する手法を実現したかったようだ。これだけ聞くと[[Phalanger]]の[[車輪の再発明]]のように思えるが真相は不明である。
  
 
HHVM実行環境の[[ソースコード]]は[[PHPライセンス]]および[[Zendライセンス]]の下で公開されている。
 
HHVM実行環境の[[ソースコード]]は[[PHPライセンス]]および[[Zendライセンス]]の下で公開されている。
92行目: 92行目:
 
</source>
 
</source>
  
===newtype===
+
== 感想 ==
Hackには[[C++]]の[[typedef]]のようなものが搭載されている。
 
<source lang="php">
 
newtype RoofRaised = float;
 
</source>
 
 
 
「[[Bjarne Stroustrup インタビュー]]」の一説で、「RoofRaised って何だと思って、長い時間をかけてヘッダーファイルを調べてみたら、ただの double だった、なんてことがよくあったでしょ。大規模なプロジェクトのすべてのクラスで暗黙の typedef を見つけ出すのにどれくらい時間がかかると思う? 」などと馬鹿にされたアレである。
 
 
 
一方、Hackのnewtypeは若干良くなっており、既存の型に制約を与えるための物として機能する。
 
<source lang="php">
 
<?hh
 
// email型を宣言
 
newtype email = string;
 
 
 
// 引数mailに渡す値は、email型に明示的にキャストしていないとエラーになる。
 
function setName(email $mail) : void
 
{
 
}
 
</source>
 
 
 
===浮動小数点型はfloatに統一===
 
[[PHP]]では[[浮動小数点型]]を巡るfloat派とdouble派の抗争が頻発していたが、Hackでは「float」に統一された。float派の[[大勝利]]である。
 
<source lang="php">
 
float  $win  = 1.0;
 
double $lose = 0.0; //エラーになるよ
 
</source>
 
 
 
=== 感想 ===
 
 
ざっくり見た感じ[[Phalanger]]に近い。
 
ざっくり見た感じ[[Phalanger]]に近い。
 
==インストール==
 
Hackは[[HHVM]]([[ヒップホップ仮想マシン]])の[[ソースコード]]の中に埋蔵されている。最新のHHVMの[[ソースコード]]を[[ダウンロード]]してきて[[ビルド]]すれば実行環境は整う。
 
  
 
==関連項目==
 
==関連項目==
 
*[[PHP]]
 
*[[PHP]]
 
*[[Facebook]]
 
*[[Facebook]]
*[[Hack]] - 曖昧
 
*[[HUCK]] - 名古屋大学のアドベンチャーサークル「Huckleberry Finn(ハックルベリーフィン)」の略称。かつて鳥取砂丘に描かれて話題になった。
 
  
 
==外部リンク==
 
==外部リンク==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: