青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評論-2670  文章-0  trackbacks-0
JIT
使用JIT技術的腳本引擎
【源碼下載】JIT腳本引擎:CMinus 0.1版開放下載      摘要: 說明:CMinus是一個讀入修改過語法的C源程序,然后編譯成x86指令集寫入內存,最后用__stdcall調用約定跟C++互相交流的腳本引擎。
目標:CMinus的定位是中間語言,用于將其他語言編譯到CMinus上,享受本地指令帶來的好處。
進度:完成所有功能,但是由于指令集生成的算法不好,打算修改。
下載:【內詳】。  閱讀全文
posted @ 2009-05-22 00:32 陳梓瀚(vczh) 閱讀(9968) | 評論 (24)  編輯
JIT腳本引擎:CMinus編譯冒泡排序程序      摘要: 雖然CMinus到中間指令的代碼是精心控制的,但是中間指令到x86的代碼卻是很隨意寫出來的。現在看來用窺孔優化只是一種治標不治本的方法。打算在CMinus整個都完成了之后,將中間指令到x86的代碼生成那部分重寫,使用一種廣為人知的寄存器分配算法來做。下面是冒泡排序的程序:  閱讀全文
posted @ 2009-05-19 16:51 陳梓瀚(vczh) 閱讀(3000) | 評論 (3)  編輯
JIT腳本引擎:第一個CMinus程序運行成功      摘要: 目前其實只能編譯單目運算符和return語句,主要是為了看看整個大框架有沒有錯誤。如果沒有發現錯誤的話,其他種類的表達式和語句的代碼生成很容易加上去。下面是一個CMinus程序的例子和編譯結果(匯編):  閱讀全文
posted @ 2009-05-17 23:00 陳梓瀚(vczh) 閱讀(2611) | 評論 (1)  編輯
JIT腳本引擎:基本完成CMinus的語義分析      摘要: 整整寫了一天,終于基本寫完了CMinus的語義分析的代碼,只剩下一個檢查struct是否可以計算出長度的問題(環引用造成的)。下面貼出語義分析的結果,從結果中可以看出符號表的結構以及構造方法:  閱讀全文
posted @ 2009-05-06 08:13 陳梓瀚(vczh) 閱讀(3054) | 評論 (4)  編輯
JIT腳本引擎:CMinus大部分語法測試通過      摘要: 今天寫了一些CMinus程序供語法分析器分析,然后程序從語法樹重新生成格式化后的代碼,兩邊比較檢查優先級什么的是否正確處理。下面是CMinus寫的冒泡排序、菲薄納氣數列、鏈表操作函數以及其他程序:  閱讀全文
posted @ 2009-05-04 19:44 陳梓瀚(vczh) 閱讀(1994) | 評論 (1)  編輯
JIT腳本引擎:實現CMinus語法分析器      摘要: 這一次的語法分析器,我使用Vczh Combinator Parser,按照文法的定義,將字符串轉換成了語法樹。Vczh Combinator Parser構造較大規模的編譯器的時候還是較為吃力,主要原因出在Visual C++竟然限制一個類型全名不能超過某個長度T_T……下面是代碼:  閱讀全文
posted @ 2009-05-03 19:25 陳梓瀚(vczh) 閱讀(2867) | 評論 (11)  編輯
JIT腳本引擎:C Minus語言語法樹定型      摘要: 今天照著C Minus的語法(略有修改)設計出了C Minus的語法樹。語法樹的設計盡量讓生成語法樹的代碼易于編寫。每一個結構的意義十分明確,而且結構與結構之間不需要有相互聯系。下面是語法樹的代碼:  閱讀全文
posted @ 2009-04-24 00:58 陳梓瀚(vczh) 閱讀(3093) | 評論 (5)  編輯
JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎      摘要: 把中間指令都搞定了之后,得開始做一門JIT的腳本引擎了。但是這門腳本引擎不是用來寫的,而是用來給更高級的語言編譯的。這是什么意思呢?雖然我現在寫了個語法分析器,提供了語法樹,但是我的目的是讓我以后設計的更高級的語言可以編譯成這門相對底層的語言,而不是直接編譯成中間指令。這樣很多事情都會好做很多。

這一門語言主要模仿C,提供指針、結構、數組、基本類型和函數指針。還有extern函數做外部鏈接用。因為編譯成機器碼,所以可以直接把一個函數指針丟進我的腳本引擎,就可以這么用了。而且我的腳本里面的函數也可以直接作為一個函數指針提供出來。復合類型組要勇于跟C++交互。在C++與腳本里面聲明同樣的struct,不需要做額外工作,就可以互相使用了。
  閱讀全文
posted @ 2009-04-18 00:17 陳梓瀚(vczh) 閱讀(3185) | 評論 (7)  編輯
JIT腳本引擎:完成20個浮點函數      摘要:
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) 閱讀(4941) | 評論 (3)  編輯
JIT腳本引擎:測試除特殊浮點函數外的所有指令通過      摘要: 昨天為機器碼編譯程序寫了個專用的unit test框架,今天用中間語言在這個框架上寫了個程序。程序將12個字符串連接起來,然后跟另外一個字符串進行比較,如果相等返回true。當然程序如果返回false了,要么就是程序有問題,要么就是編譯器有問題。當然現在是測試通過了。程序如下:  閱讀全文
posted @ 2009-04-15 21:15 陳梓瀚(vczh) 閱讀(2142) | 評論 (1)  編輯
JIT腳本引擎:成功將第一個腳本編譯成機器碼      摘要: 這次工作將一個中間語言的程序翻譯成了匯編,然后再翻譯成機器碼。這一次產生的匯編比較爛,到時候做個窺孔優化稍微處理一下就好了。等上層的設施搞定之后再將這個中間語言到匯編的程序重寫。下面是一個菲薄納氣數列的例子。  閱讀全文
posted @ 2009-04-14 00:11 陳梓瀚(vczh) 閱讀(2747) | 評論 (9)  編輯
JIT腳本引擎:繼續工作      摘要: 大約兩個多星期沒做JIT了,經過之前些其他代碼消遣,現在還是繼續做下去的好。目前的成果是完成了匯編數據結構、完成了匯編到機器碼的轉換器、知道了成員對齊、調用轉換的約定、知道如何實現異常處理以及完成了中間指令的數據結構和檢查。現在需要做的事中間指令到匯編的轉換程序。  閱讀全文
posted @ 2009-04-10 23:30 陳梓瀚(vczh) 閱讀(1934) | 評論 (1)  編輯
JIT腳本引擎:中間語言定稿并完成驗證工作      摘要: 經過一個多星期的推敲,終于將中間語言定稿。為了屏蔽寄存器、堆棧、數值比較邏輯、跳轉、變量參數存放位置等,設計了以下中間語言。  閱讀全文
posted @ 2009-03-19 20:49 陳梓瀚(vczh) 閱讀(2220) | 評論 (1)  編輯
JIT腳本引擎:中間指令草稿      摘要: 中間指令主要用于解決以下問題:
1、不同大小的整數、浮點、指針的互相轉換和計算
2、寄存器分配
3、跳轉
4、調用轉換(stdcall、cdecl、fastcall)
5、臨時存儲單位(變量等)

因此指令在設計的時候需要
1、不讓用戶知道東西是放在哪里的(沒有堆棧給你push和pop,而且變量在物理上不一定存在,譬如說可能在寄存器里面,或者直接優化沒了等等)
2、不讓用戶接觸到各種標志位(譬如說那個惡心的浮點比較)
3、不讓用戶接觸到stdcall、cdecl和fastcall的區別(因此call指令需要將所有參數一起寫入,而不是在之前push)
4、不讓用戶接觸不同類型數據的轉換過程(全自動處理,就算你int32=fp32+int16,也是一條指令。)
5、為了保持靈活性,聲明變量的時候只指出其大小,在使用變量的每一處地方標記類型(因此可以在不同的地方標記為不同的,可以救急)
  閱讀全文
posted @ 2009-03-10 21:05 陳梓瀚(vczh) 閱讀(1831) | 評論 (0)  編輯
JIT腳本引擎:成員對齊詳解      摘要: 為了讓編譯成x86后的代碼可以轉換成C++的函數指針,我們也必須處理成員對齊的事情。如果腳本里的結構成員對齊跟C++不一致的話,會造成很多麻煩。下面是成員對齊的計算方法:  閱讀全文
posted @ 2009-03-09 20:46 陳梓瀚(vczh) 閱讀(3768) | 評論 (2)  編輯

Full JIT Archive

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99v久久综合狠狠综合久久| 欧美日韩国产成人在线观看| 久久香蕉国产线看观看av| 性做久久久久久久免费看| 午夜精品久久久久久久99樱桃| 99视频在线观看一区三区| 一区二区三区欧美在线观看| 亚洲一区在线观看视频| 欧美一级在线视频| 蜜桃av噜噜一区二区三区| 欧美国产一区二区在线观看 | 亚洲欧美日韩国产一区二区三区| 亚洲中字黄色| 麻豆亚洲精品| 欧美性视频网站| 国产一区二区视频在线观看| 亚洲欧洲另类国产综合| 亚洲男人的天堂在线| 久久尤物视频| 日韩午夜激情电影| 欧美有码在线观看视频| 欧美国产精品日韩| 国产亚洲aⅴaaaaaa毛片| 91久久综合亚洲鲁鲁五月天| 欧美一区二区国产| 亚洲娇小video精品| 一本大道久久a久久精二百| 性做久久久久久久免费看| 欧美激情一区二区久久久| 国产一区二区三区丝袜| 亚洲一区二区三区四区五区午夜| 久久青草欧美一区二区三区| 一区二区三区精品在线| 免费观看国产成人| 国产一区二区看久久| 亚洲一区二区在线免费观看| 欧美激情视频一区二区三区在线播放 | 欧美影院成年免费版| 亚洲黄色在线视频| 久久精品国产久精国产爱| 国产精品对白刺激久久久| 欧美资源在线| 欧美午夜精品电影| 一本色道久久加勒比88综合| 久久这里只有| 欧美伊人久久久久久久久影院| 欧美四级在线| 中国女人久久久| 亚洲国产日韩欧美| 免费看黄裸体一级大秀欧美| 影音先锋久久久| 久久精品国产免费| 亚洲欧美日韩精品久久| 国产欧美一区二区三区沐欲| 午夜精品久久久久久久| 中国av一区| 国产精品国码视频| 亚洲欧美日韩中文在线制服| 亚洲五月婷婷| 国产精品午夜久久| 欧美一区二区三区成人| 亚洲欧美中文日韩在线| 国产欧美在线视频| 久久久久久精| 免费h精品视频在线播放| 亚洲人成啪啪网站| 亚洲第一中文字幕在线观看| 欧美成在线观看| 国产精品99久久不卡二区| 亚洲国产婷婷香蕉久久久久久99| 欧美韩日一区二区三区| av成人免费观看| 亚洲午夜黄色| 国内成人在线| 欧美高清视频| 欧美日韩中文在线| 性久久久久久| 久久躁狠狠躁夜夜爽| 亚洲免费av电影| 亚洲视频在线二区| 国产一区二区欧美日韩| 亚洲高清不卡av| 国产精品国产精品| 久久性天堂网| 欧美日韩八区| 久久精品国产清高在天天线 | 国产精品视频第一区| 久久久精品国产免大香伊| 久久久亚洲综合| 一区二区冒白浆视频| 性欧美精品高清| 99视频有精品| 久久久久99| 亚洲一二三区在线| 久久久99爱| 亚洲一区二区三区三| 久久婷婷成人综合色| 亚洲一区精彩视频| 另类尿喷潮videofree| 亚洲综合久久久久| 麻豆freexxxx性91精品| 欧美中文字幕在线观看| 欧美成人精品一区| 国产日韩在线一区二区三区| 免费欧美电影| 国产精品视频yy9299一区| 欧美激情一区在线| 国产精品色网| 亚洲人人精品| 在线观看视频亚洲| 午夜伦欧美伦电影理论片| 一本久道久久综合中文字幕| 久久精品一级爱片| 欧美在线播放视频| 国产精品hd| 亚洲乱码国产乱码精品精天堂| 国产一区二区欧美日韩| 亚洲图片欧洲图片av| 日韩一级裸体免费视频| 另类图片国产| 蜜臀91精品一区二区三区| 国产女人精品视频| 亚洲一区二区三区午夜| 亚洲网在线观看| 欧美日韩1234| 欧美国内亚洲| 亚洲国产毛片完整版| 久久永久免费| 欧美11—12娇小xxxx| 激情六月综合| 久久精品国产一区二区电影| 久久经典综合| 国产日韩欧美高清| 午夜天堂精品久久久久| 欧美一区二区三区免费大片| 国产精品毛片一区二区三区| 亚洲视频一区二区免费在线观看| 亚洲午夜精品久久久久久app| 欧美日韩美女在线观看| 9色精品在线| 一区二区三区日韩| 欧美午夜视频网站| 亚洲一区三区视频在线观看| 欧美一区二区三区精品| 国产一区二区电影在线观看| 欧美一区激情| 欧美电影专区| 亚洲婷婷综合色高清在线| 国产精品成av人在线视午夜片| 亚洲午夜日本在线观看| 久久精品国产精品| 亚洲第一综合天堂另类专| 欧美高清在线播放| 一区二区三区|亚洲午夜| 欧美一进一出视频| 伊人久久亚洲影院| 欧美韩日视频| 亚洲欧美激情视频| 免费在线观看一区二区| 夜夜精品视频一区二区| 国产精品黄色| 久久精品视频免费| 亚洲国产精品成人一区二区| 亚洲一区在线观看视频 | 欧美激情综合色| 亚洲一区网站| 在线精品国产成人综合| 欧美日产国产成人免费图片| 亚洲欧美成人一区二区三区| 久久亚洲精选| 亚洲午夜视频在线| 亚洲综合精品自拍| 久久人人超碰| 亚洲免费成人| 国内外成人免费激情在线视频网站| 麻豆成人综合网| 亚洲性图久久| 亚洲大胆女人| 久热精品视频在线观看| 亚洲国产精品免费| 国产精品视频一二| 欧美大片在线观看一区| 欧美中文在线视频| 亚洲精品免费在线播放| 久久久久久久久久久一区| 一区二区三区四区五区视频| 影音先锋日韩资源| 国产精品亚洲综合天堂夜夜| 欧美国产视频一区二区| 久久久久综合一区二区三区| 亚洲免费av片| 亚洲国产小视频在线观看| 免费不卡在线观看| 久久激情五月丁香伊人| 午夜日韩av| 亚洲综合不卡| 亚洲小说区图片区| 一区二区欧美在线观看| 91久久久久久| 在线看片成人|