stringtranslate.com

Hackear (lenguaje de programación)

Hack es un lenguaje de programación para HipHop Virtual Machine (HHVM), creado por Meta (anteriormente Facebook) como un dialecto de PHP . La implementación del lenguaje es de código abierto , con licencia MIT . [2] [3] [4]

Hack permite a los programadores utilizar tanto escritura dinámica como estática . Este tipo de sistema de tipos se denomina tipificación gradual , y también se implementa en otros lenguajes de programación como ActionScript . [5] El sistema de tipos de Hack permite especificar tipos para argumentos de función , valores de retorno de función y propiedades de clase ; sin embargo, los tipos de variables locales siempre se infieren y no se pueden especificar. [3] [6]

Historia

Hack se introdujo el 20 de marzo de 2014. [7] Antes del anuncio del nuevo lenguaje de programación, Facebook ya había implementado el código y lo había probado en una gran parte de su sitio web.

Características

Hack está diseñado para interoperar perfectamente con PHP, que es un lenguaje de programación de código abierto ampliamente utilizado que se centra en el desarrollo web y puede integrarse en HTML . La mayoría de los scripts PHP válidos también lo son en Hack; sin embargo, Hack no admite numerosas funciones PHP y construcciones de lenguaje utilizadas con menos frecuencia. [8]

Hack extiende las sugerencias de tipo disponibles en PHP 5 mediante la introducción de escritura estática, agregando nuevas sugerencias de tipo (por ejemplo, para tipos escalares como enteros o cadenas), así como extendiendo el uso de sugerencias de tipo (por ejemplo, para propiedades de clase o valores de retorno de función). Sin embargo, no se pueden especificar tipos de variables locales. [6] Dado que Hack utiliza un sistema de escritura gradual, en el modo predeterminado, las anotaciones de escritura no son obligatorias incluso en lugares donde no se pueden inferir; el sistema de tipos asumirá que el autor es correcto y admitirá el código. [9] Sin embargo, hay disponible un modo "estricto" que requiere tales anotaciones y, por lo tanto, aplica un código totalmente sólido. [10]

Sintaxis y semántica

La estructura de archivos básica de un script Hack es similar a un script PHP con algunos cambios. Un archivo Hack no incluye la <?phpetiqueta de marcado de apertura y prohíbe el uso de declaraciones de nivel superior. [11] El código debe colocarse en una función de punto de entrada. Estos se ejecutan automáticamente si están en el archivo de nivel superior, pero no si el archivo se incluye mediante include, requireo el cargador automático. Al igual que otras funciones en Hack, los nombres de las funciones deben ser únicos dentro de un proyecto, es decir, no se pueden llamar a proyectos con múltiples puntos de entrada a ambos main:

<< __EntryPoint >> función  principal () :  void  {  echo  '¡Hola mundo!' ; }

Se ejecutará el script anterior, similar a PHP, y se enviará el siguiente resultado al navegador:

¡Hola Mundo!

A diferencia de PHP, el código Hack y HTML no se mezclan; Es necesario utilizar XHP u otro motor de plantilla . [8]

Funciones

Al igual que PHP 7, Hack permite especificar tipos para argumentos de función y valores de retorno de función. Por lo tanto, las funciones en Hack están anotadas con tipos como los siguientes:

// Las funciones de hack están anotadas con tipos. función  negar ( bool  $x ) :  bool  {  retorno  ! $x ; }

Ver también

Referencias

  1. ^ Bryan O'Sullivan (28 de marzo de 2014). "Dónde pertenece el crédito por el hackeo". Archivado desde el original el 1 de marzo de 2021 . Consultado el 6 de febrero de 2019 .
  2. ^ ab "facebook/hhvm: hhvm / hphp / hack / LICENCIA". github.com . Metaplataformas . 2018-04-11. Archivado desde el original el 7 de enero de 2019 . Consultado el 6 de febrero de 2019 .
  3. ^ ab Josh Lockhart (3 de abril de 2014). "El Hack de Facebook, HHVM y el futuro de PHP". Medios O'Reilly . Archivado desde el original el 7 de enero de 2019 . Consultado el 6 de febrero de 2019 .
  4. ^ Cadé Metz (20 de marzo de 2014). "Facebook presenta 'Hack', el lenguaje de programación del futuro". Cableado . Archivado desde el original el 28 de marzo de 2014 . Consultado el 6 de febrero de 2019 .
  5. ^ Aseem Rastogi; Avik Chaudhuri; Basil Hosmer (enero de 2012). "Los entresijos de la inferencia de tipos gradual" (PDF) . Asociación de Maquinaria de Computación (ACM). Archivado (PDF) desde el original el 12 de agosto de 2017 . Consultado el 6 de febrero de 2019 .
  6. ^ ab "Manual de pirateo: Hack y HHVM - Anotaciones de tipo". docs.hhvm.com . Archivado desde el original el 2018-08-02 . Consultado el 6 de febrero de 2019 .
  7. ^ Verlaguet, Julien; Menghrajani, GANDHI (20 de marzo de 2014). "Hack: un nuevo lenguaje de programación para HHVM". Facebook . Archivado desde el original el 9 de febrero de 2019 . Consultado el 6 de febrero de 2019 .
  8. ^ ab "Inconsistencias: Introducción". docs.hhvm.com . Archivado desde el original el 4 de abril de 2019 . Consultado el 4 de abril de 2019 .
  9. ^ "Manual de pirateo: modo parcial". docs.hhvm.com . Archivado desde el original el 19 de noviembre de 2018 . Consultado el 6 de febrero de 2019 .
  10. ^ "Manual de pirateo: modo estricto". docs.hhvm.com . Archivado desde el original el 19 de noviembre de 2018 . Consultado el 6 de febrero de 2019 .
  11. ^ Emmott, Fred (11 de febrero de 2019). "HHVM 4.0.0". hhvm.com . Archivado desde el original el 14 de mayo de 2021 . Consultado el 2 de mayo de 2019 .

enlaces externos