Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. HHVM - Teknopedia
HHVM - Teknopedia
HHVM
software
Logo
Logo
GenereMacchina virtuale
SviluppatoreFacebook
Data prima versione2011 dicembre 09; 14 anni fa[1]
Ultima versione
  • 3.15.0 (28 settembre 2016)
  • 4.172.0 (2 novembre 2022)
Sistema operativo
LinguaggioRust
OCaml
ocaml
C
C++ (non in lista)
LicenzaLicenza PHP
(licenza libera)
Sito webhhvm.com
Modifica dati su Wikidata · Manuale

La Macchina Virtuale HipHop (HipHop Virtual Machine, HHVM) è una macchina virtuale open source basata sulla compilazione just-in-time (JIT) utilizzata come motore di esecuzione per i linguaggi di programmazione PHP e Hack.

Utilizzando il principio della compilazione JIT, il codice PHP o Hack eseguito viene prima trasformato nel bytecode HipHop (HHBC) e successivamente tradotto dinamicamente in linguaggio macchina x86-64, ottimizzato ed eseguito nativamente.[2][3] Ciò avviene in contrasto con l'esecuzione via interprete solita del PHP, nella quale lo Zend Engine trasforma il codice sorgente PHP in opcode che, utilizzati come una forma di bytecode, vengono eseguiti direttamente dalla CPU virtuale dello Zend Engine.[4]

HHVM è sviluppata da Facebook. Il suo codice sorgente è ospitato su GitHub ed è concessa in licenza sotto i termini della licenza PHP e la licenza Zend.

Caratteristiche

[modifica | modifica wikitesto]

HHVM è stato creato come il successore del motore di esecuzione di PHP HipHop for PHP (HPHPc), un transpiler PHP-to-C++ creato anch'esso da Facebook.[5][6] Reduce dall'esperienza nel provare a risolvere i problemi introdotti dalla HPHPc, Facebook ha deciso all'inizio del 2010 di creare una macchina virtuale per il PHP basata sulla compilazione JIT. I problemi principali della HPHPc erano infatti la poca popolarità del software, la mancanza del supporto completo a tutte le caratteristiche del linguaggio PHP e le difficoltà di sviluppo e pubblicazione di alcuni progetti imponenti che usavano la HPHPc.[5] Nel primo quadrimestre del 2013 la versione pubblica del sito facebook.com ha smesso di usare HPHPc ed è passata alla HHVM.

Seguendo il principio di compilazione HIT, HHVM converte il codice PHP o Hack eseguito in un bytecode ad alto livello, l'HHBC conosciuto anche come rappresentazione intermedia. HHBC è un formato bytecode creato appositamente per la HHVM, un modo che sia utilizzabile sia dagli interpreti che dai compilatori just-in-time. Come passo successivo durante l'esecuzione, la HHVM traduce dinamicamente ("just-in-time") il bytecode HHBC in linguaggio macchina x86-64, esegue ulteriori ottimizzazioni grazie all'analisi dinamica del bytecode tradotto ed esegue il linguaggio macchina x86-64.[5][7][8] Dal risultato, si osserva come la HHVM abbia alcune similarità alle macchine virtuali usate da altri linguaggi di programmazione come il Common Language Runtime (CLR, per il linguaggio C#) e la Java Virtual Machine (JVM, per il linguaggio Java).

HHVM porta molti benefici rispetto alla HPHPc, e uno di questi è il supporto quasi completo all'intero linguaggio PHP come definito dall'implementazione ufficiale del PHP versione 5.4, includendo il supporto della macchina per i costrutti create_function() e eval().[9][10] Inoltre la HHVM utilizza lo stesso motore di esecuzione sia durante lo sviluppo che durante la produzione, supportando l'integrazione con il debugger HPHPd in entrambi gli ambienti. Inoltre HHVM elimina le lunghe build necessarie dalla HPHPc per eseguire i programmi PHP, creando un processo di sviluppo e pubblicazione molto più semplice rispetto a quello della HPHPc.[7]

Insieme alla HHVM, Facebook ha rilasciato anche Hack, un linguaggio di programmazione creato appositamente per la HHVM e che può essere visto come una nuova versione del linguaggio PHP.[11][12] Hack permette di utilizzare sia la tipizzazione statica che quella dinamica, un concetto noto come tipizzazione graduale. Permette inoltre di specificare i tipi per le proprietà di classe, per i parametri e per i valori di ritorno. Allo stesso tempo, Hack non è completamente compatibile con il PHP a causa della mancanza di alcune caratteristiche del PHP come la dichiarazione goto e l'assegnazione dinamica dei nomi delle variabili.[13][14][15][16]

Performance

[modifica | modifica wikitesto]

Essendo una macchina virtuale per processi che provvede al loro ambiente di esecuzione, HHVM ha la capacità di utilizzare le informazioni prodotte dal codice durante l'esecuzione per produrre linguaggio macchina più efficiente, portando ad un maggiore throughput dei server e ad una minore latenza. Nell'ultimo quadrimestre del 2012, l'esecuzione del codice sorgente di facebook.com sulla HHVM ha ottenuto performance pari a quelle ottenute sulla HPHPc[5] e nel dicembre 2013 le performance della HHVM sono migliorate fino a superare del 15% circa quelle della HPHPc.

Note

[modifica | modifica wikitesto]
  1. ^ Jason Evans, The HipHop Virtual Machine, su facebook.com, Facebook, 9 dicembre 2011. URL consultato il 2 agosto 2014.
  2. ^ Guilherme Ottoni, HHVM JIT: a profile-guided, region-based compiler for PHP and Hack, ACM, 11 giugno 2018, pp. 151-165, DOI:10.1145/3192366.3192374. URL consultato il 4 agosto 2018.
  3. ^ (EN) facebook/hhvm, su GitHub. URL consultato il 4 agosto 2018.
  4. ^ PHP and Zend Engine internals, su phpbuilder.com. URL consultato il 4 agosto 2018 (archiviato dall'url originale il 15 settembre 2014).
  5. ^ a b c d Speeding up PHP-based development with HHVM, su facebook.com. URL consultato il 4 agosto 2018.
  6. ^ (EN) Remove support for buildling HPHPc · facebook/hhvm@fc5b951, su GitHub. URL consultato il 6 agosto 2018.
  7. ^ a b The HipHop Virtual Machine, su facebook.com. URL consultato il 6 agosto 2018.
  8. ^ (EN) facebook/hhvm, su GitHub. URL consultato il 6 agosto 2018.
  9. ^ (EN) About upgrade to PHP 5.4 engine · Issue #716 · facebook/hhvm, su GitHub. URL consultato il 6 agosto 2018.
  10. ^ (EN) facebook/hhvm, su GitHub. URL consultato il 6 agosto 2018.
  11. ^ (EN) Facebook Introduces 'Hack,' the Programming Language of the Future, in WIRED. URL consultato il 6 agosto 2018.
  12. ^ (EN) Hack: a new programming language for HHVM – Facebook Code, su code.facebook.com. URL consultato il 6 agosto 2018.
  13. ^ (EN) Josh Lockhart, Facebook’s Hack, HHVM, and the future of PHP, in O'Reilly Radar, 3 aprile 2014. URL consultato il 6 agosto 2018.
  14. ^ Types: Annotations, su docs.hhvm.com. URL consultato il 6 agosto 2018.
  15. ^ Other Features: Introduction, su docs.hhvm.com. URL consultato il 6 agosto 2018 (archiviato dall'url originale il 12 maggio 2015).
  16. ^ Unsupported: Introduction, su docs.hhvm.com. URL consultato il 6 agosto 2018 (archiviato dall'url originale il 4 novembre 2015).

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su HHVM

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su hhvm.com. Modifica su Wikidata
  • Blog ufficiale, su hhvm.com. Modifica su Wikidata
  • (EN) HHVM, su GitHub. Modifica su Wikidata
  • Repository sorgenti di HHVM, su github.com. Modifica su Wikidata
V · D · M
PHP
Persone
  • Andi Gutmans
  • Rasmus Lerdorf
  • Zeev Suraski
Risorse
  • Composer
  • PEAR
Implementazioni
  • HHVM
  • HPHPc
  • Parrot
  • PeachPie
  • Phalanger
  • Quercus
  • Zend Engine
Web framework
  • CakePHP
  • CodeIgniter
  • Drupal
  • eZ Publish
  • Fat-Free
  • FuelPHP
  • Horde
  • Joomla!
  • Laminas/Zend Framework
  • Laravel
  • Li3
  • Lumen
  • Midgard
  • MODx
  • Nette Framework
  • Phalcon
  • Pop PHP
  • PHP-Fusion
  • PRADO
  • Qcodo
  • Silex
  • SilverStripe
  • Symfony
  • TYPO3
  • WordPress
  • XOOPS
  • Yii
  • Zeta Components
Testing
  • Behat
  • PHPUnit
  • Lime (Symfony)
ORM
  • Doctrine
  • Propel
IDE
  • Aptana
  • Codelobster
  • Eclipse PDT
  • NetBeans
  • PHPEdit
  • PhpStorm
  • RadPHP
  • Zend Studio
Widget toolkit
  • PHP-GTK
  • wxPHP
  • Categoria Categoria
  • Pagina Commons Commons
V · D · M
Meta Platforms
Sito webFacebook · Bluetooth Beacon · Credits · Dating · Edgerank · Graph Search · Instant Articles · Live · Platform · Safety Check · Stories · Watch · Zero
Altri prodotti
AttualiAtlas Solutions · Express Wi-Fi · Free Basics · Giphy · Instagram (Hyperlapse · IGTV) · Messenger (Messenger Kids) · Mapillary · Oculus Quest · Oculus Rift · Oculus Go · Oculus Touch · Portal · Threads · WhatsApp · Workplace
PrecedentiFriendFeed · Home · M · Onavo · Paper · Slingshot · tbh · Wirehog
Persone
FondatoriMark Zuckerberg (28%) · Dustin Moskovitz (7%) · Eduardo Saverin (5%, in precedenza) · Chris Hughes (1%, in precedenza) · Andrew McCollum
ConsiglioMark Zuckerberg · Jim Breyer (11%) · Peter Thiel (2%) · Sheryl Sandberg · Marc Andreessen · Erskine Bowles · Susan Desmond-Hellmann · Donald E. Graham · Reed Hastings
Dirigenti
AttualiMark Zuckerberg (Presidente e CEO) · Sheryl Sandberg (COO) · David Wehner (CFO) · Mike Schroepfer (CTO)
PrecedentiSean Parker (4%, in precedenza) · Owen Van Natta · Gideon Yu · Adam D'Angelo · Chris Kelly · Bret Taylor · David Ebersman
Dipendenti degni di nota
AttualiNick Clegg (vicepresidente per gli affari globali e la comunicazione) · Lars Rasmussen (direttore di Graph Search) · John Carmack (CTO di Oculus VR) · Hugo Barra (vicepresidente di Oculus VR) · Naomi Gleit (vicepresidente dei beni pubblici)
PrecedentiChris Cox (direttore di produzione) · Blake Ross (direttore di produzione) · Ted Ullyot (vicepresidente, consigliere generale e segretario) · Matt Cohler · Charlie Cheever · Randi Zuckerberg · Yishan Wong · George Hotz · Joe Lockhart · Andrei Alexandrescu (ricercatore) · Elliot Schrage (vicepresidente della comunicazione globale, marketing e politiche pubbliche)
Open sourceApache Cassandra · Apache Hive · Apache Thrift · Buck · FQL · Hack · HHVM · HipHop for PHP · Infer · MyRocks · Open Compute Project · Phabricator · React · React Native · RocksDB · Scribe · Telecom Infra Project · Tornado
Mass mediaThe Facebook Effect · Miliardari per caso - L'invenzione di Facebook: una storia di soldi, sesso, genio e tradimento · The Social Network
  Portale Internet: accedi alle voci di Teknopedia che trattano di internet
Estratto da "https://it.wikipedia.org/w/index.php?title=HHVM&oldid=144058672"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022