Hack (Programmiersprache)

Hacken
Hack logo, featuring white lowercase "hack" letters on a black background, with stylized triangular geometric shapes on the left
Entworfen von Julien Verlaguet, Alok Menghrajani, Drew Paroski und andere[1]
Entwickler Meta -Plattformen
Erstmals erschienen 2014
Disziplin tippen Statisch, dynamisch, schwach, schrittweise
OS Plattformübergreifend
Lizenz MIT -Lizenz[2]
Webseite Hacklang.org
Beeinflusst von
Php, Ocaml, Java, C#, Scala, Haskell

Hacken ist ein Programmiersprache für die HipHop Virtual Machine (HHVM), erstellt von Meta als Dialekt von Php. Die Sprachimplementierung ist Open Source, lizenziert unter dem MIT -Lizenz.[2][3][4]

Hack ermöglicht es den Programmierern, beide zu verwenden Dynamisches Typing und statische Typisierung. Diese Art von a Typ System wird genannt schrittweise Typisierung, was auch in anderen Programmiersprachen wie z. Aktionen.[5] Mit dem Typ -Typs -System von Hack können Typen angegeben werden Funktion Argumente, Funktion Rückgabewerte, und Klasseneigenschaften; Allerdings Arten von Lokale Variablen werden immer abgeleitet und können nicht angegeben werden.[3][6]

Geschichte

Hack wurde am 20. März 2014 vorgestellt.[7] Vor der Ankündigung der neuen Programmiersprache hatte Facebook den Code bereits implementiert und ihn auf einem großen Teil seiner Website "Battle getestet".

Merkmale

Hack ist so konzipiert, dass er nahtlos mit PHP zusammenarbeitet, einem weit verbreiteten Open-Source Skriptsprache Das konzentriert sich auf Web Entwicklung und kann eingebettet werden in Html. Ein Großteil der gültigen PHP -Skripte ist auch in Hack gültig. Zahlreiche weniger häufig verwendete PHP -Funktionen und Sprachkonstrukte werden im Hack nicht unterstützt.[8]

Hack erweitert die Typ Hinweis Erhältlich in PHP 5 durch die Einführung der statischen Typisierung, durch Hinzufügen neuer Typ -Hinweise (z. Werte). Arten lokaler Variablen können jedoch nicht angegeben werden.[6] Da Hack ein allmähliches Tippsystem verwendet, sind im Standardmodus Typ Anmerkungen nicht obligatorisch, selbst wenn sie nicht abgeleitet werden können. Das Typsystem geht davon aus, dass der Autor korrekt ist und den Code zugibt.[9] Ein "strenger" Modus ist jedoch verfügbar, der solche Anmerkungen erfordert und somit einen vollständigen Toncode erzwingt.[10]

Syntax und Semantik

Die grundlegende Dateistruktur eines Hack -Skripts ähnelt einem PHP -Skript mit wenigen Änderungen. Eine Hack -Datei enthält nicht die Öffnen Sie das Markup-Tag und verbietet mithilfe von Deklarationen auf höchstem Niveau.[11] Der Code muss in eine Einstiegspunktfunktion platziert werden. Diese werden automatisch ausgeführt, wenn sie sich in der obersten Datei befinden, jedoch nicht, wenn die Datei über die Datei enthalten ist enthalten, benötigen, oder der Autoloader. Wie andere Funktionen in Hack müssen die Funktionsnamen innerhalb eines Projekts eindeutig sein - d. H. Projekte mit mehreren Einstiegspunkten können beides nicht aufrufen hauptsächlich:

<<__Einstiegspunkt>> Funktion hauptsächlich(): Leere {  Echo 'Hallo Welt!'; } 

Das obige Skript, ähnlich wie PHP, wird ausgeführt und die folgende Ausgabe wird an den Browser gesendet:

Hallo, Welt! 

Im Gegensatz zu PHP mischen Hack- und HTML -Code nicht; entweder XHP oder ein anderes Template Engine muss verwendet werden.[8]

Funktionen

Wie bei PHP 7 können die Typen für Funktionsargumente und Funktionsrückgabewerte angegeben werden. Funktionen in Hack werden somit mit Typen wie folgt kommentiert:

// Hackfunktionen werden mit Typen kommentiert. Funktion negieren(bool $ x): bool {  Rückkehr !$ x; } 

Siehe auch

Verweise

  1. ^ Bryan O'Sullivan (2014-03-28). "Wo Kredit zum Hack gehört". Archiviert vom Original am 2021-03-01. Abgerufen 2019-02-06.
  2. ^ a b "Facebook / HHVM: HHVM / HPHP / Hack / Lizenz". github.com. Meta -Plattformen. 2018-04-11. Archiviert vom Original am 2019-01-07. Abgerufen 2019-02-06.
  3. ^ a b Josh Lockhart (2014-04-03). "Facebooks Hack, HHVM und die Zukunft von PHP". O'Reilly Media. Archiviert vom Original am 2019-01-07. Abgerufen 2019-02-06.
  4. ^ Cade Metz (2014-03-20). "Facebook führt 'Hack' vor, die Programmiersprache der Zukunft". Verdrahtet. Archiviert vom Original am 2014-03-28. Abgerufen 2019-02-06.
  5. ^ Asem Rastogi; Avik Chaudhuri; Basil Hosmer (Januar 2012). "Die Vor- und Nachteile allmählicher Typ -Inferenz" (PDF). Verband für Rechenmaschinen (ACM). Archiviert (PDF) vom Original am 2017-08-12. Abgerufen 2019-02-06.
  6. ^ a b "Hack Manual: Hack und HHVM - Typ Anmerkungen" Typ ". docs.hhvm.com. Archiviert vom Original am 2018-08-02. Abgerufen 2019-02-06.
  7. ^ Verlaguet, Julien; Menghrajani, Gandhi (2014-03-20). "Hack: Eine neue Programmiersprache für HHVM". Facebook. Archiviert vom Original am 2019-02-09. Abgerufen 2019-02-06.
  8. ^ a b "Inkonsistenzen: Einführung". docs.hhvm.com. Archiviert von das Original Am 2019-04-04. Abgerufen 2019-04-04.
  9. ^ "Hack -Handbuch: Teilmodus". docs.hhvm.com. Archiviert vom Original am 2018-11-19. Abgerufen 2019-02-06.
  10. ^ "Hack -Handbuch: Strenge Modus". docs.hhvm.com. Archiviert vom Original am 2018-11-19. Abgerufen 2019-02-06.
  11. ^ Emmott, Fred (2019-02-11). "HHVM 4.0.0". hhvm.com. Archiviert vom Original am 2021-05-14. Abgerufen 2019-05-02.

Externe Links