Hack (linguagem de programação) - Hack (programming language)

Hackear
Logotipo do hack, com letras brancas minúsculas "hack" em um fundo preto, com formas geométricas triangulares estilizadas à esquerda
Projetado por Julien Verlaguet, Alok Menghrajani, Drew Paroski e outros
Desenvolvedor Facebook
Apareceu pela primeira vez 2014
Disciplina de digitação Estático , dinâmico , fraco , gradual
SO Plataforma cruzada
Licença Licença MIT
Local na rede Internet hacklang .org
Influenciado por
PHP , OCaml , Java , C # , Scala , Haskell

Hack é uma linguagem de programação para a Máquina Virtual HipHop (HHVM), criada pelo Facebook como um dialeto do PHP . A implementação da linguagem é de código aberto , licenciada sob a Licença MIT .

Hack permite que os programadores usem tipagem dinâmica e tipagem estática . Esse tipo de sistema de tipo é chamado de digitação gradual , que também é implementado em outras linguagens de programação, como ActionScript . Sistema do tipo de corte permite que tipos a serem especificados para função argumentos , função de valores de retorno , e propriedades de classe ; no entanto, os tipos de variáveis ​​locais são sempre inferidos e não podem ser especificados.

História

O hack foi introduzido em 20 de março de 2014. Antes do anúncio da nova linguagem de programação, o Facebook já havia implementado o código e "testado em batalha" em grande parte de seu site.

Recursos

Hack é projetado para interoperar perfeitamente com PHP, que é uma linguagem de script de código aberto amplamente usada que tem foco no desenvolvimento da web e pode ser incorporada em HTML . A maioria dos scripts PHP válidos também são válidos no Hack; no entanto, vários recursos PHP e construções de linguagem usados ​​com menos frequência não são compatíveis com o Hack.

Hack estende a sugestão de tipo disponível no PHP 5 por meio da introdução de tipagem estática, adicionando novas dicas de tipo (por exemplo, para tipos escalares como inteiro ou string), bem como estendendo o uso de dicas de tipo (por exemplo, para propriedades de classe ou valores de retorno de função). No entanto, os tipos de variáveis ​​locais não podem ser especificados. Como o Hack usa um sistema de digitação gradual, no modo padrão, as anotações de tipo não são obrigatórias mesmo em lugares onde não podem ser inferidas; o sistema de tipos presumirá que o autor está correto e admitirá o código. No entanto, está disponível um modo "estrito" que requer essas anotações e, portanto, impõe um código totalmente sólido.

Sintaxe e semântica

A estrutura básica de arquivos de um script de hack é semelhante a um script de PHP com algumas alterações. Um arquivo de hack não inclui a <?phptag de marcação de abertura e proíbe o uso de declarações de nível superior. O código deve ser colocado em uma função de ponto de entrada. Estes são executados automaticamente, se eles estão no arquivo de nível superior, mas não se o arquivo está incluído via include, requireou o autoloader. Como outras funções no Hack, os nomes das funções devem ser exclusivos dentro de um projeto - ou seja, projetos com vários pontos de entrada não podem chamar ambos main :

<<__EntryPoint>>
function main(): void {
  echo 'Hello, World!';
}

O script acima, semelhante ao PHP, será executado e a seguinte saída será enviada ao navegador:

Hello, World!

Ao contrário do PHP, Hack e código HTML não se misturam; o XHP ou outro mecanismo de modelo precisa ser usado.

Funções

Como o PHP 7, Hack permite que tipos sejam especificados para argumentos de função e valores de retorno de função. As funções no Hack são, portanto, anotadas com tipos como o seguinte:

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

Veja também

Referências

links externos