¿Duwa? es mi trabajo de amor: un lenguaje esotérico simple (esolang) que combina el lenguaje tradicional con la programación moderna. Como hablante nativo de chichewa y programador, quería crear algo único que cerrara la brecha entre mi herencia lingüística y el mundo tecnológico. Duwa utiliza el chichewa, un idioma bantú hablado en Malawi, como núcleo, lo que lo convierte en una herramienta única tanto para el aprendizaje como para la preservación cultural.
La creación de Duwa ha estado impulsada por varios objetivos clave:
Duwa es un reflejo de mi pasión tanto por la programación como por mi lengua materna, y espero que sirva como una plataforma acogedora para otros miembros de la comunidad de habla chichewa.
Si quieres probar Duwa tú mismo, aquí te explicamos cómo empezar:
./duwa -f path/to/your/program.duwa
Déjame mostrarte algunos de los conceptos básicos de Duwa.
ndondomeko pano() { lemba("Moni Dziko"); } pano();
En este ejemplo:
Duwa admite una variedad de tipos de variables:
// 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
Elegí usar ngati para declaraciones if y kapena para else, haciendo que la lógica fluya más naturalmente en chichewa:
// If statement ngati(yoyamba > yachiwiri) { // panga zinthu (do something) } // If-else statement ngati(yoyamba > yachiwiri) { // panga zinthu } kapena { // panga zinthu }
Duwa también admite bucles while y for:
// While loop pamene(yoyamba > 2) { // panga zinthu yoyamba } // For loop za(nambala x = 0; x > 5; x ) { // panga zinthu }
Para darte una idea de lo que Duwa puede hacer, aquí tienes un algoritmo de búsqueda lineal simple.
Crea un nuevo archivo llamado Kufufuza.duwa en tu editor favorito
ndondomeko kufufuza(arr, x) { za(nambala i = 0; iEjecute el programa ejecutando
duwa -f Kufufuza.duwaObtendrás el índice de 10 impreso en tu consola
Rompiendo el código
- ndondomeko kufufuza(arr, x): Esta función realiza la búsqueda lineal. "Kufufuza" significa "buscar" en chichewa.
- El bucle za recorre en iteración la matriz, comprobando el valor objetivo.
- ngati (arr[i] == x): Si se encuentra el elemento, la función devuelve su índice.
- Si no se encuentra el elemento, la función devuelve -1.
- ndondomeko doLinearSearch(): Esta función configura el caso de prueba y llama a la función de búsqueda.
- El resultado se imprime usando lembanzr, que elegí para significar "línea de escritura".
Este ejemplo da una idea de cómo Duwa maneja los algoritmos sin dejar de ser fiel al idioma chichewa.
Estado actual de Duwa
Duwa todavía es un trabajo en progreso, y hay algunas palabras y construcciones que aún no se han traducido completamente al chichewa. Estoy trabajando activamente en estas traducciones y planeo tener todo listo para cuando Duwa llegue a la versión 1.0.
Incluso en su estado actual, Duwa es completamente funcional y estoy emocionado de ver cómo crece a medida que sigo perfeccionándolo. ¡Me encantaría escuchar tus comentarios mientras experimentas con él!
Bonificación: Creé una extensión vscode simple para agregar soporte para Duwa a vscode; por ahora, solo obtendrás resaltado de sintaxis, pero trabajarás para agregar más funciones. Busque Duwa Language en la pestaña de extensión vscode o descárguelo aquí
Desarrollo futuro
De cara al futuro, tengo algunos planes ambiciosos para Duwa:
Duwa está construido completamente desde cero en Golang, aprovechando sus fortalezas para crear un entorno de programación rápido, eficiente y confiable. Este ha sido un viaje desafiante pero gratificante, y estoy emocionado de ver adónde me lleva.
Si eres un hablante de chichewa y tienes curiosidad por la codificación o un entusiasta de la programación que busca algo diferente, espero que Duwa te inspire tanto como a mí. Este viaje apenas comienza y estoy encantado de compartirlo con ustedes. Al hacer del chichewa parte del mundo de la codificación, Duwa abre nuevas posibilidades para la educación, la preservación cultural y la expresión creativa.
Mira la publicación original
Echa un vistazo a github.
Consulte los documentos (aún es un trabajo en progreso)
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3