-
Notifications
You must be signed in to change notification settings - Fork 24
Home
Égua é uma linguagem de programação nascida e mantida em Belém do Pará, Brasil. O principal objetivo da linguagem é auxiliar no aprendizado de lógica de programação em língua portuguesa, visto que todos os comandos da linguagem são feitos em português, fazendo com que os desenvolvedores que não possuem conhecimento da língua inglesa consigam entender de fato o código escrito.
Égua é uma linguagem em código aberto e gratuita para a utilização de todos. O site oficial é https://egua.tech.
Delégua é uma variação da linguagem Égua patrocinada pela Design Líquido, empresa brasileira sediada em Curitiba, Paraná, Brasil. O principal objetivo da linguagem é uma abordagem mais comercial em cima da linguagem Égua, com algumas capacidades a mais, como trabalhar com o ecossistema Node.js e a composição das bibliotecas, que não fazem parte do núcleo da linguagem.
Mesmo com a abordagem mais comercial, a licença da linguagem é MIT, o que significa que a linguagem sempre foi e sempre será gratuita para qualquer uso. A ideia é apenas tornar a linguagem mais robusta, para o caso de aplicações grandes, escaláveis, com valor além do educacional.
Delégua começou tendo como base o código fonte de Égua até a versão 1.2.0, quando nasceu, no começo de 2022, mas é radicalmente diferente na implementação. Toda a lógica da linguagem é traduzida ao máximo para o português, para também servir os fins didáticos de como construir uma linguagem interpretada. Égua, até então, é implementada em cima de JavaScript. Delégua usa TypeScript e é mais modularizada.
Assim como Égua, Delégua tem quatro componentes internos:
- Um lexador, ou analisador léxico, que obtém todos os lexemas (ou radicais) do código e os transforma em tokens (ou símbolos), que são unidades de categorização de função linguística, como literais, variáveis, funções, classes, etc.
- Um parser, ou analisador sintático, que confere todos os símbolos definidos pelo lexador e os transforma em estruturas de alto nível, que serão usadas para a execução lógica do código.
- Um resolvedor, que monta a tabela de símbolos lógicos (literais, variáveis, funções, classes, etc., por seus nomes) e organiza os escopos.
- Por exemplo, as variáveis de uma classe podem ser acessadas por seus métodos, mas as variáveis declaradas dentro de métodos não podem ser acessadas por outros métodos da mesma classe. Em outras palavras, o escopo dos métodos é mais restritivo que o escopo da classe à qual pertencem.
- Todas as referências usadas pelo código, como acesso a objetos, métodos e variáveis, são intermediadas (ou resolvidas) pelo resolvedor.
- Um interpretador, que efetivamente executa a lógica do código, visitando as estruturas de alto nível criadas pelo analisador sintático.
A interpretação é feita usando Node.js, um motor bastante conhecido na indústria, que entende JavaScript e é escrito em C/C++.
O código fonte é em TypeScript, que é transpilado para JavaScript no momento em que uma nova versão de Delégua é lançada. Há também a interpretação direta em TypeScript quando desenvolvemos ou depuramos o motor da linguagem, usando ts-node.
Em teoria, Delégua suporta qualquer biblioteca Node.js no padrão do NPM. Por exemplo, se quisermos usar a biblioteca Lodash, uma conhecida biblioteca para tratamento de estruturas de dados, podemos usar o seguinte:
// Para isso funcionar, a biblioteca `lodash` precisa estar instalada ou no projeto (diretório `node_modules`) ou globalmente.
var lodash = importar('lodash');
var a = { 'b': 'c' };
escreva(lodash.get(a, 'b', 'f'));
// Resultado: c
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação