2009-09-18 29 views
4

我的大學很快就要開始,但我想要做的事在剩下的幾周:)初級程序員可以使用哪種語言來實現解釋器?

我已經採取了課程的最後一個學期大約programming languages,我想用我的知識轉化爲現實。什麼簡單,優雅語言能初級程序員執行翻譯爲?

我不介意這種語言很小或者是實驗性的。

+2

你的大學開學真的很晚。我希望我的這麼晚開始。 –

回答

6

RPAL編譯成lambda表達式,然後可以解釋。

+0

我認爲這是我正在尋找:) – AraK

15

程序集

我不是在討論將其編譯爲機器碼。只是一名口譯員。

我們在第一年就做了,但教授寫了虛擬機,但你仍然可以自己寫。

+1

有限和簡單格式的輸入使它成爲IMO學生的理想選擇。 – DaveE

13

Lisp和/或Scheme。對於指針,請閱讀由Leppie開發的IronLisp的代碼。

+0

爲了獲得更多樂趣,請在計劃或lisp中實施它們。我認爲我們在我的介紹編程類中解決了這個問題... –

+0

Lisp是一種抽象語法樹。 – jrhicks

5

設計您自己的語言,然後嘗試實現它..然後之前那些設計和實現C的喜歡謙卑地跪拜++,Java和C尖銳等。

,但通過各種手段都試試吧!這很有挑戰性,而且非常有趣!

0

您可以選擇任何語言,但只爲該語言的子集使用解釋器。通過這種方式,您可以開始使用您熟悉的語言,而無需花時間學習新語言。

2

從命令(基於變化)的背景(對於裝配,C,帕斯卡熟悉),可以嘗試改編brainfuck,因爲它非常容易解釋。

這可以用一種很少人類可讀的語法擴展到類似彙編的語言,並且有些努力會變得有點BASIC(或C)。

針對功能語言,有點LISPlambda calculus是相對容易的。有幾個實現像IronLisp或Write yourself a Scheme in 48 hours教程那樣展示了方式。

4

Wirth的Pascal是它的設計便於分析的經典語言,有嚴格的,但簡單的語義,並經常被用來作爲一個練習解析/編譯寫作。

0

PAL是我們在我的編譯器類中使用的語言。什麼是PAL?這是PASCAL愚蠢的一個子集!

無論如何,pascal很好,因爲一切都是編譯時間。

0

BASIC將相當....基本:)。你可以簡單地從評估表達式開始。即使你仍在拼貼,這也是非常令人滿意的。我可以問你打算使用哪種語言?

+0

我幾乎習慣於C++。我知道一點點Scheme,Java – AraK

+0

如果你願意通過編寫一個評估器來幫助我們,請查看http://sourceforge.net/projects/mathlibcpp或者給我發一封電子郵件給cemkalyoncu at gmail dot com。 –

0

jasmin 基於棧的程序集,因爲你可以反編譯Java到它易於編寫簡單的測試程序。

相關問題