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

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

            這一門語言主要模仿C,提供指針、結構、數組、基本類型和函數指針。還有extern函數做外部鏈接用。因為編譯成機器碼,所以可以直接把一個函數指針丟進我的腳本引擎,就可以這么用了。而且我的腳本里面的函數也可以直接作為一個函數指針提供出來。復合類型組要勇于跟C++交互。在C++與腳本里面聲明同樣的struct,不需要做額外工作,就可以互相使用了。
              閱讀全文
            posted @ 2009-04-18 00:17 陳梓瀚(vczh) 閱讀(3177) | 評論 (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) 閱讀(4926) | 評論 (3)編輯 收藏
            僅列出標題
            共35頁: First 16 17 18 19 20 21 22 23 24 Last 
            久久国产精品无码HDAV| 久久人做人爽一区二区三区 | 久久国产影院| 亚洲欧洲日产国码无码久久99| 91精品国产色综久久| 久久久久久久波多野结衣高潮| 99精品久久精品一区二区| 精品无码久久久久久久动漫| 久久精品午夜一区二区福利| 色综合久久88色综合天天 | 久久久久久精品免费免费自慰| 精品久久久久久成人AV| 无码国内精品久久人妻| 91性高湖久久久久| 亚洲精品国产美女久久久| 久久精品国产99久久久香蕉| 亚洲国产另类久久久精品| 97精品国产97久久久久久免费| 亚洲愉拍99热成人精品热久久| 久久婷婷五月综合色99啪ak| 久久99精品国产麻豆婷婷| 少妇精品久久久一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 无码国内精品久久人妻| 女同久久| 久久精品国产精品亚洲人人| 久久不见久久见免费视频7| 久久久久久久综合狠狠综合| 欧美日韩精品久久久免费观看| 亚洲精品高清国产一线久久 | 久久婷婷国产综合精品| 久久香蕉国产线看观看精品yw| 久久精品无码一区二区三区免费| 久久国产精品一区二区| 亚洲一区中文字幕久久| 99久久精品费精品国产一区二区| 日韩亚洲欧美久久久www综合网| 99久久国产精品免费一区二区 | 国产亚洲精久久久久久无码| 久久精品日日躁夜夜躁欧美| 漂亮人妻被中出中文字幕久久|