首頁 >後端開發 >Golang >Duwa 簡介,一種 Chichewa 程式語言

Duwa 簡介,一種 Chichewa 程式語言

王林
王林原創
2024-09-03 17:16:58912瀏覽

Introducing Duwa a Chichewa Programming Language

杜瓦是什麼?

杜瓦?是我熱愛的勞動——一種簡單而深奧的語言(esolang),它將傳統語言與現代程式設計融為一體。作為一個以奇切瓦語為母語的人和程式設計師,我想創造一些獨特的東西來彌合我的語言傳統和科技世界之間的差距。 Duwa 以馬拉威使用的一種班圖語 Chichewa 語言為核心,使其成為獨一無二的學習和文化保護工具。

杜瓦的目的

建立 Duwa 是由幾個關鍵目標驅動的:

  1. 讓程式設計變得觸手可及:我希望透過使用熟悉的語言結構,讓奇切瓦語使用者更容易上手編程,幫助他們將編碼視為觸手可及的事情。
  2. 保護和推廣奇切瓦語:在一個以英語為主的領域,我覺得在科技領域為奇切瓦語開闢一個空間非常重要,確保該語言與時俱進。
  3. 創造獨特的教育工具:透過設計 Duwa,我的目的是提供一種新的程式設計教學方式,特別是對於那些可能對傳統程式語言感到疏遠的人。

Duwa 反映了我對程式設計和母語的熱情,我希望它成為奇切瓦社群中其他人的歡迎平台。

設定和安裝

如果您想親自嘗試 Duwa,請按照以下步驟開始:

  1. 前往 Duwa GitHub 發佈頁面:https://github.com/sevenreup/duwa/releases
  2. 從最新版本下載與您的作業系統相符的二進位檔案。
  3. 使用二進位檔案執行 Duwa 程式(請注意,二進位檔案名稱可能會有所不同):
   ./duwa -f path/to/your/program.duwa

基本文法

讓我向您展示 Duwa 的一些基本知識。

你好世界

ndondomeko pano() {
    lemba("Moni Dziko");
}

pano();

在此範例中:

  • ndondomeko 是我決定在 Duwa 中聲明函數的方式。
  • lemba,在奇切瓦語中的意思是“寫”,輸出文本。
  • 程式只是將「Moni Dziko」(「Hello World」)印到螢幕上。

變數

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 語句使用 ngati,對 else 使用 kapena,讓 Chichewa 中的邏輯流動更自然:

// 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
}

讓我們來編碼:線性搜尋範例

為了讓您體驗 Duwa 的功能,這裡有一個簡單的線性搜尋演算法。
在您最喜歡的編輯器中建立一個名為 Kufufuza.duwa 的新檔案

ndondomeko kufufuza(arr, x) {
    za(nambala i = 0; i < arr.length(); i++) {
        ngati (arr[i] == x) {
            bweza i;
        }
    }
    bweza -1;
}

ndondomeko doLinearSearch() {
    nambala[] arr = [2, 3, 4, 10, 40];
    nambala x = 10;

    nambala result = kufufuza(arr, x);
    ngati (result == -1) {
        lembanzr("Linear Search: Element is not present in array");
    } kapena {
        lembanzr("Linear Search: Element at index " + result);
    }
}

doLinearSearch();

透過運行來運行程式

duwa -f Kufufuza.duwa

您將在控制台上列印索引 10

分解代碼

  1. ndondomeko kufufuza(arr, x):此函數執行線性搜尋。 「Kufufuza」在奇切瓦語中的意思是「搜尋」。
  2. za 循環 迭代數組,檢查目標值。
  3. ngati (arr[i] == x):如果找到該元素,則函數會傳回其索引。
  4. 如果找不到該元素,函數會傳回-1。
  5. ndondomeko doLinearSearch():此函數設定測試案例並呼叫搜尋函數。
  6. 結果使用 lembanzr 列印,我選擇它的意思是「寫行」。

這個範例讓我們了解 Duwa 如何在忠於 Chichewa 語言的同時處理演算法。

杜瓦現狀

Duwa 仍在進行中,有一些單字和結構尚未完全翻譯成 Chichewa。我正在積極進行這些翻譯工作,我計劃在 Duwa 達到 1.0 版本時準備好一切。

即使在目前的狀態下,Duwa 也已完全發揮功能,我很高興看到它在我不斷完善的過程中如何成長。我很想聽聽您在嘗試時的回饋!


獎勵:我創建了一個簡單的 vscode 擴展,用於向 vscode 添加對 Duwa 的支持,目前,您只會獲得語法突出顯示,但正在努力添加更多功能。在 vscode 擴充功能標籤中搜尋 Duwa Language,或在這裡下載

未來發展

展望未來,我對 Duwa 有一些雄心勃勃的計劃:

  • 擴充語言功能,使其更強大
  • 建立標準庫以支援更複雜的程式
  • 建立學習資源以幫助其他人開始使用 Duwa
  • 鼓勵社區做出貢獻,豐富語言及其生態系

Duwa 完全使用 Golang 從頭開始構建,利用其優勢創建快速、高效、可靠的程式設計環境。這是一趟充滿挑戰但收穫豐富的旅程,我很高興看到它的發展方向。

結論

無論您是對編碼感到好奇的奇切瓦語使用者,還是尋求不同事物的程式設計愛好者,我希望 Duwa 能夠像激勵我一樣激勵您。這個旅程才剛開始,我很高興與您分享。透過讓 Chichewa 成為程式設計世界的一部分,Duwa 為教育、文化保護和創意表達開闢了新的可能性。

查看原文
查看 github。
查看文件(仍在進行中)

以上是Duwa 簡介,一種 Chichewa 程式語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn