国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

web前端 Lisp值得去學(xué)習(xí)嗎?

Lisp值得去學(xué)習(xí)嗎?我認(rèn)為這是非常值得的,而且LISP的解釋器實(shí)現(xiàn)得很好,所以它不僅可以作為一種新的學(xué)習(xí)思路,而且可以作為學(xué)習(xí)編譯原理的材料。SiCp也需要lisp,為什么不呢。有些人更容易理解LI

Lisp值得去學(xué)習(xí)嗎?

我認(rèn)為這是非常值得的,而且LISP的解釋器實(shí)現(xiàn)得很好,所以它不僅可以作為一種新的學(xué)習(xí)思路,而且可以作為學(xué)習(xí)編譯原理的材料。SiCp也需要lisp,為什么不呢。有些人更容易理解LISP的思想,但是覺(jué)得Java風(fēng)格是不可接受的。例如,我的一個(gè)朋友,大阪黑子,聲稱他不懂java。他一看到lisp就明白了這一點(diǎn),于是加入了教學(xué)行列。我拍的另一張照片:個(gè)人:在學(xué)習(xí)編譯器原理之前,我編寫(xiě)了LISP解釋器。

完成一個(gè)Scheme解釋器需要哪些知識(shí)?

參考編程語(yǔ)言要點(diǎn)目錄,按順序編寫(xiě),然后將其寫(xiě)入完整的解釋器。

首先編寫(xiě)一個(gè)解釋算術(shù)表達(dá)式的解釋器;

然后添加let以生成局部變量;

然后添加lambda以生成非遞歸函數(shù);

然后添加letrec以生成遞歸函數(shù);

第一類函數(shù),現(xiàn)在已經(jīng)理解/實(shí)現(xiàn)close,下面的步驟是:添加語(yǔ)法sugar,如if else;將cons/cat/CDR更改為內(nèi)置函數(shù)(原來(lái)lambda計(jì)算可以模擬)并改進(jìn)內(nèi)存管理;

add quote and eval;

add set!引入賦值;

添加CPS轉(zhuǎn)換實(shí)現(xiàn)call/cc,支持尾部遞歸;

添加define語(yǔ)法支持宏;

然后再接再厲,添加一些非方案標(biāo)準(zhǔn)的東西:

添加record/set/map等數(shù)據(jù)類型,實(shí)現(xiàn)相應(yīng)的匹配(模式匹配)

如果不能滿足要求,就用類型LISP做:

添加類型標(biāo)簽,支持基本類型/函數(shù)類型;

支持ADT;

支持Mu類型;

添加類型派生;

支持Hindley Milner;

支持類型類/構(gòu)造函數(shù)類;

還有一些外圍工作要做:

添加FFI以使語(yǔ)言和C相互調(diào)用。

技能列表已準(zhǔn)備就緒。按這個(gè)順序做是對(duì)的。另外,不管后端效率如何(沒(méi)有虛擬機(jī),只有解釋),都不建議用C寫(xiě)解釋器,最好用函數(shù)式語(yǔ)言寫(xiě)解釋器。

解釋器相關(guān)文獻(xiàn)推薦:

LISP小品

編程語(yǔ)言要領(lǐng)

類型和編程語(yǔ)言