Дува ? это мой любимый труд — простой эзотерический язык (эсоланг), сочетающий традиционный язык с современным программированием. Как носитель языка Чичева и программист, я хотел создать что-то уникальное, что устранило бы разрыв между моим лингвистическим наследием и миром технологий. В качестве основы Дува использует язык чичева, язык банту, на котором говорят в Малави, что делает его единственным в своем роде инструментом как для обучения, так и для сохранения культуры.
Создание Duwa преследовало несколько ключевых целей:
Дува — это отражение моей страсти к программированию и родному языку, и я надеюсь, что он послужит радушной платформой для других членов сообщества, говорящего на языке чичева.
Если вы хотите попробовать Дува самостоятельно, вот как начать:
./duwa -f path/to/your/program.duwa
Позвольте мне показать вам некоторые основы Дувы.
ndondomeko pano() { lemba("Moni Dziko"); } pano();
В этом примере:
Duwa поддерживает различные типы переменных:
// 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
Я решил использовать нгати для операторов if и капену для else, что сделало логику более естественной в Чичеве:
// If statement ngati(yoyamba > yachiwiri) { // panga zinthu (do something) } // If-else statement ngati(yoyamba > yachiwiri) { // panga zinthu } kapena { // panga zinthu }
Duwa также поддерживает циклы while и for:
// While loop pamene(yoyamba > 2) { // panga zinthu yoyamba } // For loop za(nambala x = 0; x > 5; x ) { // panga zinthu }
Чтобы дать вам представление о том, на что способен Дува, вот простой алгоритм линейного поиска.
Создайте новый файл Kufufuza.duwa в своем любимом редакторе
ndondomeko kufufuza(arr, x) { za(nambala i = 0; iЗапустите программу, запустив
duwa -f Kufufuza.duwaВы получите индекс 10, распечатанный на вашей консоли
Разбираем код
- ndondomeko kufufuza(arr, x): Эта функция выполняет линейный поиск. «Куфуфуза» на языке Чичева означает «искать».
- Цикл za перебирает массив, проверяя целевое значение.
- ngati (arr[i] == x): если элемент найден, функция возвращает его индекс.
- Если элемент не найден, функция возвращает -1.
- ndondomeko doLinearSearch(): эта функция устанавливает тестовый пример и вызывает функцию поиска.
- Результат печатается с использованием lembanzr, которое я выбрал для обозначения «записать строку».
Этот пример дает представление о том, как Дува обрабатывает алгоритмы, оставаясь верным языку Чичева.
Текущее состояние Дувы
Дува все еще находится в стадии разработки, и некоторые слова и конструкции еще не полностью переведены на язык Чичева. Я активно работаю над этими переводами и планирую все подготовить к тому времени, когда Дува достигнет версии 1.0.
Даже в своем нынешнем состоянии Duwa полностью функционален, и я рад видеть, как он растет по мере того, как я продолжаю его совершенствовать. Мне бы хотелось услышать ваши отзывы о ваших экспериментах!
Бонус: Я создал простое расширение vscode для добавления поддержки Duwa в vscode, на данный момент вы получите только подсветку синтаксиса, но работаете над добавлением дополнительных функций. Найдите язык Дува на вкладке расширения vscode или загрузите его здесь
Будущее развитие
Забегая вперед, у меня есть несколько амбициозных планов относительно Дувы:
Duwa создан полностью с нуля на Golang, используя его сильные стороны для создания быстрой, эффективной и надежной среды программирования. Это был трудный, но полезный путь, и мне не терпится увидеть, к чему он приведет.
Независимо от того, являетесь ли вы носителем языка Чичева, интересующимся программированием, или энтузиастом программирования, ищущим что-то новое, я надеюсь, что Дува вдохновит вас так же, как вдохновил меня. Это путешествие только начинается, и я рад поделиться им с вами. Сделав Чичеву частью мира программирования, Дува открывает новые возможности для образования, сохранения культуры и творческого самовыражения.
Ознакомьтесь с исходным сообщением
Посетите github.
Ознакомьтесь с документацией (работа все еще продолжается)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3