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

隨筆-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 數字、浮點、字符、寬字符、true、false、null(指針,函數指針)
 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) 閱讀(3189) 評論(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>
            又紧又大又爽精品一区二区| 羞羞视频在线观看欧美| 欧美日韩激情网| 欧美刺激性大交免费视频| 欧美a级片网| 欧美另类人妖| 国产精品欧美久久久久无广告| 欧美午夜激情视频| 国产精品视频一二| 亚洲成人中文| 亚洲影院高清在线| 裸体一区二区三区| 亚洲精品视频在线| 午夜精品久久久久久久| 久久久精品国产免费观看同学| 欧美高清视频一区| 国产日韩欧美成人| 99在线精品视频| 久久久久国产精品人| 欧美高清视频一区二区| 亚洲视频网在线直播| 久久五月婷婷丁香社区| 欧美视频一区二| 在线观看欧美日本| 午夜精品久久久久久久蜜桃app| 噜噜噜91成人网| 性久久久久久| 久久久7777| 欧美四级在线观看| 亚洲福利视频免费观看| 亚洲欧美一级二级三级| 欧美va天堂| 亚洲免费在线视频| 欧美看片网站| 亚洲国产福利在线| 久久全球大尺度高清视频| 夜夜狂射影院欧美极品| 久久综合九色99| 国产亚洲综合在线| 亚洲欧美日韩综合国产aⅴ| 亚洲国产成人久久综合| 亚洲一区二区三区精品动漫| 久久久av网站| 国产亚洲一区二区三区| 性欧美激情精品| 一本到高清视频免费精品| 欧美激情一区二区三区蜜桃视频 | 欧美精品自拍偷拍动漫精品| 国产欧美精品va在线观看| 中文精品视频| 亚洲激情视频在线观看| 噜噜噜在线观看免费视频日韩| 国产日韩精品一区| 欧美一区激情视频在线观看| 一本色道久久88亚洲综合88| 欧美精选午夜久久久乱码6080| 亚洲第一精品影视| 欧美成人中文字幕| 美国三级日本三级久久99| 在线免费观看成人网| 免费日韩成人| 免费国产自线拍一欧美视频| 亚洲国产成人不卡| 亚洲国产成人久久综合一区| 欧美第一黄色网| 国产精品99久久99久久久二8| 亚洲精品美女在线| 欧美色视频一区| 欧美在线观看日本一区| 午夜精品一区二区在线观看| 国产午夜精品一区理论片飘花| 久久婷婷久久| 玖玖在线精品| 一区二区三区国产精品| 在线亚洲+欧美+日本专区| 国产精品区一区| 玖玖视频精品| 欧美日韩精品久久久| 欧美与欧洲交xxxx免费观看| 久久视频国产精品免费视频在线| 亚洲精品色图| 亚洲欧美资源在线| 亚洲天堂男人| 亚洲一区二区在线播放| 欧美一级电影久久| 国产亚洲一区在线| 欧美bbbxxxxx| 欧美另类变人与禽xxxxx| 亚洲一区二区在线观看视频| 亚洲欧美区自拍先锋| 亚洲二区视频| 一本大道av伊人久久综合| 国产日本亚洲高清| 亚洲第一天堂av| 国产精品一级在线| 欧美国产极速在线| 国产精品高潮视频| 久久综合网hezyo| 欧美日韩另类视频| 久久躁狠狠躁夜夜爽| 欧美日韩在线亚洲一区蜜芽| 久久视频在线视频| 欧美天堂亚洲电影院在线播放| 榴莲视频成人在线观看| 国产精品v片在线观看不卡| 老司机午夜精品视频| 欧美日韩免费高清| 免费亚洲一区| 国产亚洲高清视频| 一区二区日韩免费看| 亚洲片国产一区一级在线观看| 午夜综合激情| 亚洲愉拍自拍另类高清精品| 美女在线一区二区| 久久精品亚洲精品国产欧美kt∨| 免费亚洲电影在线| 久久久久久久久一区二区| 欧美视频在线观看| 91久久综合| 亚洲精品视频一区二区三区| 久久久久久伊人| 老牛影视一区二区三区| 国产午夜精品理论片a级探花 | 久久成人资源| 国产精品美女黄网| 一区二区三区精密机械公司 | 91久久在线| 亚洲久久视频| 欧美激情亚洲国产| 亚洲精品乱码久久久久久日本蜜臀 | 欧美国产精品人人做人人爱| 国产亚洲欧美激情| 欧美一级大片在线免费观看| 性欧美xxxx大乳国产app| 国产精品久久久亚洲一区| 一区二区久久久久| 亚洲一区二区三区四区五区午夜| 欧美国产日本| 亚洲激情专区| 午夜精品久久久久久久男人的天堂| 国产欧美日韩视频| 午夜日韩视频| 久久人91精品久久久久久不卡| 国产婷婷一区二区| 欧美一区二区三区日韩视频| 久久久亚洲国产天美传媒修理工| 国产一区二区三区久久悠悠色av| 亚洲自拍偷拍色片视频| 欧美一区二区三区日韩| 国产一区亚洲| 免费欧美日韩| 91久久精品国产91性色| 国产精品99久久99久久久二8| 国产精品视频一区二区高潮| 亚洲一区视频| 久久一二三四| 制服丝袜激情欧洲亚洲| 国产精品一区在线观看| 久久国产精品99久久久久久老狼 | 亚洲国产精品va在线看黑人| 老司机精品久久| 欧美大片在线观看| 欧美网站在线| 亚洲国产一区二区三区青草影视 | 欧美激情一区二区| 99re国产精品| 亚洲一区影音先锋| 国产欧美日韩三级| 久久嫩草精品久久久精品| 亚洲二区在线观看| 亚洲一区二区三| 国产亚洲视频在线| 欧美国产精品久久| 亚洲视频一二区| 老牛影视一区二区三区| 夜夜嗨av一区二区三区网页| 国产精品美女久久久浪潮软件 | 亚洲一区二区三区在线| 欧美视频在线播放| 久久精品亚洲一区二区三区浴池| 欧美国产先锋| 午夜精品区一区二区三| 在线日韩中文| 欧美日韩亚洲综合| 久久久亚洲午夜电影| 亚洲婷婷在线| 亚洲国产精品999| 一本色道久久综合一区| 亚洲一区亚洲| 在线播放中文字幕一区| 欧美视频免费在线| 麻豆国产va免费精品高清在线| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲免费婷婷| 1769国产精品| 黑人极品videos精品欧美裸| 欧美体内she精视频在线观看| 快she精品国产999| 欧美一区二区免费| 亚洲午夜极品|