注意,不是那種幾百行的,解釋一下運算式和簡單陳述句的。是近似vbs功能的,至少能完整的支持到函式等,如有class則更好。這樣我好移植到android一類的非WINDOWS環境使用。
多謝:)
uj5u.com熱心網友回復:

干嗎這想法…………
uj5u.com熱心網友回復:
當然有意義,我昨天還草草歸納了幾個級別的需求編譯原理及解釋類應用設想:
一星級:代碼格式化,
二星級:
語法加亮,如能識別變數定義位置,則加分
三星級:
高級計算器(至少能定義多個變數,定義和呼叫函式,)
四星級:
代碼翻譯器(在不同語言間翻譯,這個肯定會有一些限制,特別是一些語言的很特別的寫法)
五星級:
完整的編譯器或解釋器(JIT等)
uj5u.com熱心網友回復:
開源的Basic解釋器又很多,自己去github或者sourceforge找找。你所謂的幾個“星級”,其實就是編譯程序的幾個階段:
語法高亮屬于詞法分析
代碼格式化屬于語法分析(不知道你為啥把它排在語法高亮的前面)
代碼翻譯屬于中間代碼生成(構造抽象語法樹,AST)
編譯器、JIT屬于代碼優化和目標代碼生成
高級計算器不知道有多高級,不過一般視作簡單的代碼解釋器
uj5u.com熱心網友回復:
根據你的要求,我找了一個差不多功能,難易適中的源代碼http://www.codeproject.com/Articles/8924/A-simple-hand-coded-script-parser
剛剛好支持了基本的資料型別、結構化控制和函式呼叫
不過它是C-Like的(我覺得介于C-Like和Basic-Like之間)
uj5u.com熱心網友回復:
看了說明,這個肯定不適用的。那些網站我自然也是去找過的,但無法通讀。發帖在這里,自然也是因為群眾的眼鏡是雪亮的,沒準誰就見過一個合適的。
其實以前也有人在論壇里說他自己做過類似vbscript的解釋器,不過沒有后文。
uj5u.com熱心網友回復:
呵呵,我大學的時候學編譯原理寫過一個和這個差不多的,前后花了一個星期的時間,但是代碼現在實在找不到了。這個網上的我看了下,就他給的功能來看,難度應該和我當初寫的差不多,所以推薦給你了。
不知道你為什么不能通讀,解釋器其實最主要的就是DFA/NFA做詞法分析還有遞回下降語法分析器。如果你只是修改下詞法,直接在代碼中找到那一坨switch分支的換成你自己的就行了。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
呵呵,我大學的時候學編譯原理寫過一個和這個差不多的,前后花了一個星期的時間,但是代碼現在實在找不到了。這個網上的我看了下,就他給的功能來看,難度應該和我當初寫的差不多,所以推薦給你了。
不知道你為什么不能通讀,
我說的能通讀是指的那些網站上搜parser,interpreter這類關鍵字,一搜就是數百個結果,要全遍歷一次太難。
你發的那個,我還是收藏了的,畢竟代碼比較短,可以抽個合適的時間仔細看下實作。不過他說明中看得出的幾處不足之處,我覺得改起來也不容易:
1,沒有string型別,給了個字符陣列char[]這樣的,想加string恐怕不容易。
2,呼叫函式的陳述句竟然只能直接賦值給變數,而不能是a=fun1(33)+b這樣的表達多,太怪異了
至于一些習慣用(括號的地方,他那用的是{,也夠怪異的,希望這個能像預期一樣,在parser的代碼中好改。
哈哈,我考慮先看看TypeScript,ProcessingJs這類把其它語法語言翻譯成js的代碼好不好懂,畢竟能跑js的環境更多一些,比如客戶端網頁中:)
哈哈,不少basic解釋器只能用行basic,連函式都不支持,比如這個http://www.codeproject.com/Articles/5202/MyBasic-A-Custom-BASIC-language-interpreter-writte
uj5u.com熱心網友回復:
參考Lua源代碼?uj5u.com熱心網友回復:
下載個ruby吧,據說作者發明了1000種語言,只有ruby最入法眼,目前已經得到很廣泛的推廣。 本身ruby也開源的。 可以讀一讀。uj5u.com熱心網友回復:
參考Lua源代碼?
汗一個
這帖置頂也沒什么回復,郁悶中……
uj5u.com熱心網友回復:
今天在sourceforge上搜到一個今天新建的Basic interpreter,下載了仔細一看,只支持行BASIC,就是最多到GOSUB,RETURN跳轉這樣的語法Open Basic interpreter for embedding
http://sourceforge.net/projects/obasic/?source=directory
uj5u.com熱心網友回復:
TinyC ?uj5u.com熱心網友回復:
這個確實不容易.....之前我寫過一個編譯器+IDE,是用于某司定制的一款PLC的,語法類似匯編,支持簡單的記憶體管理,實作了流程控制等基本功能,已經覺得挺費勁了.
主框架其實還好,主要是各種細節,比如詞法分析中的容錯,自動格式化,引數識別等等等等,要做成一個產品的話那真不是一般人能干好的.
到現在我也是在考慮找一款別人寫好的成熟的整套了,自認沒那能力能整好這一整套
uj5u.com熱心網友回復:
而且看起來bcrun所說的也是類似我的那種要求,需要大部分的細節都比較完善的,難啊.自己做過很多事之后才明白,真正考水平的是最后20%.......前面80%幾乎很多人都能做到.
想想全世界多少人都寫過基本的作業系統,但能成功發展起來的卻沒多少,應該就是這8020法則了.
所以bcrun要是找到合適的,麻煩也告訴我一聲,我也要
uj5u.com熱心網友回復:
到現在我也是在考慮找一款別人寫好的成熟的整套了,自認沒那能力能整好這一整套
找到了嗎,透露個名字可以不。我只知道有個paxscript算是這方面的,不過那個是pascal實作的,而且實作得太完整了,數萬行代碼。那么大的實作也不好移植是不。
uj5u.com熱心網友回復:
Re:"主框架其實還好,主要是各種細節,比如詞法分析中的容錯,自動格式化,引數識別等等等等,要做成一個產品的話那真不是一般人能干好的."說到這個,光一個代碼編輯器中的轉到“定義”位置功能,那些腳本類的IDE,都很大程度上是轉不了的,更不說自動提示等等了。
規模方面,第一步,真的是只需要一個用10%代碼規模來實作10%的最常用基本語法的。
uj5u.com熱心網友回復:
我也不想多說什么了,道理應該懂的。無論你是找人做還是找現成的,前提都是你自己必須懂編譯原理。如果你想自己當老板,最難的10%都是你的事,你搞不定,你表指望你的手下能搞定。這10%往往決定了有的東西你根本不能做,那你即使會做90%也沒用。
我做過解釋器,也曾經在不懂編譯原理的時候嘗試過,我可以負責任地說,不懂編譯原理做不出解釋器。因為書上的知識我都搞明白了。所以,無論什么規模的語言,我都可以實作,我也可以接手這樣的源代碼并且去維護。唯一要考慮的就是時間長短、錢多錢少的問題了。
uj5u.com熱心網友回復:
到現在我也是在考慮找一款別人寫好的成熟的整套了,自認沒那能力能整好這一整套
找到了嗎,透露個名字可以不。我只知道有個paxscript算是這方面的,不過那個是pascal實作的,而且實作得太完整了,數萬行代碼。那么大的實作也不好移植是不。
就是沒找到啊!做一個能商品化的編譯器談何容易!你看看現在全世界商品化的編譯器才多少啊

所以要是大家找到合適的,一定記著推薦一下啊,好東西要大家分享.
uj5u.com熱心網友回復:
再來圍觀一下,看看樓主的進展。
uj5u.com熱心網友回復:
注意,不是那種幾百行的,解釋一下運算式和簡單陳述句的。是近似vbs功能的,至少能完整的支持到函式等,如有class則更好。這樣我好移植到android一類的非WINDOWS環境使用。
多謝:)
自己寫一個唄
uj5u.com熱心網友回復:
路過,學習...uj5u.com熱心網友回復:
等待大神
uj5u.com熱心網友回復:
Ruby是不是開源的?uj5u.com熱心網友回復:
我這里主要是關注的BASIC系的語法。主要的目的是針對非職業程式員的,畢竟這些人可能更容易上手BASIC這類語法一些,而且現實中像會用一點VBA的辦公室人員也不少是不。如果不考慮上手難易,現在各種平臺上最容易使用的腳本可能算是javascript了。
當然,如果你能用js做一個實用性較強的basic解釋器(如前所述,不是只解釋點行BASIC玩玩)就更好了:)
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
路過,學習
uj5u.com熱心網友回復:
幫看看....uj5u.com熱心網友回復:
哎,其實微軟的VBA環境就挺好,就是OFFICE里面內嵌的那個.只是那東西貌似微軟限制得非常嚴格,沒有外流(之前見到一個帖子有人提供下載,但當時沒注意,結果沒幾天就洗掉了)
uj5u.com熱心網友回復:
哎,其實微軟的VBA環境就挺好,就是OFFICE里面內嵌的那個.
只是那東西貌似微軟限制得非常嚴格,沒有外流(之前見到一個帖子有人提供下載,但當時沒注意,結果沒幾天就洗掉了)
對啊,就是因為有限制啊,連模仿MS OFFICE的WPS office都沒有捆綁而要再另裝什么的啊(實際結果是沒幾個人會裝).實際上BASIC的語法相對簡單,光國內就有不少個人和組織有能力搞出一定成熟度的產品啊,就是沒人真心在搞。
uj5u.com熱心網友回復:
我查了一下,說是VBA SDK不再提供注冊,也就是說想買正版都沒得買了.....uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
談的都比較深奧,學習uj5u.com熱心網友回復:
談的都比較深奧,學習
不明覺厲是這個意思吧,哈哈~
其實就LZ的需要,一般人應該是沒有系統性的東西,即便有,估計也不會在這里發出來。
說實在的,這個真正想能運用起來,還得自己花點功夫去研究整理。。
uj5u.com熱心網友回復:
路過,學習也uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
例如msscript.control script.ocx這個可以輕松實作,uj5u.com熱心網友回復:
路過》。。。。。。。。。。。。。。。
uj5u.com熱心網友回復:
類似vbs的少吧,js的到挺多開源的uj5u.com熱心網友回復:
新手學習中,期待大神的出現~~uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
初學者,同求uj5u.com熱心網友回復:
我們正在開發支持類似VB.NET的腳本語言,純面向物件的,不過是近乎強型別的語言。符合你的最高星級的標準。
有興趣聯系我。QQ 632981X8 其中x換成1。
我可以對你開源,但是如果你能搞定移動平臺下的,希望分享原始碼。
uj5u.com熱心網友回復:
我們正在開發支持類似VB.NET的腳本語言,純面向物件的,不過是近乎強型別的語言。
符合你的最高星級的標準。
有興趣聯系我。QQ 632981X8 其中x換成1。
我可以對你開源,但是如果你能搞定移動平臺下的,希望分享原始碼。
好的,靜候佳音!
uj5u.com熱心網友回復:
看看這個:https://github.com/paladin-t/my_basicuj5u.com熱心網友回復:
我KAO! 這挖墳的挖的夠深…………
uj5u.com熱心網友回復:
順便占樓翻頁算了。
uj5u.com熱心網友回復:
考古作業者越來越多了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/76783.html
標籤:VB基礎類
下一篇:VB 正則獲取input 值
