我的大學很快就要開始,但我想要做的事在剩下的幾周:)初級程序員可以使用哪種語言來實現解釋器?
我已經採取了課程的最後一個學期大約programming languages
,我想用我的知識轉化爲現實。什麼簡單,優雅語言能初級程序員執行翻譯爲?
我不介意這種語言很小或者是實驗性的。
我的大學很快就要開始,但我想要做的事在剩下的幾周:)初級程序員可以使用哪種語言來實現解釋器?
我已經採取了課程的最後一個學期大約programming languages
,我想用我的知識轉化爲現實。什麼簡單,優雅語言能初級程序員執行翻譯爲?
我不介意這種語言很小或者是實驗性的。
設計您自己的語言,然後嘗試實現它..然後之前那些設計和實現C的喜歡謙卑地跪拜++,Java和C尖銳等。
,但通過各種手段都試試吧!這很有挑戰性,而且非常有趣!
您可以選擇任何語言,但只爲該語言的子集使用解釋器。通過這種方式,您可以開始使用您熟悉的語言,而無需花時間學習新語言。
從命令(基於變化)的背景(對於裝配,C,帕斯卡熟悉),可以嘗試改編brainfuck,因爲它非常容易解釋。
這可以用一種很少人類可讀的語法擴展到類似彙編的語言,並且有些努力會變得有點BASIC(或C)。
針對功能語言,有點LISP或lambda calculus是相對容易的。有幾個實現像IronLisp或Write yourself a Scheme in 48 hours教程那樣展示了方式。
Wirth的Pascal是它的設計便於分析的經典語言,有嚴格的,但簡單的語義,並經常被用來作爲一個練習解析/編譯寫作。
PAL是我們在我的編譯器類中使用的語言。什麼是PAL?這是PASCAL愚蠢的一個子集!
無論如何,pascal很好,因爲一切都是編譯時間。
BASIC將相當....基本:)。你可以簡單地從評估表達式開始。即使你仍在拼貼,這也是非常令人滿意的。我可以問你打算使用哪種語言?
我幾乎習慣於C++。我知道一點點Scheme,Java – AraK
如果你願意通過編寫一個評估器來幫助我們,請查看http://sourceforge.net/projects/mathlibcpp或者給我發一封電子郵件給cemkalyoncu at gmail dot com。 –
jasmin 基於棧的程序集,因爲你可以反編譯Java到它易於編寫簡單的測試程序。
有幾個人在業餘時間實施了我的stack-based language (Cat)變體。
你的大學開學真的很晚。我希望我的這麼晚開始。 –