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

隨筆-341  評論-2670  文章-0  trackbacks-0
    今天寫了Kernel FP模板函數(shù)實(shí)例化的代碼。雖然還有一點(diǎn)小bug,不過還是說一下。

    Kernel FP的Runtime Assembly是沒有模板信息的,函數(shù)由簽名、表達(dá)式引用以及函數(shù)引用構(gòu)成。函數(shù)引用表記錄了函數(shù)在一種類型的實(shí)例化下實(shí)際調(diào)用的其他函數(shù)的實(shí)例。譬如函數(shù)參數(shù)在類型A和類型B下函數(shù)def function param=print param,print有可能因?yàn)閜aram的類型的變化而變化。因此這需要記錄在一個(gè)函數(shù)的實(shí)例里。

    在寫完代碼之后我粗略跑了一下,使用之前用來做類型推導(dǎo)的代碼,以及寫了一個(gè)main函數(shù):
1 module main
2 import system
3 import sysutils
4 import list
5 
6 def main score = if (flt score 60.0"fail" "pass"

    字符串被解釋成字符列表,于是"fail"被翻譯成list 'f'(list 'a'(list 'i'(list 'l'))),但是操作符作為一種函數(shù)的語法糖尚未引入,非完整模板函數(shù)也尚未引入,所以操作符就沒有實(shí)現(xiàn)了。此處flt是小于的意思,main函數(shù)的作用就是判斷score是否過了60并打出fail和pass作為結(jié)果。

    編譯器通過類型推導(dǎo),得到函數(shù)的類型float->list char:
 1 【Code Unit system】
 2     module system::system
 3     type bool
 4     type char
 5     type float
 6     type int
 7     type list T
 8     type string = (system.list system.char)
 9     type void
10     ctor empty :: type list T
11     ctor false :: type bool
12     ctor list :: <T> -> (system.list <T>-> type list T
13     ctor true :: type bool
14     func ceil :: (system.float -> system.float) alias "kernelfp::ceil" codefrom -1
15     func chr :: (system.int -> system.char) alias "kernelfp::chr" codefrom -1
16     func fadd :: (system.float -> (system.float -> system.float)) alias "kernelfp::fadd" codefrom -1
17     func fdiv :: (system.float -> (system.float -> system.float)) alias "kernelfp::fdiv" codefrom -1
18     func fequ :: (system.float -> (system.float -> system.bool)) alias "kernelfp::fequ" codefrom -1
19     func fgt :: (system.float -> (system.float -> system.bool)) alias "kernelfp::fgt" codefrom -1
20     func floor :: (system.float -> system.float) alias "kernelfp::floor" codefrom -1
21     func flt :: (system.float -> (system.float -> system.bool)) alias "kernelfp::flt" codefrom -1
22     func fmul :: (system.float -> (system.float -> system.float)) alias "kernelfp::fmul" codefrom -1
23     func fsub :: (system.float -> (system.float -> system.float)) alias "kernelfp::fsub" codefrom -1
24     func iadd :: (system.int -> (system.int -> system.int)) alias "kernelfp::iadd" codefrom -1
25     func idiv :: (system.int -> (system.int -> system.int)) alias "kernelfp::idiv" codefrom -1
26     func iequ :: (system.int -> (system.int -> system.bool)) alias "kernelfp::iequ" codefrom -1
27     func igt :: (system.int -> (system.int -> system.bool)) alias "kernelfp::igt" codefrom -1
28     func ilt :: (system.int -> (system.int -> system.bool)) alias "kernelfp::ilt" codefrom -1
29     func imod :: (system.int -> (system.int -> system.int)) alias "kernelfp::imod" codefrom -1
30     func imul :: (system.int -> (system.int -> system.int)) alias "kernelfp::imul" codefrom -1
31     func isub :: (system.int -> (system.int -> system.int)) alias "kernelfp::isub" codefrom -1
32     func ord :: (system.char -> system.int) alias "kernelfp::ord" codefrom -1
33     func tofloat :: (system.int -> system.float) alias "kernelfp::tofloat" codefrom -1
34     func trunc :: (system.float -> system.int) alias "kernelfp::trunc" codefrom -1
35 
36 【Code Unit sysutils】
37     module sysutils::sysutils
38     import system
39     type pair T1 T2
40     ctor pair :: <T1> -> <T2> -> type pair T1 T2
41     func and :: (system.bool -> (system.bool -> system.bool)) codefrom 4
42     func if T1 :: (system.bool -> (<T1> -> (<T1> -> <T1>))) codefrom 9
43     func ineg :: (system.int -> system.int) codefrom 11
44     func not :: (system.bool -> system.bool) codefrom 2
45     func or :: (system.bool -> (system.bool -> system.bool)) codefrom 6
46     func pairop T1 T2 T3 :: ((<T1> -> (<T2> -> <T3>)) -> ((sysutils.pair <T1> <T2>-> <T3>)) codefrom 12
47     func xor :: (system.bool -> (system.bool -> system.bool)) codefrom 8
48 
49 【Code Unit main】
50     module main::main
51     import list
52     import system
53     import sysutils
54     func main :: (system.float -> (system.list system.char)) codefrom 0


    這個(gè)時(shí)候,只有模板函數(shù)if被實(shí)例化,所以我們可以在下面看到所有被實(shí)例化的函數(shù)(非模板函數(shù)一律實(shí)例化):
  1 【Assembly Unit system】
  2 
  3     [Information]
  4         Name             : system
  5         Function Count   : 1
  6         Slot Count       : 1
  7 
  8     [Function]
  9         Function Name    : flt
 10         Unique Name      : system::flt::$kernelfp::flt
 11         Owner Unit       : system
 12         Level            : 0
 13         External Command : kernelfp::flt
 14         Instance         : system::flt::$kernelfp::flt::(system.float -> (system.float -> system.bool))
 15 
 16     [Slot Item]
 17         Unique Name      : system::flt::$kernelfp::flt::(system.float -> (system.float -> system.bool))
 18         Parent Slot      : <NULL>
 19         Owner Function   : system::flt::$kernelfp::flt
 20 
 21 【Assembly Unit sysutils】
 22 
 23     [Information]
 24         Name             : sysutils
 25         Function Count   : 7
 26         Slot Count       : 7
 27 
 28     [Function]
 29         Function Name    : result
 30         Unique Name      : sysutils.5.1::result::#0
 31         Owner Unit       : sysutils
 32         Level            : 2
 33         External Command : 
 34         Instance         : <NULL>
 35 
 36     [Function]
 37         Function Name    : and
 38         Unique Name      : sysutils::and::#4
 39         Owner Unit       : sysutils
 40         Level            : 0
 41         External Command : 
 42         Instance         : sysutils::and::#4::(system.bool -> (system.bool -> system.bool))
 43 
 44     [Function]
 45         Function Name    : if
 46         Unique Name      : sysutils::if::#9
 47         Owner Unit       : sysutils
 48         Level            : 0
 49         External Command : 
 50         Instance         : <NULL>
 51 
 52     [Function]
 53         Function Name    : ineg
 54         Unique Name      : sysutils::ineg::#11
 55         Owner Unit       : sysutils
 56         Level            : 0
 57         External Command : 
 58         Instance         : sysutils::ineg::#11::(system.int -> system.int)
 59 
 60     [Function]
 61         Function Name    : not
 62         Unique Name      : sysutils::not::#2
 63         Owner Unit       : sysutils
 64         Level            : 0
 65         External Command : 
 66         Instance         : sysutils::not::#2::(system.bool -> system.bool)
 67 
 68     [Function]
 69         Function Name    : or
 70         Unique Name      : sysutils::or::#6
 71         Owner Unit       : sysutils
 72         Level            : 0
 73         External Command : 
 74         Instance         : sysutils::or::#6::(system.bool -> (system.bool -> system.bool))
 75 
 76     [Function]
 77         Function Name    : xor
 78         Unique Name      : sysutils::xor::#8
 79         Owner Unit       : sysutils
 80         Level            : 0
 81         External Command : 
 82         Instance         : sysutils::xor::#8::(system.bool -> (system.bool -> system.bool))
 83 
 84     [Slot Item]
 85         Unique Name      : sysutils::and::#4::(system.bool -> (system.bool -> system.bool))
 86         Parent Slot      : <NULL>
 87         Owner Function   : sysutils::and::#4
 88 
 89     [Slot Item]
 90         Unique Name      : sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))
 91         Parent Slot      : <NULL>
 92         Owner Function   : sysutils::if::#9
 93             0 = sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))/sysutils.5.1::result::#0::(system.list system.char)
 94 
 95     [Slot Item]
 96         Unique Name      : sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))/sysutils.5.1::result::#0::(system.list system.char)
 97         Parent Slot      : sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))
 98         Owner Function   : sysutils.5.1::result::#0
 99 
100     [Slot Item]
101         Unique Name      : sysutils::ineg::#11::(system.int -> system.int)
102         Parent Slot      : <NULL>
103         Owner Function   : sysutils::ineg::#11
104 
105     [Slot Item]
106         Unique Name      : sysutils::not::#2::(system.bool -> system.bool)
107         Parent Slot      : <NULL>
108         Owner Function   : sysutils::not::#2
109 
110     [Slot Item]
111         Unique Name      : sysutils::or::#6::(system.bool -> (system.bool -> system.bool))
112         Parent Slot      : <NULL>
113         Owner Function   : sysutils::or::#6
114 
115     [Slot Item]
116         Unique Name      : sysutils::xor::#8::(system.bool -> (system.bool -> system.bool))
117         Parent Slot      : <NULL>
118         Owner Function   : sysutils::xor::#8
119 
120 【Assembly Unit list】
121 
122     [Information]
123         Name             : list
124         Function Count   : 0
125         Slot Count       : 0
126 
127 【Assembly Unit main】
128 
129     [Information]
130         Name             : main
131         Function Count   : 1
132         Slot Count       : 1
133 
134     [Function]
135         Function Name    : main
136         Unique Name      : main::main::#0
137         Owner Unit       : main
138         Level            : 0
139         External Command : 
140         Instance         : main::main::#0::(system.float -> (system.list system.char))
141 
142     [Slot Item]
143         Unique Name      : main::main::#0::(system.float -> (system.list system.char))
144         Parent Slot      : <NULL>
145         Owner Function   : main::main::#0
146             0 = sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))
147             1 = system::flt::$kernelfp::flt::(system.float -> (system.float -> system.bool))

    明天要修bug了。
posted on 2008-11-01 07:05 陳梓瀚(vczh) 閱讀(1413) 評論(0)  編輯 收藏 引用 所屬分類: 腳本技術(shù)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区三区在线| 在线亚洲美日韩| 老司机午夜免费精品视频| 久久国产精品黑丝| 久久成人综合网| 久久影音先锋| 欧美精品久久久久久久| 欧美理论在线| 国产精品日韩久久久久| 国产嫩草一区二区三区在线观看 | 免费成人激情视频| 欧美成人免费播放| 欧美亚洲第一区| 国产日韩在线看| 亚洲经典一区| 亚洲综合三区| 久久漫画官网| 日韩视频三区| 久久国产福利| 欧美日韩国产综合新一区| 国产精品久久久久久久电影| 国产亚洲精品aa| 夜夜嗨av一区二区三区四区| 欧美在线播放一区| 亚洲国内欧美| 亚洲字幕一区二区| 欧美成黄导航| 极品日韩av| 亚洲小说春色综合另类电影| 久久久一二三| 亚洲视频视频在线| 久久这里只有| 国产欧美精品日韩区二区麻豆天美 | 午夜精品视频在线| 牛牛国产精品| 国产一区二区你懂的| 亚洲靠逼com| 久久一区欧美| 午夜精品福利电影| 欧美日韩亚洲高清一区二区| 亚洲第一精品影视| 久久成人精品电影| 日韩亚洲精品电影| 欧美国产第二页| 一区在线观看| 久久精品国产免费观看| 宅男精品视频| 欧美日韩一二三四五区| 亚洲国产婷婷| 麻豆久久精品| 久久天天躁狠狠躁夜夜av| 国产亚洲欧美一区二区三区| 亚洲视频免费在线观看| 亚洲国产日韩在线| 欧美电影免费观看高清完整版| 一区二区视频欧美| 久久夜色精品国产欧美乱极品| 亚洲欧美日本另类| 国产欧美日韩不卡| 国产精品日韩专区| 国产日韩精品一区二区三区在线| 国内精品久久久久国产盗摄免费观看完整版| 亚洲毛片在线看| 欧美xxx成人| 欧美资源在线观看| 国产亚洲精品v| 欧美一区深夜视频| 亚洲制服av| 国产精品丝袜白浆摸在线| 亚洲五月六月| 在线亚洲高清视频| 国产精品丝袜白浆摸在线| 欧美一区二区三区四区在线观看地址| 在线综合亚洲| 国产精品午夜久久| 看欧美日韩国产| 免费观看亚洲视频大全| 亚洲日本成人| 亚洲精品日韩在线| 国产精品成人一区二区| 午夜精品视频一区| 欧美影院精品一区| 国内精品美女在线观看| 欧美大尺度在线观看| 欧美一区二区三区免费在线看| 黄页网站一区| 欧美freesex交免费视频| 久久综合色88| 一区电影在线观看| 亚洲肉体裸体xxxx137| 欧美日韩视频免费播放| 亚洲欧美激情精品一区二区| 亚洲精品日韩综合观看成人91| 国产精品亚洲综合久久| 久久夜色精品亚洲噜噜国产mv | 国产丝袜美腿一区二区三区| 校园激情久久| 久久精品主播| 一区二区日韩免费看| 亚洲天堂激情| 在线播放中文字幕一区| 日韩性生活视频| 国内精品写真在线观看| 91久久精品国产91久久| 国产精品中文字幕欧美| 亚洲国语精品自产拍在线观看| 国产精品久久久久9999高清| 久久久久久久性| 欧美成人一区二区| 久久久亚洲高清| 国产精品av一区二区| 久久精品一区二区三区四区 | 久久综合给合久久狠狠色| 欧美a级一区二区| 午夜在线观看欧美| 欧美va天堂在线| 久久久久久久综合| 欧美高清免费| 久久伊人精品天天| 国产精品日韩二区| 亚洲精品美女91| 狠狠色香婷婷久久亚洲精品| 99ri日韩精品视频| 亚洲精品一区二区在线观看| 午夜欧美精品久久久久久久| 亚洲动漫精品| 久久免费的精品国产v∧| 亚洲午夜精品久久久久久浪潮| 性做久久久久久免费观看欧美 | 久色婷婷小香蕉久久| 国产精品久久久久影院色老大| 欧美国产日产韩国视频| 国产一区二区三区av电影| 在线视频欧美精品| 亚洲女性喷水在线观看一区| 欧美视频一区二区三区在线观看| 美国十次成人| 国产精品久久久99| 亚洲永久精品国产| 午夜影院日韩| 国产精品毛片在线| 亚洲一区在线免费观看| 亚洲一二三区在线观看| 欧美日本亚洲视频| 99视频一区二区三区| 亚洲二区免费| 黑丝一区二区三区| 久久精品毛片| 欧美成人一区二区| 狠狠色丁香婷婷综合久久片| 中文精品一区二区三区| 亚洲伊人久久综合| 国产精品三区www17con| 亚洲夜间福利| 欧美一二三视频| 韩国成人福利片在线播放| 久久综合999| 亚洲片区在线| 亚洲欧美日韩一区在线| 国产伦精品一区二区三区视频黑人| 亚洲综合色丁香婷婷六月图片| 性色av一区二区三区在线观看| 国产精品hd| 欧美制服第一页| 牛牛影视久久网| 一区二区三区精品久久久| 欧美日韩一区二区三| 亚洲一区图片| 欧美ed2k| 亚洲影音一区| 国内精品久久久久久影视8| 美腿丝袜亚洲色图| 亚洲午夜伦理| 欧美电影在线观看| 亚洲在线中文字幕| 在线高清一区| 欧美日韩在线不卡| 久久精品欧美日韩精品| 99国产精品久久久| 久久综合中文色婷婷| 在线亚洲美日韩| 亚洲成人在线网站| 国产精品每日更新| 欧美激情综合| 久久久噜噜噜久久狠狠50岁| 一区二区精品国产| 欧美国产日韩a欧美在线观看| 欧美一区二区免费观在线| 亚洲国产婷婷| 国内不卡一区二区三区| 欧美日韩一区二区三区在线| 久久久久9999亚洲精品| 亚洲私人影院| 亚洲最新在线| 亚洲国产日韩一区| 欧美激情视频在线播放 | 亚洲国产视频直播| 国产一区激情| 国产欧美日韩在线观看| 欧美视频在线一区二区三区|