Duwa? é o meu trabalho de amor - uma linguagem esotérica simples (esolang) que combina a linguagem tradicional com a programação moderna. Como falante nativo de chichewa e programador, eu queria criar algo único que preenchesse a lacuna entre minha herança linguística e o mundo da tecnologia. Duwa usa o chichewa, uma língua bantu falada no Malawi, como núcleo, tornando-o uma ferramenta única para aprendizagem e preservação cultural.
A criação de Duwa foi impulsionada por vários objetivos principais:
Duwa é um reflexo da minha paixão pela programação e pela minha língua nativa, e espero que sirva como uma plataforma de boas-vindas para outras pessoas na comunidade de língua chichewa.
Se você quiser experimentar o Duwa, veja como começar:
./duwa -f path/to/your/program.duwa
Deixe-me mostrar alguns dos princípios básicos do Duwa.
ndondomeko pano() { lemba("Moni Dziko"); } pano();
Neste exemplo:
Duwa suporta uma variedade de tipos de variáveis:
// Numbers nambala yoyamba = 1; nambala yachiwiri = 2; nambala yomaliza = yoyamba yachiwiri; // Strings mawu dzina = "Maliko"; // Maps mgwirizano munthu = { "dzina": "Soma", "zaka": 3 } // Other types like boolean are not strongly typed
Eu escolhi usar ngati para instruções if e kapena para else, fazendo com que a lógica flua mais naturalmente em Chichewa:
// If statement ngati(yoyamba > yachiwiri) { // panga zinthu (do something) } // If-else statement ngati(yoyamba > yachiwiri) { // panga zinthu } kapena { // panga zinthu }
Duwa também suporta loops while e for:
// While loop pamene(yoyamba > 2) { // panga zinthu yoyamba } // For loop za(nambala x = 0; x > 5; x ) { // panga zinthu }
Para lhe dar uma ideia do que Duwa pode fazer, aqui está um algoritmo de pesquisa linear simples.
Crie um novo arquivo chamado Kufufuza.duwa em seu editor favorito
ndondomeko kufufuza(arr, x) { za(nambala i = 0; iExecute o programa executando
duwa -f Kufufuza.duwaVocê receberá o índice de 10 impresso em seu console
Quebrando o Código
- ndondomeko kufufuza(arr, x): Esta função realiza a pesquisa linear. "Kufufuza" significa "pesquisar" em Chichewa.
- O loop za itera pelo array, verificando o valor alvo.
- ngati (arr[i] == x): Se o elemento for encontrado, a função retorna seu índice.
- Se o elemento não for encontrado, a função retorna -1.
- ndondomeko doLinearSearch(): Esta função configura o caso de teste e chama a função de pesquisa.
- O resultado é impresso usando lembanzr, que escolhi para significar "escrever linha".
Este exemplo dá uma ideia de como Duwa lida com algoritmos enquanto permanece fiel à linguagem Chichewa.
Estado Atual de Duwa
Duwa ainda é um trabalho em andamento e há algumas palavras e construções que ainda não foram totalmente traduzidas para o chichewa. Estou trabalhando ativamente nessas traduções e pretendo ter tudo pronto quando Duwa chegar à versão 1.0.
Mesmo em seu estado atual, Duwa está totalmente funcional e estou animado para ver como ele cresce à medida que continuo a refiná-lo. Eu adoraria ouvir seu feedback enquanto você experimenta!
Bônus: Eu criei uma extensão vscode simples para adicionar suporte para Duwa ao vscode, por enquanto, você só obterá destaque de sintaxe, mas trabalhará para adicionar mais recursos. Pesquise Duwa Language na guia de extensão vscode ou baixe aqui
Desenvolvimento Futuro
Olhando para o futuro, tenho alguns planos ambiciosos para Duwa:
Duwa é construído inteiramente do zero em Golang, aproveitando seus pontos fortes para criar um ambiente de programação rápido, eficiente e confiável. Esta tem sido uma jornada desafiadora, mas gratificante, e estou animado para ver aonde ela leva.
Seja você um falante de Chichewa curioso sobre codificação ou um entusiasta de programação em busca de algo diferente, espero que Duwa inspire você tanto quanto me inspirou. Esta jornada está apenas começando e estou muito feliz em compartilhá-la com você. Ao tornar Chichewa parte do mundo da codificação, Duwa abre novas possibilidades para educação, preservação cultural e expressão criativa.
Confira a postagem original
Confira o github.
Confira a documentação (ainda um trabalho em andamento)
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3