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

隨筆-341  評論-2670  文章-0  trackbacks-0
    把中間指令都搞定了之后,得開始做一門JIT的腳本引擎了。但是這門腳本引擎不是用來寫的,而是用來給更高級的語言編譯的。這是什么意思呢?雖然我現在寫了個語法分析器,提供了語法樹,是我的目的是讓我以后設計的更高級的語言可以編譯成這門相對底層的語言(從一棵語法樹轉換成另一棵語法樹),而不是直接編譯成中間指令。這樣很多事情都會好做很多。

    這一門語言主要模仿C,提供指針、結構、數組、基本類型和函數指針。還有extern函數做外部鏈接用。因為編譯成機器碼,所以可以直接把一個函數指針丟進我的腳本引擎,就可以這么用了。而且我的腳本里面的函數也可以直接作為一個函數指針提供出來。復合類型組要勇于跟C++交互。在C++與腳本里面聲明同樣的struct,不需要做額外工作,就可以互相使用了。

    語法如下:
  1 Vczh JIT Native Language
  2 -----------------------------------------
  3 基本數據類型:
  4 
  5 [signed|unsigned]byte
  6 [signed|unsigned]short
  7 [signed|unsigned]int
  8 char
  9 wchar
 10 float
 11 double
 12 bool
 13 
 14 復合類型:
 15 
 16 TYPE*
 17 TYPE[LENGTH]
 18 TYPE(TYPE,)
 19 void(TYPE,)
 20 
 21 結構類型:
 22 struct
 23 {
 24   TYPE NAME;
 25   
 26 }
 27 -----------------------------------------
 28 表達式:
 29 
 30 數字、浮點、字符、寬字符、truefalsenull(指針,函數指針)
 31 操作符表達式
 32 (表達式)
 33 VALUE(VALUE,)
 34 TYPE(VALUE)
 35 NAME
 36 -----------------------------------------
 37 操作符:
 38 
 39 + - * /        :int X int = int
 40                :float X int = float
 41         :int X float = float
 42         :float X float = float
 43         :ptr X int = ptr(+ -)
 44         :int X ptr = ptr(+ -)
 45 
 46 & | ^ %        :int X int = int
 47 
 48 && || ^^    :int X int = bool
 49 
 50 < > == <= >= !=    :int X int = bool
 51         :float X float = bool
 52         :ptr X ptr = bool
 53 
 54 -        :X int = int
 55         :X float = float
 56 
 57 ~        :X int = int
 58 
 59 !        :X int = float
 60 
 61 &        :X VALUE,獲取指針
 62 
 63 *        :X PTR,獲取內容
 64 
 65 X[Y]        :數組、指針
 66 -----------------------------------------
 67 對象聲明:
 68 
 69 TYPE NAME
 70 TYPE NAME=VALUE
 71 const TYPE NAME=VALUE
 72   數組:{VALUE,}
 73   結構:{NAME=VALUE,},必須全員賦值
 74 -----------------------------------------
 75 語句:
 76 
 77 對象聲明
 78 
 79 表達式
 80 左值=表達式
 81 
 82 if (bool) 語句塊[else 語句]
 83 if (bool) 語句;[else 語句]
 84 while (bool) 語句
 85 do 語句 while (bool)
 86 {語句;}
 87 
 88 break
 89 continue
 90 return 表達式
 91 return
 92 空語句
 93 -----------------------------------------
 94 函數:
 95 
 96 TYPE NAME(TYPE NAME,){語句;}
 97 void NAME(TYPE NAME,){語句;}
 98 extern TYPE NAME(TYPE,) alias "KEY";
 99 extern void NAME(TYPE,) alias "KEY";
100 -----------------------------------------
101 類型聲明:
102 
103 typedef TYPE NAME
104 -----------------------------------------
105 程序:
106 
107 類型聲明;
108 對象聲明;
109 函數
110 -----------------------------------------
111 關鍵字:
112 
113 signed unsigned byte short int double float char wchar bool struct
114 null true false
115 void extern typedef if else while do break continue return alias

    大部分照搬了C語言,主要修改是那個惡心的函數指針類型被重新設計了,還有添加了非參數用的const(這不是類型的一部分,跟C++不同),修改了struct初始化的賦值方法。
posted on 2009-04-18 00:17 陳梓瀚(vczh) 閱讀(3193) 評論(7)  編輯 收藏 引用 所屬分類: JIT

評論:
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-18 01:30 | lccc
樓主強人....

跟 LLVM Compiler 有些相像的地方,都是把其它的各種語言轉成自己的,再統一處理  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-18 01:44 | 清風
基本上,你就是在做c語言編譯器  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-18 02:23 | SOS
native化  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-18 04:57 | 巫云
應該是基于虛擬機的C語言,很帥。  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-18 05:56 | 陳梓瀚(vczh)
@巫云
是要編譯成機器碼讓CPU直接跑的。  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎 2009-04-19 22:11 | 席子
"但是我的目的是讓我以后設計的更高級的語言可以編譯成這門相對底層的語言(從一棵語法樹轉換成另一棵語法樹),而不是直接編譯成中間指令。"

"惡心的函數指針類型被重新設計了,還有添加了非參數用的const(這不是類型的一部分,跟C++不同),修改了struct初始化的賦值方法"


呵呵, 深有同感  回復  更多評論
  
# re: JIT腳本引擎:開始做第一門編譯成機器碼的腳本引擎[未登錄] 2009-04-22 01:14 | jans2002
期待樓主的精彩表演  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品国产第一区二区三区最新章节 | 亚洲视频视频在线| 欧美精品国产一区| 亚洲乱码日产精品bd| 亚洲丰满在线| 欧美裸体一区二区三区| 亚洲精品免费电影| 99视频+国产日韩欧美| 欧美视频第二页| 香港久久久电影| 香蕉av777xxx色综合一区| 国产日韩高清一区二区三区在线| 欧美一区二区三区免费在线看| 亚洲欧美国产77777| 国产午夜精品久久| 久久久99免费视频| 欧美成人午夜剧场免费观看| 亚洲系列中文字幕| 欧美亚洲视频| 亚洲高清不卡在线观看| 亚洲精品久久久久久久久久久久| 国产精品对白刺激久久久| 久久久精品一区| 欧美国产精品v| 欧美一级久久| 欧美国产日韩精品免费观看| 亚洲一区二区三区四区在线观看| 午夜精品免费| 一区二区三区在线观看视频| 亚洲精品免费在线观看| 国产精品永久免费在线| 欧美激情一区二区三区在线视频观看 | 快she精品国产999| 欧美三日本三级三级在线播放| 久久激情综合网| 欧美成人免费va影院高清| 亚洲欧美久久久久一区二区三区| 久久av一区二区| 亚洲一区中文| 免费人成网站在线观看欧美高清 | 欧美激情第3页| 欧美一区二区视频在线观看2020| 久久亚洲国产精品一区二区 | 亚洲精品在线免费| 亚洲欧美不卡| 亚洲伦伦在线| 另类欧美日韩国产在线| 香蕉乱码成人久久天堂爱免费| 久久综合狠狠综合久久综合88| 亚洲在线观看视频网站| 媚黑女一区二区| 久久国产88| 欧美高清视频一二三区| 久久日韩精品| 国产欧美精品国产国产专区| 亚洲国产精品久久久久久女王| 国语精品一区| 午夜亚洲一区| 亚洲在线视频网站| 欧美激情导航| 亚洲欧洲精品一区二区精品久久久| 韩国av一区二区三区| 亚洲欧美在线一区二区| 亚洲欧美综合另类中字| 欧美涩涩网站| 一本色道久久综合亚洲精品小说| 亚洲毛片在线免费观看| 欧美成ee人免费视频| 男女精品网站| 亚洲成人在线网站| 久久综合狠狠| 亚洲国产美女| 国产精品99久久久久久白浆小说| 欧美激情综合色| 日韩亚洲欧美精品| 亚洲午夜性刺激影院| 欧美性生交xxxxx久久久| 99精品欧美一区| 午夜一级久久| 国内成+人亚洲| 久久久久久亚洲精品不卡4k岛国| 蜜臀av一级做a爰片久久| 一区二区在线视频观看| 另类综合日韩欧美亚洲| 亚洲黄色影院| 亚洲欧美久久| 国产综合久久久久久鬼色| 可以看av的网站久久看| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲美女电影在线| 国产精品国产三级国产专播精品人| 宅男噜噜噜66一区二区| 久久高清一区| 亚洲精品日韩综合观看成人91| 欧美日本高清视频| 亚洲欧美视频| 亚洲国产另类久久精品| 亚洲欧美日本另类| 亚洲国产精品成人| 欧美视频二区| 老司机免费视频一区二区三区| 91久久久亚洲精品| 欧美一区二区视频在线观看| 在线播放不卡| 国产精品久久久久久久久免费樱桃 | 欧美国产日韩免费| 亚洲淫片在线视频| 在线看日韩av| 国产精品成人一区二区三区吃奶| 久久精品视频免费| 一本色道久久88精品综合| 久久久久欧美精品| 在线视频日韩| 在线免费日韩片| 国产九区一区在线| 欧美激情中文字幕一区二区| 香港成人在线视频| 99国产精品久久久久久久成人热| 久久久久久亚洲精品中文字幕| 9久草视频在线视频精品| 国内精品久久久久久久影视蜜臀 | 精品av久久707| 国产精品www| 欧美成人午夜77777| 性xx色xx综合久久久xx| 9人人澡人人爽人人精品| 美日韩精品视频| 久久成人综合视频| 亚洲永久精品大片| 日韩视频欧美视频| 亚洲国产精彩中文乱码av在线播放 | 91久久精品国产| 免费观看一区| 久久久一区二区| 欧美在线一二三区| 亚洲欧美日韩直播| 亚洲一二三区精品| 亚洲天堂免费在线观看视频| 亚洲日本成人网| 亚洲高清免费| 在线看日韩av| 亚洲电影免费在线 | 欧美人与禽性xxxxx杂性| 另类专区欧美制服同性| 久久亚洲春色中文字幕| 久久激情网站| 久久精品色图| 狼人社综合社区| 老巨人导航500精品| 免费视频一区| 欧美激情免费在线| 欧美日韩国产片| 欧美三区美女| 国产精品久久久久久久久久免费 | 亚洲专区欧美专区| 亚洲欧美成人一区二区在线电影| 一区二区三区视频观看| 一二三四社区欧美黄| 一区二区三区日韩精品| 亚洲一级黄色片| 亚洲欧美一级二级三级| 欧美中文字幕在线视频| 久久综合给合| 亚洲国产成人精品视频| 亚洲精品一区二区三区在线观看| 夜夜爽夜夜爽精品视频| 亚洲自拍偷拍一区| 久久久国产精品亚洲一区| 免费一级欧美片在线观看| 欧美日韩国产电影| 国产精品综合久久久| 亚洲成色999久久网站| 亚洲日本aⅴ片在线观看香蕉| 亚洲毛片播放| 性色av一区二区三区在线观看| 久久蜜桃资源一区二区老牛| 亚洲第一伊人| 亚洲中字在线| 蜜臀av国产精品久久久久| 欧美三区在线| 狠狠色丁香久久婷婷综合_中| 亚洲理论在线| 久久se精品一区二区| 亚洲福利视频在线| 亚洲欧美区自拍先锋| 久久久久久国产精品mv| 欧美日韩在线一区| 一区二区三区在线观看视频| 亚洲素人在线| 欧美成人免费播放| 亚洲欧美日本日韩| 欧美乱人伦中文字幕在线| 国产主播一区二区三区| 亚洲一本视频| 亚洲高清自拍| 午夜精品影院| 欧美视频久久| 亚洲精品欧美日韩| 麻豆国产精品一区二区三区| 亚洲视频观看|