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

隨筆-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) 閱讀(3191) 評論(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>
            久久riav二区三区| 亚洲成色精品| 欧美在线免费一级片| 欧美激情视频一区二区三区免费 | 日韩午夜高潮| 卡一卡二国产精品| 欧美一区二区三区在线观看| 国产精品国产自产拍高清av王其| 亚洲毛片一区| 91久久综合| 欧美搞黄网站| 一本色道久久综合一区| 91久久亚洲| 欧美另类69精品久久久久9999| 亚洲三级观看| 亚洲激情不卡| 欧美精品一区二| 亚洲视频一区在线| 一区二区日韩精品| 国产精品毛片高清在线完整版| 亚洲欧美日韩一区二区| 亚洲欧美国产精品va在线观看 | 国产自产女人91一区在线观看| 久久国产色av| 久久久精品久久久久| 亚洲激情在线视频| 亚洲日本激情| 国产精品久久久久久久电影| 午夜亚洲视频| 久久久久久国产精品一区| 亚洲激情国产| 在线视频中文亚洲| 韩国久久久久| 亚洲欧洲日本mm| 国产精品久久久久婷婷| 久久久久成人精品| 欧美国产视频日韩| 欧美一级精品大片| 欧美va天堂va视频va在线| 亚洲在线一区二区三区| 欧美在线观看日本一区| 亚洲精品中文字幕有码专区| 一区二区日韩免费看| 极品裸体白嫩激情啪啪国产精品| 亚洲第一天堂无码专区| 国产精品黄视频| 欧美成人乱码一区二区三区| 欧美日韩亚洲一区在线观看| 久久人人爽爽爽人久久久| 欧美日韩黄视频| 久久久综合视频| 欧美午夜欧美| 欧美韩日一区二区三区| 国产精品揄拍500视频| 亚洲第一精品影视| 国产日韩欧美电影在线观看| 欧美二区在线播放| 国产免费一区二区三区香蕉精| 亚洲第一狼人社区| 国产专区综合网| 亚洲私拍自拍| 99精品视频免费全部在线| 久久精品国产精品亚洲精品| 久久综合色综合88| 国产欧美欧洲在线观看| 亚洲第一中文字幕| 国产老女人精品毛片久久| 亚洲激情偷拍| 亚洲电影视频在线| 欧美亚洲一级| 午夜免费日韩视频| 欧美日本在线一区| 亚洲成人在线视频播放| 在线观看成人网| 欧美一级播放| 欧美一区国产一区| 国产精品久久久久久久久动漫| 亚洲激情国产精品| 亚洲高清免费视频| 久久青草久久| 免费观看一级特黄欧美大片| 国产亚洲电影| 午夜亚洲影视| 久久精品一级爱片| 国产丝袜美腿一区二区三区| 亚洲一区二区三区乱码aⅴ| 一区二区三区**美女毛片| 欧美大片91| 亚洲全部视频| 一本色道久久综合狠狠躁篇怎么玩 | 最新中文字幕一区二区三区| 亚洲国产成人精品视频| 久久久亚洲午夜电影| 久久人人97超碰精品888| 国内精品久久久| 久久精品色图| 欧美成人性网| 亚洲精选视频在线| 欧美麻豆久久久久久中文| 亚洲国产日韩精品| av成人毛片| 国产精品国产三级国产专区53| 亚洲少妇一区| 久久精品亚洲精品| 影音先锋亚洲精品| 免费在线亚洲| 99国内精品久久久久久久软件| 亚洲视频中文| 国产日韩成人精品| 久久综合伊人77777麻豆| 亚洲国产精品毛片| 在线视频亚洲欧美| 国产精品综合av一区二区国产馆| 性做久久久久久| 欧美大片免费观看| 一区二区三区免费在线观看| 国产精品久久久一区二区| 欧美专区一区二区三区| 亚洲国产精品美女| 欧美一区二区免费视频| 在线观看亚洲专区| 欧美日韩一级片在线观看| 亚洲一区二区三区四区视频| 另类春色校园亚洲| 亚洲视频观看| 伊人久久婷婷色综合98网| 欧美日韩二区三区| 久久国产黑丝| 一本色道久久综合亚洲精品不 | 亚洲第一福利社区| 国产精品不卡在线| 久久九九国产精品怡红院| 亚洲激情在线| 午夜精品影院| 亚洲欧洲午夜| 国产乱肥老妇国产一区二| 牛牛影视久久网| 亚洲欧美成人在线| 亚洲精品乱码久久久久久日本蜜臀| 欧美一区激情| 亚洲视频久久| 亚洲欧洲精品天堂一级| 国产精品v片在线观看不卡| 久久久一区二区三区| 亚洲在线成人| 99视频精品在线| 亚洲电影天堂av| 老牛国产精品一区的观看方式| 亚洲综合清纯丝袜自拍| 亚洲人久久久| 在线观看日韩av电影| 国产精品一区二区黑丝| 欧美久久影院| 免费成人小视频| 久久久久国色av免费看影院 | 欧美精品一区在线观看| 欧美伊人影院| 午夜精品久久久久久99热| 日韩亚洲精品视频| 亚洲黄色免费电影| 欧美.www| 蜜臀久久99精品久久久画质超高清| 性欧美1819sex性高清| 亚洲深夜福利| 亚洲图片欧美午夜| 一区二区三区久久| 一区二区电影免费在线观看| 亚洲国产综合在线| 1000部精品久久久久久久久| 韩国一区电影| 一区二区三区在线高清| 国产丝袜一区二区三区| 国产精品爽爽爽| 国产欧美高清| 国产在线国偷精品产拍免费yy| 国产精品卡一卡二卡三| 国产精品美女www爽爽爽| 国产精品激情av在线播放| 国产精品swag| 国产精品私房写真福利视频| 国产精品久久久久毛片软件| 国产精品hd| 国产伦精品一区二区三区| 国产精品一区二区黑丝| 国产视频在线观看一区二区三区| 国产精品视频午夜| 国产夜色精品一区二区av| 狠狠干成人综合网| 亚洲国产高清自拍| 99re在线精品| 亚洲免费在线视频| 久久国内精品视频| 免费成年人欧美视频| 欧美韩日一区二区三区| 亚洲美女视频在线观看| 亚洲一区在线播放| 久久精品官网| 欧美大片专区| 国产精品网站在线播放| 国产中文一区二区|