• <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
             
                 摘要: 以前為了開發KFP,特別學習了一下lambda calculus(也就是我的博客的標題啦)。lanbda calculus是一門神奇的語言,在計算機出現之前就已經被搞出來了。這門語言只有三種語法,然后可以用這個語法來構造整數(!!!)、布爾型和很多遞歸數據結構等。

            內含代碼  閱讀全文
            posted @ 2009-05-11 04:30 陳梓瀚(vczh) 閱讀(5406) | 評論 (7)編輯 收藏
                 摘要: 符號表的結構的復雜度跟語言的語義規則的復雜度有關。對于C#來說,每一個符號都附帶了一大堆信息,譬如位置啦,所在的namespace啦,類型啦什么的。對于JavaScript來說,符號表幾乎是不需要的,因為東西都動態了,編譯時幾乎不檢查內容。語義分析的輸出是符號表,代碼生成的輸入是符號表和語法樹。因此語法樹除了放語法相關的內容,語義相關的內容最好放到符號表里面(譬如說表達式的類型啦,語句的scope結果啦)。  閱讀全文
            posted @ 2009-05-10 18:48 陳梓瀚(vczh) 閱讀(7252) | 評論 (1)編輯 收藏
                 摘要: 這篇轉載的文章主要講了為什么寫非工作的代碼的時候,要時不時刁難自己。

            內詳。  閱讀全文
            posted @ 2009-05-09 06:55 陳梓瀚(vczh) 閱讀(3197) | 評論 (0)編輯 收藏
                 摘要: 整整寫了一天,終于基本寫完了CMinus的語義分析的代碼,只剩下一個檢查struct是否可以計算出長度的問題(環引用造成的)。下面貼出語義分析的結果,從結果中可以看出符號表的結構以及構造方法:  閱讀全文
            posted @ 2009-05-06 08:13 陳梓瀚(vczh) 閱讀(3032) | 評論 (4)編輯 收藏
                 摘要: 今天寫了一些CMinus程序供語法分析器分析,然后程序從語法樹重新生成格式化后的代碼,兩邊比較檢查優先級什么的是否正確處理。下面是CMinus寫的冒泡排序、菲薄納氣數列、鏈表操作函數以及其他程序:  閱讀全文
            posted @ 2009-05-04 19:44 陳梓瀚(vczh) 閱讀(1980) | 評論 (1)編輯 收藏
                 摘要: 在實驗了CMinus語法分析器的錯誤處理之后發現一個問題,Combinator Parser返回的錯誤是最上級的錯誤,而不是最底層的錯誤。因此修改了語法分析器的一部分代碼:  閱讀全文
            posted @ 2009-05-04 02:35 陳梓瀚(vczh) 閱讀(1832) | 評論 (1)編輯 收藏
                 摘要: 這一次的語法分析器,我使用Vczh Combinator Parser,按照文法的定義,將字符串轉換成了語法樹。Vczh Combinator Parser構造較大規模的編譯器的時候還是較為吃力,主要原因出在Visual C++竟然限制一個類型全名不能超過某個長度T_T……下面是代碼:  閱讀全文
            posted @ 2009-05-03 19:25 陳梓瀚(vczh) 閱讀(2850) | 評論 (11)編輯 收藏
                 摘要: 今天照著C Minus的語法(略有修改)設計出了C Minus的語法樹。語法樹的設計盡量讓生成語法樹的代碼易于編寫。每一個結構的意義十分明確,而且結構與結構之間不需要有相互聯系。下面是語法樹的代碼:  閱讀全文
            posted @ 2009-04-24 00:58 陳梓瀚(vczh) 閱讀(3072) | 評論 (5)編輯 收藏
                 摘要: 把中間指令都搞定了之后,得開始做一門JIT的腳本引擎了。但是這門腳本引擎不是用來寫的,而是用來給更高級的語言編譯的。這是什么意思呢?雖然我現在寫了個語法分析器,提供了語法樹,但是我的目的是讓我以后設計的更高級的語言可以編譯成這門相對底層的語言,而不是直接編譯成中間指令。這樣很多事情都會好做很多。

            這一門語言主要模仿C,提供指針、結構、數組、基本類型和函數指針。還有extern函數做外部鏈接用。因為編譯成機器碼,所以可以直接把一個函數指針丟進我的腳本引擎,就可以這么用了。而且我的腳本里面的函數也可以直接作為一個函數指針提供出來。復合類型組要勇于跟C++交互。在C++與腳本里面聲明同樣的struct,不需要做額外工作,就可以互相使用了。
              閱讀全文
            posted @ 2009-04-18 00:17 陳梓瀚(vczh) 閱讀(3169) | 評論 (7)編輯 收藏
                 摘要:
            FPU寫起來還真是囧啊,下面20個函數實現到想死……
            Sin,Cos,Tan,Cot,Sec,Csc,ASin,ACos,ATan,ACot,ASec,ACsc,Sqrt,Exp,Ln,Abs,Round,Trunc,Ceil,Floor
            下面是這20個函數的匯編代碼,其中Exp更是登峰造極……  閱讀全文
            posted @ 2009-04-16 05:39 陳梓瀚(vczh) 閱讀(4915) | 評論 (3)編輯 收藏
            僅列出標題
            共35頁: First 16 17 18 19 20 21 22 23 24 Last 
            国产精品九九久久精品女同亚洲欧美日韩综合区 | 精产国品久久一二三产区区别| 久久精品无码一区二区无码 | 狠狠色丁香婷婷久久综合| 久久婷婷五月综合国产尤物app| 久久人人爽人人爽人人片AV不| 伊人色综合久久天天网| 久久婷婷五月综合97色| 久久精品成人免费国产片小草| 狠狠色综合网站久久久久久久高清 | 久久久久人妻精品一区| 99久久人人爽亚洲精品美女| 伊人久久大香线蕉综合5g| 香蕉久久夜色精品国产2020 | 999久久久国产精品| 久久亚洲AV成人无码| 亚洲国产精品婷婷久久| 久久亚洲AV成人无码国产| 久久99国产精品成人欧美| 国产午夜精品久久久久免费视| 久久久精品国产亚洲成人满18免费网站 | 久久久久久国产精品无码下载| 精品国产青草久久久久福利| 久久综合亚洲欧美成人| 久久精品国产一区二区| 99久久精品毛片免费播放| 国产偷久久久精品专区| 伊人久久五月天| 亚洲精品美女久久久久99小说 | 91精品日韩人妻无码久久不卡 | 久久精品亚洲精品国产色婷| 热综合一本伊人久久精品| 一级做a爰片久久毛片人呢| 无码超乳爆乳中文字幕久久| 免费精品久久久久久中文字幕| 中文字幕一区二区三区久久网站 | 色偷偷88欧美精品久久久| 国产精品久久久天天影视香蕉| 精品久久香蕉国产线看观看亚洲 | 日韩AV毛片精品久久久| 久久精品国产国产精品四凭|