Hack
linguaggio di programmazione
AutoreJulien Verlaguet, Alok Menghrajani, Drew Paroski, and others
Data di origine2014
Ultima versione4.172 (2 novembre 2022)
UtilizzoHipHop Virtual Machine (HHVM)
Tipizzazionestatica, dinamica, debole, graduale
Influenzato daPHP, OCaml, Java, C#, Scala, Haskell
Implementazione di riferimento
Sistema operativoCross-platform
Licenzalicenza MIT
Sito webhacklang.org

Hack è un linguaggio di programmazione per la macchina virtuale HipHop (HHVM), creato da Facebook come un dialetto del PHP. L'implementazione del linguaggio è open-source, concessa sotto i termini della Licenza BSD.[1][2]

Hack permette ai programmatori di usare contemporaneamente sia la tipizzazione dinamica che quella statica. Questo modello di tipizzazione viene chiamato tipizzazione graduale, implementata anche in altri linguaggi di programmazione come l'ActionScript.[3] Il sistema dei tipi del linguaggio Hack permette di specificare tipi per i parametri delle funzioni, per i valori di ritorno e per le proprietà di classe ma il tipo delle variabili locali è sempre dedotto dalla macchina.

Storia

modifica

Hack venne introdotto il 20 marzo 2015. Prima dell'annuncio del nuovo linguaggio di programmazione, Facebook aveva già implementato il codice e l'aveva provato su una grossa parte del suo sito.

Caratteristiche

modifica

Hack è progettato per interagire senza alcun problema con il PHP, linguaggio di scripting open-source ampiamente utilizzato che si concentra sullo sviluppo web e può essere incluso nel HTML. La maggioranza degli script validi in PHP sono validi anche in Hack, nonostante ciò, molte strutture del PHP meno utilizzate non sono supportate in Hack.

Sintassi e semantica

modifica

La struttura base di uno script Hack è simile a quella di uno script PHP con alcune modifiche. Un file Hack inizia con <?hh rispetto al <?php per uno script PHP:

<?hh
echo 'Hello World';

Lo script sovrastante, simile al PHP, sarà eseguito e sarà mandato al browser il seguente risultato:

Hello World

Un importante punto da notare è che differentemente dal PHP, Hack e HTML non si mescolano. Normalmente si può mescolare PHP e codice HTML insieme nello stesso file, come qui:

<html>
 <head>
 <title>PHP Test</title>
 </head>
 <body>
 <!-- hh and html do not mix -->
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>

Questo tipo di codice non è supportato in Hack; deve essere utilizzato un template engine come XHP.

Funzioni

modifica

Hack permette di specificare i tipi per i parametri di una funzione come anche per i valori di ritorno. Le funzioni in Hack sono quindi annotate con i tipi come nell'esempio sottostante:

<?hh
// Hack functions are annotated with types.
function negate(bool $x): bool {
 return !$x;
}

Note

modifica
  1. ^ Josh Lockhart, Facebook's Hack, HHVM, and the future of PHP, su radar.oreilly.com, O'Reilly Media, 3 aprile 2014. URL consultato il 2 agosto 2014.
  2. ^ Cade Metz, Facebook Introduces 'Hack,' the Programming Language of the Future, su wired.com, Wired, 20 marzo 2014. URL consultato il 15 aprile 2014.
  3. ^ Aseem Rastogi, Avik Chaudhuri Basil Hosmer, The Ins and Outs of Gradual Type Inference (PDF), su cs.umd.edu, Association for Computing Machinery (ACM), gennaio 2012. URL consultato il 23 settembre 2014.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Internet: accedi alle voci di Wikipedia che trattano di internet

📚 Artikel Terkait di Wikipedia

Lista dei linguaggi di programmazione

Mouse MQL - Metatrader 3 programming language MQ4 - Metatrader 4 programming language MQ5 - Metatrader 5 programming language MPD MSIL - nome deprecato

Facebook

URL consultato il 21 gennaio 2025. ^ Facebook Introduces 'Hack,' the Programming Language of the Future - WIRED, su wired.com. URL consultato il 17 dicembre

Cultura hacker

Tao of Programming, Santa Monica, CA, InfoBooks, ISBN 978-0-931137-07-5. (EN) Brian W. Kernighan e Dennis Ritchie, The C Programming Language, Englewood

Cronologia dei linguaggi di programmazione

2008 (archiviato dall'url originale il 1º maggio 2007). ^ (EN) Red Programming Language, su red-lang.org. URL consultato il 17 dicembre 2016. ^ (EN) Why

Roblox

applicò miglioramenti del server. Nel dicembre 2011 Roblox tenne la sua prima Hack Week, un evento annuale in cui gli sviluppatori di Roblox lavorano su idee

HHVM

Introduces 'Hack,' the Programming Language of the Future, in WIRED. URL consultato il 6 agosto 2018. ^ (EN) Hack: a new programming language for HHVM –

Why the lucky stiff

illustratore; ha tra l'altro disegnato le illustrazioni di The Ruby Programming Language di David Flanagan e Yukihiro Matsumoto. _why ha sviluppato numerose

Emily Ratajkowski

^ (EN) NBC Carries First Place Momentum Into 2018-19 with Year-Round Programming Strategy Focused on Bold New Shows, Strong Anchors and Top Talent, in