O código Luau, uma versão da linguagem Lua com checagem de tipos, foi aberto

Anunciado o lançamento dos textos-fonte e da primeira edição separada da linguagem de programação Luau, que continua a evolução da linguagem Lua e é retrocompatível com o Lua 5.1. A linguagem Luau é projetada principalmente para embutir manipuladores de scripts em aplicativos e foca em alcançar alto desempenho e baixo consumo de recursos. O código do projeto foi escrito em C++ e é aberto sob a licença MIT.

Luau expande o Lua com funcionalidades de verificação de tipos e algumas novas construções sintáticas, como literais de string. A linguagem é retrocompatível com o Lua 5.1 e parcialmente com versões mais novas. Suporta a API Lua Runtime, permitindo o uso do Luau com código e bindings já existentes. O runtime da linguagem é baseado em um código fortemente reestruturado do Lua runtime 5.1, mas o interpretador é completamente reescrito. Durante o desenvolvimento, foram utilizadas algumas novas técnicas de otimização, que permitiram alcançar um desempenho superior em comparação com o Lua.

O projeto foi desenvolvido pela Roblox e é utilizado no código da plataforma de jogos, jogos e aplicativos customizados da empresa, incluindo o editor Roblox Studio. Inicialmente, o Luau foi desenvolvido a portas fechadas, mas posteriormente foi decidido torná-lo um projeto aberto para desenvolvimento colaborativo com a participação da comunidade.

Principais características:

  • Um sistema de tipos gradual, que ocupa um espaço intermediário entre a tipagem dinâmica e a tipagem estática. O Luau permite o uso de tipagem estática conforme necessário, especificando informações sobre tipos por meio de anotações especiais. Tipos embutidos como "any", "nil", "boolean", "number", "string" e "thread" estão disponíveis. Ao mesmo tempo, mantém a possibilidade de usar tipagem dinâmica sem a definição explícita de tipos de variáveis e funções. function foo(x: number, y: string): boolean local k: string = y:rep(x) return k == "a" end
  • Suporte a literais de string (como no Lua 5.3), como "\0x**" (número hexadecimal), "\u{**}" (caractere Unicode) e "\z" (fim da linha), assim como a possibilidade de formatação visual de números (pode-se escrever 1_000_000 em vez de 1000000), e literais para números hexadecimais (0x…) e binários (0b……….)
  • Suporte à expressão "continue", complementando a palavra-chave existente "break", para passar para a nova iteração do loop.
  • Suporte para operadores de atribuição compostos (+=, -=, *=, /=, %=, ^=, ..=).
  • Suporte para o uso de blocos condicionais "if-then-else" na forma de expressões que retornam valores calculados durante a execução do bloco. É permitido especificar um número arbitrário de expressões elseif dentro do bloco. local maxValue = if a > b then a else b local sign = if x 0 then 1 else 0
  • Disponibilidade de um modo de isolamento (sandbox) que permite a execução de código não confiável. Este recurso pode ser utilizado para organizar a execução em paralelo de seu próprio código e código escrito por outros desenvolvedores, como bibliotecas de terceiros cuja segurança não pode ser garantida.
  • Limitação da biblioteca padrão, da qual foram removidas funções que podem potencialmente criar problemas de segurança. Por exemplo, bibliotecas como "io" (acesso a arquivos e execução de processos), "package" (acesso a arquivos e carregamento de módulos), "os" (funções de acesso a arquivos e mudanças de variáveis de ambiente removidas), "debug" (manipulação insegura de memória), "dofile" e "loadfile" (acesso ao sistema de arquivos) foram excluídas do conjunto padrão.
  • Fornecimento de ferramentas para análise estática de código, identificação de erros (linter) e verificação da correção do uso de tipos.
  • Interpretador de bytecode, compilador e parser de alta performance desenvolvidos internamente. O Luau ainda não suporta compilação JIT, mas é afirmado que o interpretador Luau, em algumas situações, é comparable em desempenho ao LuaJIT.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster