• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-341  評論-2670  文章-0  trackbacks-0
             
                 摘要: 國慶7天容易無聊,于是我打算實現一下以前失敗過的一種語言的特性:類型推導。于是順便做一做惰性計算吧。于是我嘗試設計了一門特性盡可能少的語言,并且強制讓一個函數的返回值僅跟輸入的參數有關。雖然這個特性不適合用來做IO,但是是有辦法解決的,而且不需要修改語言就可以直接支持。

            這門語言的定義及其簡單,需要預先定義的部分也是很少的,于是我嘗試實現了if、邏輯運算符以及itoa和atoi兩個函數  閱讀全文
            posted @ 2008-09-28 07:14 陳梓瀚(vczh) 閱讀(2160) | 評論 (4)編輯 收藏
                 摘要: 經過三個小時的努力,一個供調試用的模擬器終于做出來了。對于一份語法說明來講,我們需要提供調試器,一直到調試完了才生成代碼,這樣比較容易找到問題。同時為了驗證自己的那個設計,于是做了一個調試器出來。這個調試器使用了這篇文章里的數據結構文件以及文法文件,以及使用了這篇文章里開發的一個樹到圖的轉換程序,成功得到結果!  閱讀全文
            posted @ 2008-09-14 07:22 陳梓瀚(vczh) 閱讀(1851) | 評論 (1)編輯 收藏
                 摘要: 除了錯誤處理文件還沒有定義好以外,現在語法定義跟語法樹的數據結構定義以及分析器都完成了!有了這兩個文件,我的工具就可以替你生成一個函數和一堆類,讓你使用這個函數就可以將一份代碼轉換為一顆語法樹啦。娃哈哈……

            現在讓我們來看一個例子  閱讀全文
            posted @ 2008-09-14 00:53 陳梓瀚(vczh) 閱讀(1429) | 評論 (3)編輯 收藏
                為了生成編譯器的代碼,對語法樹的數據結構進行定義是必不可少的一項工作。在這里我設計了一套用于生成C++代碼的數據結構的數據結構定義文件的格式。

                這份定義支持enum、class和typedef三種命名方法,支持基本類型、C++類型、列表、映射、指針以及智能指針等。因為結構簡單,所以我直接貼一份示例出來。這份示例用于代表這篇文章里的科學計算器表達式文法對應的語法樹的結構。Expression本應是空的,為了對上述的例子進行說明,所以那些沒用上的功能就全部加在Expression里面了。

             1 enum BinopType
             2 {
             3   Plus
             4   Minus
             5   Mul
             6   Div
             7 }
             8 enum SinopType
             9 {
            10   Negative
            11 }
            12 
            13 class Expression
            14 {
            15   list<int>    IntList
            16   map<string,int> IntMap
            17   Expression^    Autoptr
            18   Expression*    Pointer
            19   "CustomType"    Custom
            20 }
            21 typedef Expression^ ExpPtr
            22 class Number
            23 {
            24   double    Number
            25 }
            26 class Binop
            27 {
            28   BinopType    Operator
            29   ExpPtr    LeftOp
            30   ExpPtr    RightOp
            31 }
            32 class Sinop
            33 {
            34   SinopType    Operator
            35   ExpPtr    Operand
            36 }

                列表、映射和智能指針在Vczh Library++ 2.0里都有對應的工具來表達,將來生成的編譯器的代碼數據結構將依賴于Vczh Library++ 2.0,而語法分析部分則直接使用庫中的Syngram。
            posted @ 2008-09-12 05:49 陳梓瀚(vczh) 閱讀(1233) | 評論 (0)編輯 收藏
                 摘要: 『啊,蔥爆羊肉真是香啊。』一邊回憶著這個令人感動的美食,一邊心不在焉地寫了個程序。這個小程序實現了一個很簡單的功能,將一棵樹轉換成bmp圖片并自動排版。  閱讀全文
            posted @ 2008-09-07 04:18 陳梓瀚(vczh) 閱讀(2895) | 評論 (3)編輯 收藏
                 摘要: 我們知道Yacc和Bison都是產生C++的代碼作為編譯器的前端的。但是有時候我們需要動態地產生一個編譯器前端,極端一點講,譬如“文法調試器”。調試器總不能動態生成.y文件,讓yacc編譯,讓gcc再度編譯,然后execute,最后將程序的輸出結果讀進來。這樣就太麻煩了,于是我們需要重新寫一個生成編譯器前端的程序。  閱讀全文
            posted @ 2008-09-06 02:45 陳梓瀚(vczh) 閱讀(2307) | 評論 (3)編輯 收藏
                 摘要: 現在的OOP都提倡將操作與數據結構結合在一起。為什么這里要提出將算法與數據結構分開呢?第一個原因是一個算法可能是用來處理一組數據結構的。第二個原因是算法并不屬于操作。我們可以借鑒訪問者模式來實現這個分離,但是這里有一個特別之處:我們要將訪問者模式帶給我們的那個接口實現得讓我們用起來很漂亮。  閱讀全文
            posted @ 2008-09-02 04:43 陳梓瀚(vczh) 閱讀(2632) | 評論 (10)編輯 收藏
                 摘要: 大概一年前曾經用C++開發了一個可以在C++中直接寫上下文無關文法的上下文無關文法分析器。這玩意兒叫Syngram。Syngram曾經做了兩次,第一次做成了用一個類去讀文法文件,后來不爽就改成了直接在C++里面寫的。我弄了一個叫Term的類,重載了一些操作符,于是你可以搞分支、可選、錯誤處理等復雜的文法推導式。現在打算做一個周邊工具。  閱讀全文
            posted @ 2008-08-27 05:11 陳梓瀚(vczh) 閱讀(1873) | 評論 (5)編輯 收藏
                 摘要: GUI Preview Demo完成!代碼結構、下載以及注意事項內詳。  閱讀全文
            posted @ 2008-08-25 04:17 陳梓瀚(vczh) 閱讀(20339) | 評論 (18)編輯 收藏
                 摘要: 為了展示Vczh Library++2.0中GUI Framework的強大威力,我制作了一個Regular Expression Debugger。這個軟件可以用來調試正則表達式,主要用于檢查正則表達式語法、觀察表達式的語法樹以及各種狀態機、還有匹配測試等。這個Demo已經接近完成。GUI Framework和Demo的代碼將在Demo徹底完成的時候放上來。下面貼圖和創建界面的代碼:  閱讀全文
            posted @ 2008-08-23 23:18 陳梓瀚(vczh) 閱讀(2106) | 評論 (6)編輯 收藏
            僅列出標題
            共35頁: First 24 25 26 27 28 29 30 31 32 Last 
            久久夜色精品国产www| segui久久国产精品| 久久精品无码午夜福利理论片| 国产香蕉97碰碰久久人人| 一本综合久久国产二区| 色欲综合久久中文字幕网| 久久精品www| 国产成人综合久久精品红| 国产成人无码久久久精品一| 性高湖久久久久久久久AAAAA | 日本精品久久久中文字幕| 欧美激情精品久久久久久久| 99国产欧美精品久久久蜜芽| 色老头网站久久网| 国产精品99久久久久久董美香| 色狠狠久久AV五月综合| 日日狠狠久久偷偷色综合96蜜桃 | 久久久久久国产精品无码下载 | 99久久99这里只有免费的精品| 亚洲国产精品综合久久一线| 久久综合久久综合久久综合| 色婷婷综合久久久中文字幕| 色偷偷88欧美精品久久久 | 亚洲女久久久噜噜噜熟女| 久久久99精品成人片中文字幕| 国产精品对白刺激久久久| 青青草原精品99久久精品66| 伊人久久大香线蕉精品不卡| 国产成人精品综合久久久| 97久久超碰国产精品2021| 久久久久人妻一区精品性色av| 久久婷婷五月综合国产尤物app| 久久男人AV资源网站| 久久久久亚洲AV成人网人人网站 | 国产精品午夜久久| 美女写真久久影院| 夜夜亚洲天天久久| 日韩一区二区久久久久久| 夜夜亚洲天天久久| 久久亚洲视频| 国内精品久久久久影院薰衣草|