Google PlayストアでUnionpediaアプリを復元するために作業中です
出ていきます入ってきます
🌟ナビゲーションを改善するためにデザインを簡素化しました!
Instagram Facebook X LinkedIn
あなたのロゴとドメインを持つ独自のユニオンペディア、月額9.99 USDから
私のユニオンペディアを作成する

HipHop Virtual Machine

索引 HipHop Virtual Machine

HipHop Virtual Machine(ヒップホップ・バーチャル・マシン、HHVM)は、実行時コンパイラ (JIT) 方式でPHPおよびHackといったプログラミング言語を実行する、仮想機械型の処理系である。HHVMで実行する場合、PHPやHackのコードは、JITコンパイルの過程でまず中間言語のHipHopバイトコード (HHBC) に変換され、さらに動的にx64の機械語へとコンパイル・最適化を行った上で実行される。これに対し、公式のPHP実装であるZend Engineでは、PHPのコードを中間表現に変換した上で、中間表現をそのまま実行している。 HHVMはMeta(旧Facebook)が開発しており、Github上にあるソースコードはPHP Licenseとのもと公開されている。2018年9月12日、Facebookの開発チームはPHPのサポートを段階的に終了することを発表し、同年9月18日にはHHVMのPHP 5のサポートを終了すると同時に、以降はHackに注力し、PHP 7の新しい機能も積極的には実装しないことを発表した。

目次

  1. 40 関係: 実行時コンパイラ中間言語仮想機械引数バイトコードユーザーエクスペリエンスレイテンシプロパティプログラミング言語データ型インタプリタウェブサイトオライリーメディアコンパイラ最適化スループットサブルーチン共通言語ランタイム動的型付けC++C言語Eval静的型付けFacebookGitHubHack (プログラミング言語)JavaJava仮想マシンMeta (企業)OSDNParrotPhalangerPHP (プログラミング言語)PHP LicenseWebサーバX64Zend Engine機械語.NET Framework2018年2019年

  2. 2011年のソフトウェア
  3. C++でプログラムされたソフトウェア
  4. Facebookのソフトウェア

実行時コンパイラ

実行時コンパイラ(じっこうじコンパイラ、、JITコンパイラ)とは、ソフトウェアの実行時にソースコードをコンパイルするコンパイラのこと。通常のコンパイラはコンパイルを実行前に事前に行い、これをJITと対比して事前コンパイラ (ahead-of-timeコンパイラ、AOTコンパイラ)と呼ぶ。

見る HipHop Virtual Machineと実行時コンパイラ

中間言語

は、任意の言語を異なる任意の言語へ翻訳する際に利用する中間的な人工言語もしくは自然言語である。

見る HipHop Virtual Machineと中間言語

仮想機械

仮想機械(かそうきかい、仮想マシン、バーチャルマシン、virtual machine、VM)とは、アプリの使用を最適化する方法であり、コンピュータの動作を再現するソフトウェアである。すなわち、エミュレートされた仮想のコンピュータそのものも仮想機械という。仮想機械によって、1つのコンピュータ上で複数のコンピュータやオペレーティングシステム (OS) を動作させたり、別のアーキテクチャ用のソフトウェアを動作させることができ、アプリケーションが互いに干渉するのを防げる。 仮想機械によるアプローチは、企業や個人がレガシーアプリケーションに対処し、1台のコンピュータで処理できるさまざまな種類のアプリケーションを最大化することで、ハードウェアの使用を最適化するための一般的な方法である。

見る HipHop Virtual Machineと仮想機械

引数

引数(ひきすう、parameter, argument)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。 数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。 関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。

見る HipHop Virtual Machineと引数

バイトコード

バイトコード (bytecode) は、バイト指向の、中間表現のコードすなわち中間コードの総称である。バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがビット単位でなくバイト単位になっているといったことから来ている。特にJavaの場合オペコードが1バイトである(Javaバイトコードの記事を参照)。しかし、仮想マシンの機械語をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくともバイトコードと呼んでいることも多い。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。

見る HipHop Virtual Machineとバイトコード

ユーザーエクスペリエンス

ユーザーエクスペリエンス(、UX)はシステムとの出会いに由来してユーザーが得る経験である。ユーザー経験、ユーザー体験とも。 人間は経験という概念を持っている。この経験のうち、製品・サービス・人工物などの独立したシステムを対象として、人間がユーザーとしてそれらに出会い利用した経験をユーザーエクスペリエンスという。例えばコンピュータゲームというシステムに対しAさんが「広告動画を見てワクワクし、友人の体験談で興奮し、ネットで購入し、夜通し遊んで熱中し、数年後にその思い出を振り返る」という体験はUXの1例である。 よいユーザーエクスペリエンスを達成するために、ユーザビリティ工学、インタラクションデザイン、ユーザー中心設計 (UCD) あるいは人間中心設計 (HCD) などが実践される。

見る HipHop Virtual Machineとユーザーエクスペリエンス

レイテンシ

レイテンシ(latency)、潜伏時間、潜時、待ち時間、反応時間とは、デバイスに対してデータ転送などを要求してから、その結果が返送されるまでの不顕性の高い遅延時間のこと。レイテンシー、レーテンシーとも表記される。 ある実時間的処理過程が、より短い時間で完了し、後続の処理過程を待たせることがない(遅らせることがない)ことを、低レイテンシ(low latency)と呼ぶ。

見る HipHop Virtual Machineとレイテンシ

プロパティ

プロパティ()は所有物や附帯情報など所有者や従属先がある物体や情報を指す言葉である。特に情報分野以外では、所有者の移転が可能であったり所有者による処分が可能なものを指し、特に所有物の中でも財産を指す場合もある。情報の分野では何らかの主体に保持される附帯情報を指す。

見る HipHop Virtual Machineとプロパティ

プログラミング言語

プログラミング言語(プログラミングげんご、)とは、プログラムを記述するための人工言語。コンピュータプログラムを書くために考案された、正確に定義された記号と規則のしくみ。以前は、しばしばプログラム言語と表記された。

見る HipHop Virtual Machineとプログラミング言語

データ型

Pythonの標準データ型階層 データ型(データがた、)とは、コンピュータプログラミングや計算機科学において、属性を持つデータを分類し、その扱われ方をコンパイラやインタープリタに知らせるプログラム。単に型(かた、Type)とも言われる。 多くのプログラミング言語は、整数型・浮動小数点型・ブール型・文字型といった基本データ型を備えている。計算対象にされるデータは、しばしば値(value)と言われる。データ型は式内の値を制約して、関数への適用可能性や変数への代入可能性を定義する。データ型は、値の集合の概念と近似している。

見る HipHop Virtual Machineとデータ型

インタプリタ

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながら実行するプログラムのこと。「インタープリタ」「インタープリター」などと表記することもある。 インタプリタは、およそ次のいずれかの動作をするプログラムである。

見る HipHop Virtual Machineとインタプリタ

ウェブサイト

ウィキペディア日本語版のトップページ(→メインページ) ウェブサイト(website)は、World Wide Web(WWW、ワールドワイドウェブ)上にあり、一般に特定のドメイン名の下にある複数のウェブページの集まりのこと。サイトと呼ばれることもある。企業などの団体が自身を紹介するため自ら構築したサイトをその団体の公式サイトなどと呼ぶ。 ホームページと呼ばれることもあるが、この用法は誤用とされる場合もある。また、ウェブサイトのトップページのみをさしてホームページと呼ぶ場合もある。

見る HipHop Virtual Machineとウェブサイト

オライリーメディア

オライリーメディア(O'Reilly Media)は、アメリカ合衆国のメディア企業。ティム・オライリーが創設した。コンピュータ関連の書籍出版、ウェブサイト作成、カンファレンスの開催などを主な業務としている。表紙に動物の木版画を使った書籍群でよく知られている。日本法人はオライリー・ジャパン。

見る HipHop Virtual Machineとオライリーメディア

コンパイラ最適化

コンパイラ最適化(コンパイラさいてきか、Compiler optimization)では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。

見る HipHop Virtual Machineとコンパイラ最適化

スループット

スループット()は、一般に単位時間当たりの処理能力やデータ転送量のこと。特に以下の用例が挙げられる。

見る HipHop Virtual Machineとスループット

サブルーチン

プログラミングにおけるサブルーチン(subroutine)は、プログラム中で意味や内容がまとまっている作業をひとつにまとめたものである。サブプログラムあるいは副プログラム(subprogram)大滝みや子『2020年版 基本情報技術者 標準教科書』オーム社、2019年。pp.95-96「手続きと関数」「再帰呼び出し」の章とも呼ばれ、単に「ルーチン」(routine)と呼ばれることもある。プログラミング言語によっては、関数(function)やプロシージャあるいは手続き(procedure)とも呼ばれる。

見る HipHop Virtual Machineとサブルーチン

共通言語ランタイム

CLRの動作イメージ。バイトコードを機械語に変換、実行する。 共通言語ランタイム (Common Language Runtime, CLR) とは、.NET Frameworkアプリケーションを実行するための仮想機械で、共通言語基盤 (CLI) のマイクロソフト自身による実装。.NET Framework 1.x - 4.x で使用されている CLR は Windows 上のみで動作する。.NET CoreはMITライセンスのオープンソースになり、CoreCLRはWindows、macOS、Linux、FreeBSD で動作する。.NET 5以降は.NET Runtimeと呼ばれるようになり、.NET 6では実行環境としてAndroidやiOSのサポートも加わった。

見る HipHop Virtual Machineと共通言語ランタイム

動的型付け

動的型付け(どうてきかたづけ、Dynamic typing)とは、値やオブジェクトの型安全性を、実行時に検証するというコンピュータプログラミングの型システムの方法である。型の検査は実行時のプロセス上で行われて、ランタイムシステムの実行時型情報(RTTI)が照会されるなどして解析される。 動的な型チェックは、代入、束縛、関数適用、ダウンキャスト、ディスパッチ、バインディングといった所で行われる。なお、コンパイル時やインタプリタ開始時の最適化によってすでに型安全性が保証されている所は省略される。動的型付けの言語では、引数や返り値や変数宣言への型注釈が省略されやすくなる。 対義語は静的型付けであり、こちらでは値やオブジェクトの型安全性をコンパイル時に検証する。型の検査はソースコードの解析によって行われる。

見る HipHop Virtual Machineと動的型付け

C++

C++(シープラスプラス)は、汎用プログラミング言語のひとつである。派生元であるC言語の機能や特徴を継承しつつ、表現力と効率性の向上のために、手続き型プログラミング・データ抽象・オブジェクト指向プログラミング・ジェネリックプログラミングといった複数のプログラミングパラダイムが組み合わされている。C言語のようにハードウェアを直接扱うような下位層向けの低水準言語としても、複雑なアプリケーションソフトウェアを開発するための上位層向け高水準言語としても使用可能である。アセンブリ言語以外の低水準言語を必要としないこと、使わない機能に時間的・空間的コストを必要としないことが、言語設計の重要な原則となっている。

見る HipHop Virtual MachineとC++

C言語

C言語(シーげんご、C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。

見る HipHop Virtual MachineとC言語

Eval

eval(イーバル)はいくつかのプログラミング言語が持つ、文字列を式として評価(evaluate)する関数、または複数の文をプログラム中のあるコンテキストで実行するサブルーチンである。 evalの類の機能はコンパイラ言語よりもインタプリタ言語でより一般的である。なぜならコンパイラ言語でこのような機能を実現するには、プログラム自体に言語処理系や(変数名などの)実行時情報を埋め込む必要があるからである。evalに近い機能を実現しているコンパイラ言語も存在する。

見る HipHop Virtual MachineとEval

静的型付け

静的型付け(せいてきかたづけ、static typing)は、値やオブジェクトの型安全性を、コンパイル時に検証するというコンピュータプログラミングの型システムの方法である。型の検査はソースコードの解析によって行われる。変数代入、変数束縛、関数適用、型変換といったプログラム記述箇所での型安全性がチェックされる。型エラーの場合は、コンパイルエラーに繋げられることが多い。 対義語は動的型付けであり、こちらでは値やオブジェクトの型安全性を実行時に検証する。型の検査はランタイムシステムの実行時型情報(RTTI)の照会などによる実行時プロセス上の解析で行われる。

見る HipHop Virtual Machineと静的型付け

Facebook

Facebook(フェイスブック)は、オンライン・ソーシャルメディアおよびソーシャル・ネットワーキング・サービスであり、アメリカ合衆国カリフォルニア州メンローパークに本拠地を置くMeta(旧: Facebook, Inc.)の旗艦サービスである。 Facebookという名前は、アメリカの一部の大学が学生間の交流を促すために入学した年に提供している本の通称である「フェイスブック」(face book)に由来している。

見る HipHop Virtual MachineとFacebook

GitHub

GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、ソースコードをホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されており、アメリカのカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者はクリス・ワンストラス、P.J.ハイエット、である。 GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供している。2019年1月より、プライベートリポジトリを無料で提供するようになった。2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった。2023年にはユーザ数1億人を突破した。

見る HipHop Virtual MachineとGitHub

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

Hackは、Metaにより開発されたプログラミング言語である。オープンソースとして公開されており、同社が開発したPHP実行環境のHipHop仮想マシン (HHVM) で動作する。 HackはHHVM環境で動作するPHPの新しいバージョンと見なすこともできるが、PHPとは異なり動的/静的双方の型システムが使用可能となっている。MetaではHackを「漸進的型付き言語」であるとしており、これがHackの強みとされている。

見る HipHop Virtual MachineとHack (プログラミング言語)

Java

Java(ジャバ、ジャヴァ)は、汎用プログラミング言語とソフトウェアプラットフォームの双方を指している総称ブランドである。オラクルおよびその関連会社の登録商標である。1996年にサン・マイクロシステムズによって市場リリースされ、2010年に同社がオラクルに吸収合併された事によりJavaの版権もそちらに移行した。 プログラミング言語Javaは、C++に類似の構文、クラスベースのオブジェクト指向、マルチスレッド、ガベージコレクション、コンポーネントベース、分散コンピューティングといった特徴を持ち、平易性重視のプログラム書式による堅牢性と、仮想マシン上での実行によるセキュリティ性およびプラットフォーム非依存性が理念とされている。

見る HipHop Virtual MachineとJava

Java仮想マシン

ネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境(JRE)を構成する。 Java仮想マシン(ジャバかそうマシン、、Java VM、JVM)は、Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン。APIやいくつかのツールとセットでJava実行環境(JRE)としてリリースされている。この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。

見る HipHop Virtual MachineとJava仮想マシン

Meta (企業)

Meta Platforms, Inc.(メタ・プラットフォームズ、通称:Meta)は、アメリカ合衆国のカリフォルニア州メンローパークに本社を置く多国籍テクノロジー・コングロマリットである。2021年に、Facebook, Inc.から現社名に変更した。

見る HipHop Virtual MachineとMeta (企業)

OSDN

Open Source Development Networkは、OSDN(オーエスディーエヌ)と略し、中国企業の开源中国(OSCHINA)が運営する、日本向けのオープンソースソフトウェアプロジェクト向けのホスティングサイト。かつてはSourceForge.netの姉妹サイトで、2015年5月11日にサイト名称がSourceForge.JPからOSDNに変更された。

見る HipHop Virtual MachineとOSDN

Parrot

Parrot はレジスタベースの仮想機械(仮想マシン)で、動的プログラミング言語を効率的に動作させるために開発された、C言語で書かれたソフトウェアである。Parrotは他の多くの仮想マシンと異なり、型情報を扱うことができる。Parrot アセンブリ言語とPIR(Parrot中間言語)をParrotのバイトコードに変換し、実行することができる。 ParrotプロジェクトはPerlのコミュニティにより開始され、Parrotはオープンソースとフリーソフトウェアのコミュニティの協力により開発されている。結果として、Parrotはライセンスの互換性 (Artistic License 2.0)、非常に広い範囲のプラットフォーム互換性、現代的なほとんどのプロセッサアーキテクチャに対する互換性、実行速度、サイズ(プラットフォームによるが 700K 程度)、Perlおよび全てではないがほとんどの現代的な動的プログラミング言語の様々な要求に対して柔軟に対応できること、に焦点を置いている。また、イントロスペクション、デバッガの機能、コンパイル時のセマンティックの調節 (semantic modulation) にも焦点を置いている。

見る HipHop Virtual MachineとParrot

Phalanger

Phalanger(ファレンジャー)とは、PHPのソースコードをMonoおよび.NET Framework向けのCILバイトコードに変換する中間コード・コンパイラである。 IISやApacheなどの各種Webサーバ向けのモジュールも提供されており、純正のPHPモジュールと同様に、PHPコンパイラであることを意識することなく、ASP.NETやXSPなどと同様の使い勝手を実現している。 また、PhalangerにはVisual Studio Shellをベースとした無償のPHP統合開発環境(IDE)も含まれる。 Phalangerはチェコ共和国のプラハ・カレル大学で始まったオープンソース・プロジェクトである。2009年には開発チームを中心にDevsense社が設立され商用サポート業務も行われている。

見る HipHop Virtual MachineとPhalanger

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

PHP(ピー・エイチ・ピー)は、 "The PHP Group" によってコミュニティベースで開発されているオープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページを作成するための機能を多く備えていることを特徴とする。 名称の PHP は再帰的頭字語として、 "PHP: Hypertext Preprocessor" を意味するとされており、「PHPはHTMLのプリプロセッサである」とPHP自身を再帰的に説明している。

見る HipHop Virtual MachineとPHP (プログラミング言語)

PHP License

PHP License(PHPライセンス)は、The PHP GroupによるPHPの処理系のリリースに用いられているソフトウェアライセンスである。 PECLで提供されている拡張についてもこのライセンスが適用されているものが多い。 フリーソフトウェア財団によると、本ライセンスはコピーレフト性を持たず、かつ、フリーソフトウェアライセンスである。同時に、Open Source Initiativeによると、本ライセンスはオープンソースライセンスである。 このライセンスは、派生物の名称をPHPとすること、および~ for PHPという形式を除いてPHPを名称に含むことを制限するため、GNU General Public License (GPL) と互換性がない(incompatible; 両立しない)。

見る HipHop Virtual MachineとPHP License

Webサーバ

Webサーバ(ウェブサーバ、英:)は、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す。 広義には、クライアントソフトウェアとHTTPによる通信を行うプログラム及びコンピュータ。

見る HipHop Virtual MachineとWebサーバ

X64

x64またはx86-64 とは、x86アーキテクチャを64ビットに拡張した命令セットアーキテクチャ。 実際には、AMDが発表したAMD64命令セット、続けてインテルが採用したIntel 64命令セット(かつてIA-32eまたはEM64Tと呼ばれていた)などを含む、各社のAMD64互換命令セットの総称である。x86命令セットと互換性を持っていることから、広義にはx86にx64を含む場合がある。 なお、インテルはIntel 64の他にIA-64の名前で64ビット命令セットアーキテクチャを開発・展開していたが、これは全くの別物であり、x64命令セット、x86命令セットのいずれとも互換性がない。 2023年4月にはIntelが、x64のLegacyモードを切り捨てることによりLongモードのみにしてサブセット化することで回路をシンプルにして性能向上するうえで問題になっているボトルネックを解消することを目標にしたX86-Sの提案の文書を公表した。もっとも、構想が発表されただけで、具体的な製品化に関する情報は発表されていない。

見る HipHop Virtual MachineとX64

Zend Engine

Zend EngineはPHPのインタプリタ(レジスタマシンベースの仮想機械)である。PHP Licenseに類似したZend Engine Licenseが適用される自由なソフトウェアとして、The PHP Groupによって開発・公開されている。

見る HipHop Virtual MachineとZend Engine

機械語

機械語(きかいご、machine language、machine code 『日本大百科全書』【機械語】 (コトバンクにも転載されている)IT用語辞典 e-words【機械語】、 binary machine languageあるいはbinary machine code)は、コンピュータの中央処理装置(CPU)が直接理解し実行することができる命令からなる言語。マシン語(マシンご)とも。

見る HipHop Virtual Machineと機械語

.NET Framework

Microsoft.NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発していたアプリケーション開発・実行環境である。バージョン4.8をもって.NET Frameworkのメジャーアップデートは終了し、セキュリティとバグ修正のための更新は継続されるが、以降の新規開発における推奨環境は.NETとなった。 Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。現在はOSS版の.NET CoreやMonoも包括した技術仕様の総称を.NETと呼び、プロプライエタリの初期から存在する従来のWindows専用実装のみを.NET Frameworkと呼んで区別している。

見る HipHop Virtual Machineと.NET Framework

2018年

この項目では、国際的な視点に基づいた2018年について記載する。

見る HipHop Virtual Machineと2018年

2019年

この項目では、国際的な視点に基づいた2019年について記する。

見る HipHop Virtual Machineと2019年

参考情報

2011年のソフトウェア

C++でプログラムされたソフトウェア

Facebookのソフトウェア

HHVM、HipHop仮想マシン 別名。