AlgoLang ou simplesmente Algo é uma linguagem de programação de alto nível, com tipagem estática e forte, projetada para ser pioneira no campo de ensino e experimentação de algoritmos.
Algo é um dialeto de Portugol que pode ser facilmente traduzido para outras línguas, veja a seção de Tecnologias.
- Variáveis
- Condicionais
- Loops
- Compilação Just-In-Time
- WORE (Write Once Run Everywhere)
Programas algo devem estar dentro de um bloco iniciado pela palavra-chave inicio
e terminado pela palavra-chave fim
.
inicio
# introduza a lógica aqui
fim
Existem 19 palavras reservadas:
numero, booleano, texto, var, inicio,
escrever, ler, fim, se, senao, e, ou
entao, verdade, falso, para, repetir,
ate, enquanto
Tipo | Valores (exemplos) |
---|---|
booleano | verdade, falso |
numero | 1, -0.5, … |
texto | "Ola mundo", … |
Sintaxe:
var <nome> <tipo>
Exemplos:
inicio
var nome texto
var versao numero
var condicao booleano
nome = "AlgoLang"
versao = 1.0
condicao = verdade
fim
Precedência | Operadores |
---|---|
Primeira | Operadores unários |
Segunda | *, / |
Terceira | + |
Quarta | - |
Quinta | < , ≤ , ≥ , > |
Sexta | == , ≠ |
Sétima | e |
Oitava | ou |
Sintaxe:
se <condicao> entao
<instrucoes>
fim
# ou
se <condicao> entao
<instrucoes>
senao se <condicao> entao
<instrucoes>
fim
Exemplo:
var num numero
num = 24
se num > 0 entao
escrever "Positivo"
senao se num == 0 entao
escrever "Nulo"
senao
escrever "Negativo"
fim
Sintaxe:
para <nome de var.> = <val. inicial> ate <val. limite> repetir
<instrucoes>
fim
# ou
para <nome de var.> = <val. inicial> ate <val. limite>, <incr/decr> repetir
<instrucoes>
fim
Exemplo:
var resultado, resultado2 numero
resultado = 0
resultado2 = 0
para i = 1 ate 11 repetir
resultado = resultado + i
fim
para i = 10 ate 0, -1 repetir
resultado2 = resultado2 + i
fim
Sintaxe:
enquanto <condicao> repetir
<instrucoes>
fim
Exemplo:
enquanto i < 11 repetir
resultado = resultado + i
i = i + 1
fim
Para compilar o binário do AlgoLang, certifique-se de instalar as seguintes ferramentas:
- gcc
- Clang
- Cmake
- Make
- Bison
- Flex
Após a instalação, clone o respositorio usando:
git clone https://github.com/renemuala/algolang
git submodule update --init
execute make -f build.mak
no diretório raiz para compilar lijbit e AlgoLang.
Ao final da compilação, você poderá encontrar o binário algo na pasta build.
Componentes do compilador Algo
Componente | Uso | Repo? |
---|---|---|
ILC | Frontend: Análise léxica, sintática e semântica | github |
libjit | Backend: Geração e otimização de código de máquina | github |