Wednesday, April 17, 2013

parse computer langauge syntax

您好,我最近因專題需要,正在搞編譯器

EBNF 為一種用來描述程式語言的標準型式,可以讓規格保持簡潔。如XML規格即是用「EBNF」來撰寫的。
以上來自xml 台灣資訊網

其實pascal,java,ada,pyton,C 這些都有 bnf
另外還有一種叫做 EBNF,就我所知道C是沒有EBNF,因為C是蠻橫的語言^^
EBNF ,BNF 我也不太分的清楚...

google 可以找到很多她的規則

關於實作有Coco\r lex yacc bison 這些coco\r 採用LL(1),不支援C (花了我一個春假測它)
coco有一個好處,他用EBNF 做標準形式,架構可以通吃C#,java...etc

lex yacc 是gnu 拿來發展他們的編譯器,採用LALR,支援C 也有for java C#的版本


參考書籍有 lex & yacc 歐來裡的書, C程式語言 k & R 有BNF,林煙桂 系統程式

總而言之 BNF可以拿來搞編譯器 ,腳本編譯器,還可以開發一堆有規則描述的東西
以上有不對的請指教摟!!

唸資管的學生敬上^^

Reference:
http://blog.ijun.org/2009/11/what-is-difference-between-lex-and-yacc.html

No comments: