改自王垠的 r2 直譯器——添加惰性求值和遞迴函數

(最近更新:2019-07-22)

王垠可說是中國程式語言界的網路名人。雖然有些人不喜歡他對事物的觀點或是看法,或是他展現出的價值觀,但是有些觀點卻還是很有趣的。比如他之前寫的怎樣寫一個解釋器,利用動態擴展的環境列表還有閉包的概念,將一個程式語言基本的功能簡潔的實踐出來(當然也要歸功於 Scheme 的語法)——閉包、調用變數、運算、儲存變數、環境的調整、函數調用等等,都很有趣。

遞迴下降分析器的簡介

以下內容僅為非資訊專業者所寫的心得,不保證內容正確性。
(最近更新:2019-07-22)

語法樹

就算沒有學過編譯器的人我想很多都知道,編譯器是把一種語言的程式翻譯成另一種語言者的工具。在轉成其他語言之前,需要將這個語言轉換成一棵樹狀結構 (抽象語法樹,abstract syntax tree),來分析被編譯的程式內容是什麼。大概就像我們在翻譯一門語言的內容前,可以先將它轉換成語法樹。

安裝 Racket-llvm

(上新更新佇:2019-09-26)

  • Clone git repo
    git clone git@github.com:bubba/racket-llvm.git
  • 包做 .zip:
    raco pkg create --binary racket-llvm
  • 安裝:
    raco pkg install racket-llvm.zip
  • raco pkg show
    看安裝 ê 結果,親像:
    Installation-wide:
    Package Checksum Source
    ....
    User-specific for installation "6.3":
    Package Checksum Source
    racket-llvm 52ebbb73... file /tmp/a/racket-llvm.zip

愛爾蘭語詩 Mise Éire 簡介(我是愛爾蘭)

(最新更新:2019-05-19)

介紹

十九世紀下半,愛爾蘭發生大飢荒後,大英底下的許多愛爾蘭人爭取自己的權利,一方面,就算語言快要被英語取代,當地也開始有許多語言學家以及文學家,發覺被鄙夷的蓋爾族文化,推廣蓋爾語,甚至創作許多的愛爾蘭語文學創作。就算對台灣人而言,知名度不如同時期的英語作家,但這對愛爾蘭語歷史,是個很重要的運動——雖然這種語言復興的結果不像愛爾蘭政治獨立那樣有很大的斬獲。

這首1912年的詩雖然是愛爾蘭語復興運動重要作家的創作,但表達出來的愛爾蘭的苦難,卻可說間接反映出同時期愛爾蘭獨立運動的向望。作者 Padraig Mac Piarais 也於成詩不久後的1916年,投身復活節起義,成為建國之路的殉道者。

這詩採用作者的母語——芒斯特方言書寫。值得注意的是,就算現在的芒斯特方言人數很少,但卻是除了本詩作者以外,很多蓋爾語復興運動的推動家的母語,所以有很多近代的作品。而芒斯特因為在更早以前,愛爾蘭語文學創作衰退的時候,仍然保有最後的火苗,會不會也因此保留文雅的特色到蓋爾與復興運動?我也不知道。

Orthography of Munster Irish

(updated on 2019-04-16)

Introdution

As there are few specific introdution pertaining to the spelling rule of Munster Irish, I’ve collected some sources to compile the article related to the rules. It may contain errors. If you find one, please leave a comment to let me know. GRMA.

Besides, Irish spelling rules are somewhat complex, they will not be listed wholly. Reading The Irish of West Muskerry, Co. Cork (by Brian Ó Cuív) may help if you’re insterested in.

轉到 Google Photo ê Flickr 資料 - 轉到 Google Photo 的 Flickr 資料

(最近 ê 更新:2018-01-27)

因為 Flickr 宣佈免費口座 ùi 今年 2 月開始,干焦通囥 1000 ê 檔案(相、影片),其他著刣掉,為著救 beh 4000 ê 檔案,我對 Flickr 掠 .zip 備份檔案,用 script 分類遮 ê,然後 kā 相片囥 kàu Google Photo。
以下是𪜶 ê 相簿分類:

因為 Flickr 宣佈免費帳戶從今年 2 月開始,只能放 1000 份檔案,其他的要刪掉,為了拯救要四千份的檔案,我從 Flickr 抓 .zip 備份檔案,用 script 分類這些,然後把相片放到 Google Photo。
以下是它們的相簿分類:

Scheme ê call/cc ê 用法舉例(2)——coroutine

(接續頂篇,更新日:2019-01-22)

Coroutine


Coroutine(華語:{rb|協程|hia̍p-tîng} kap 囝程式 (subroutine) 仝款,lóng 是 kā 程式分節執行 ê 方法。M̄-koh kap 囝程式有呼叫 kap 受呼叫 ê 關係無仝, coroutine 之間是平等 ê ,會當 tī A coroutine 叫 B coroutine,tī B 內底叫 A coroutine。毋過阮這爿為著簡化,干焦展示「主程式 kap coroutine」ê 關係。

Scheme ê call/cc ê 用法舉例(1)——例外處理

(上尾更新 tī:2019-01-20)

介紹


Scheme 是一種函數式語言,所以無 break、yield 等等 ê 流程控制功能 (flow of control)。毋過,伊有一款功能 koh 較強 ê——用 the̍h 著現此時 ê 繼續(continuation) ê call/cc 來合成 tsē-tsē ê 控制流程。

Scheme ê 延遲計算 (lazy evaluation) ê 例

(上尾更新 tī:2019-01-20)

介紹

佇電腦程式中,通常愛算一个{rb|運算式|ūn-suàn-sik} ê 結果,會 kā 逐个部份照算 ê {rb|次序|tshù-sī}一改算予清,這種趁早算出來 ê 算法,號做「嚴格計算」 (strict evaluation; eager evaluation)。比論講:

(* 2 (+ 3 (/ 5 2)))

不確定的狀態

最近假日的時候,很想要一直睡、一直睡。

或許讀者會覺得很奇怪,為什麼我不想要利用這美好的假日呢?假日的時間明明那麼短暫。