Sobre o Kriol
O que é o Kriol?
Seção intitulada “O que é 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);}Porque usar Criolo?
Seção intitulada “Porque usar Criolo?”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ãoprecisa de ser escritose/senao(sem acento) - Em Criolo:
si/sinonjá é naturalmente ASCII e soa relativamente mais natural
Objectivo
Seção intitulada “Objectivo”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.
Estado atual
Seção intitulada “Estado atual”A linguagem já suporta:
- Variáveis tipadas (
nter,num,textu,boole tipos primitivos explícitos comoi32,u64,f32) - Funções com retorno tipado
- Estruturas de controlo (
si/sinon,nkuantu,pa) - Arrays e strings
- Input/output (
mostra,mostran,toma)
Planos futuros
Seção intitulada “Planos futuros”- 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.