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

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

            這一門語言主要模仿C,提供指針、結構、數組、基本類型和函數指針。還有extern函數做外部鏈接用。因為編譯成機器碼,所以可以直接把一個函數指針丟進我的腳本引擎,就可以這么用了。而且我的腳本里面的函數也可以直接作為一個函數指針提供出來。復合類型組要勇于跟C++交互。在C++與腳本里面聲明同樣的struct,不需要做額外工作,就可以互相使用了。
              閱讀全文
            posted @ 2009-04-18 00:17 陳梓瀚(vczh) 閱讀(3184) | 評論 (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) 閱讀(4937) | 評論 (3)編輯 收藏
            僅列出標題
            共35頁: First 16 17 18 19 20 21 22 23 24 Last 
            丰满少妇高潮惨叫久久久| 久久亚洲中文字幕精品一区四| 久久乐国产综合亚洲精品| 久久久国产视频| 国产精品久久久久久搜索| 99久久精品国产一区二区| 婷婷久久五月天| 婷婷综合久久中文字幕| 亚洲人成无码久久电影网站| 久久丫精品国产亚洲av| 成人a毛片久久免费播放| 午夜精品久久久久久99热| 色噜噜狠狠先锋影音久久| 久久久久av无码免费网| 国产高潮久久免费观看| 色综合久久无码五十路人妻| 武侠古典久久婷婷狼人伊人| 中文字幕成人精品久久不卡| 色综合久久久久久久久五月| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产成人综合久久综合| 久久性生大片免费观看性| 91久久香蕉国产熟女线看| 亚洲午夜久久久久久久久电影网 | 国产精品丝袜久久久久久不卡| 国产毛片欧美毛片久久久 | 久久人人爽人人爽人人片AV麻烦 | 色综合久久久久久久久五月| 手机看片久久高清国产日韩| 精品久久久久久久中文字幕 | 中文字幕久久精品无码| 伊人热热久久原色播放www| 精品久久久久久国产| 狠狠色婷婷综合天天久久丁香| 精品久久久噜噜噜久久久| 久久久久免费看成人影片| 久久天天躁夜夜躁狠狠躁2022| 久久人人爽人人爽人人片AV麻烦 | 久久婷婷五月综合97色直播 | 亚洲国产成人久久综合碰碰动漫3d| 久久精品国产亚洲AV久|