Pular para o conteúdo

Sobre o Kriol

KriolLang (ou Kriol) é uma linguagem de programação imperativa, de tipagem estática e compilada. Foi criada usando palavras-chave do Criolo cabo-verdiano, a língua materna de Cabo Verde.

A sintaxe inspira-se em linguagens como C, Go e Rust, mas distingue-se pelo uso da língua criola para tornar a programação mais acessível aos cabo-verdianos e falantes de criolo.

molda Pessoa {
textu nomi;
textu apelidu;
textu idadi;
}
fn novu_pessoa(textu nomi, textu apelidu, textu idadi) Pessoa {
divolvi Pessoa::{nomi: nomi, apelidu: apelidu, idadi: idadi};
}
fn mostra_pessoa(Pessoa p) {
mostran(f"{p.nomi} {p.apelidu} tem {p.idadi} anos de idade.");
}
fn inisiu() {
Pessoa[3] pessoas = [
novu_pessoa('José', 'Tavares', '60'),
novu_pessoa('Yara', 'Coelho', '44'),
novu_pessoa('Clara', 'Sanchez', '71')
];
pa nter i = 0 ; i < 3 ; i += 1 {
mostra_pessoa(pessoas[i]);
}
mostran("-----------------");
mostran("[[ y abo go? ]]");
textu nomi = toma("-> nomi: ");
textu apelidu = toma("-> apelidu: ");
textu idadi = toma("-> idadi: ");
mostran("-----------------");
Pessoa abo = novu_pessoa(nomi, apelidu, idadi);
mostra_pessoa(abo);
}

O Criolo é naturalmente adequado para programação. Tal como o inglês, tem baixa dependência de acentos e caracteres especiais. Exemplo:

  • Em português: se/senão precisa de ser escrito se/senao (sem acento)
  • Em Criolo: si/sinon já é naturalmente ASCII e soa relativamente mais natural

O Kriol serve como porta de entrada à programação para falantes de Criolo cabo-verdiano. Permite ensinar lógica e programação numa língua próxima do quotidiano.

A linguagem já suporta:

  • Variáveis tipadas (nter, num, textu, bool e tipos primitivos explícitos como i32, u64, f32)
  • Funções com retorno tipado
  • Estruturas de controlo (si/sinon, nkuantu, pa)
  • Arrays e strings
  • Input/output (mostra, mostran, toma)
  • Suporte para Windows e macOS
  • Biblioteca padrão mais completa
  • Gestão de ficheiros
  • Módulos e imports
  • Estruturas (molda)
  • Melhorias no sistema de tipos

O projecto é Open Source sob licença MIT. Contribuições são bem-vindas no GitHub.