構想:用c#寫乙個簡單的直譯器
不知道有什麼用,玩玩而已。
提供常用畫圖函式(line,moveto,li***o,fill...)
提供常用數學函式(sin,cos...)
提供常用運算子(+ - * /) 用來計算座標
使用者可定義變數(暫時都是整型) 實現賦值語句 實現for迴圈 其他語句再說了
現在還不打算讓使用者定義區域性變數
文法:程式::[語句...]
語句::[迴圈/賦值/定義變數/命令]
迴圈::for ident:=表示式 to 表示式 do 語句
賦值::ident:=表示式;
定義變數::ident:type;
命令::命令名([表示式,]...);
表示式::[+/-]項[+/-項]...
項::因子[*//因子]
因子::數字/變數/(表示式)
後來想想覺得下面的文法描述要好一些 命令與函式的區別僅僅在於命令是內建的
程式::變數申明部分 函式申明部分 程式分段
變數申明部分::[變數申明].....
變數申明::變數名:型別[=數字];
函式申明部分::[函式申明/過程申明]......
函式申明::function 函式名(引數列表):返回值 begin 程式分段 end;
過程申明::procedure 過程名 (引數列表)begin 程式分段 end;
程式分段::begin [語句]....... end;
語句::[迴圈/賦值/命令/函式]
迴圈::for ident:=數字 to 數字 do 語句
賦值::ident:=表示式;
命令::命令名(引數列表);
函式::函式名(引數列表);
表示式::[+/-]項[+/-項]...
項::因子[*//因子]
因子::數字/變數/(表示式)
變數和值的關係,可以用雜湊來儲存,函式應該怎麼來做呢?
記錄函式定義的位置,然後等呼叫的時候找到定義繼續執行?看來只好如此。
引數列表用乙個結構陣列,函式名與引數列表的關係則用雜湊表。ok就這樣做。
希望有懂編譯原理的朋友指點指點
小白想用C語言寫乙個背單詞的程式
該考四級了,所以。c語言板塊比較冷啊,所以就來oc這邊問一下,oc的斑竹天天都能見到,很有愛。我只想寫乙個簡單的命令列程式。程式提示單詞漢語解釋,然後讓使用者在下方輸入英文,回車,程式判斷正誤,然後下一題。現在困擾的問題是,我在書上沒有看到能夠動態操作命令提示符的方法。現在我能建立的命令提示符都是死...
C 編寫乙個直譯器
一直想知道如何編寫一門指令碼語言,現在終於有機會實現了。非常感謝 thorsten ball 的大作 writing an interpreter in go 幫助我實現了這個想法!可能你比較好奇為啥這個專案叫 autumn,因為剛好這個專案是在國慶節開始的,正好是秋天,就以當時的季節命名了。c 是...
用PHP寫乙個最簡單的直譯器Part3
總想成為一名寫作技巧高超的作家,卻一不小心成為了碼農。不知道,大家有沒有看原文作者的一些看法 傳送門 我們為什麼要學習新的知識,我們應該如何學習新的知識。看過很多書,卻沒有記住多少,有時候覺得自己就像魚一樣,真的只有七秒的記憶。正如原作者所說的,學習知識最好的方法就是去實踐。這樣才可以將知識掌握。之...