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

隨筆-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的類型的變化而變化。因此這需要記錄在一個函數(shù)的實(shí)例里。

    在寫完代碼之后我粗略跑了一下,使用之前用來做類型推導(dǎo)的代碼,以及寫了一個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


    這個時候,只有模板函數(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) 閱讀(1418) 評論(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>
            亚洲欧美精品suv| 亚洲精品乱码久久久久久| 欧美伦理91i| 欧美成在线观看| 国产欧美精品一区二区三区介绍| 亚洲精品系列| 亚洲第一页在线| 欧美专区一区二区三区| 午夜亚洲视频| 国产精品久久一级| 在线综合亚洲| 亚洲一区成人| 欧美日韩午夜剧场| 亚洲日本中文| 一本色道久久综合亚洲精品婷婷| 另类成人小视频在线| 鲁鲁狠狠狠7777一区二区| 国产日韩高清一区二区三区在线| 亚洲一本视频| 欧美在线电影| 韩国免费一区| 久久欧美中文字幕| 欧美成人国产| 亚洲经典三级| 欧美激情综合在线| 99re视频这里只有精品| 亚洲图片在线| 国产欧美日韩一区二区三区在线观看 | 西西裸体人体做爰大胆久久久| 亚洲午夜羞羞片| 国产精品va在线| 亚洲欧美日韩精品在线| 午夜激情综合网| 国产精品视频一区二区高潮| 亚洲午夜国产成人av电影男同| 欧美一站二站| 狠狠干成人综合网| 久久男人资源视频| 91久久精品美女高潮| 一本色道久久综合精品竹菊| 欧美日韩一级黄| 亚洲在线免费视频| 免费不卡视频| 一区二区电影免费观看| 国产精品一区二区a| 久久人人97超碰人人澡爱香蕉| 亚洲高清不卡| 午夜精品999| 在线成人激情视频| 欧美精品二区| 亚洲欧美日韩国产另类专区| 久久久亚洲高清| 99视频精品全部免费在线| 国产精品看片你懂得| 久久米奇亚洲| 亚洲网站在线| 欧美激情第1页| 午夜国产精品影院在线观看 | 一区二区三区四区蜜桃| 国产人成精品一区二区三| 免费在线视频一区| 亚洲性av在线| 亚洲国产综合91精品麻豆| 亚洲欧美日韩国产一区| 在线精品视频免费观看| 欧美人与性动交cc0o| 久久国产乱子精品免费女| 最新国产精品拍自在线播放| 欧美一区激情| 中文国产亚洲喷潮| 一区在线影院| 国产精品日韩在线一区| 欧美mv日韩mv亚洲| 欧美亚洲在线观看| 一区二区三区三区在线| 久久阴道视频| 亚洲与欧洲av电影| 亚洲精品黄色| 精品1区2区3区4区| 国产精品美女在线| 欧美美女福利视频| 麻豆精品视频在线| 欧美专区福利在线| 亚洲欧美日韩国产综合精品二区| 亚洲国内精品| 亚洲国产成人在线视频| 另类激情亚洲| 久久精品女人的天堂av| 亚洲一区二区三区免费视频 | 久久久91精品国产| 亚洲欧美日韩网| 亚洲视屏一区| 999在线观看精品免费不卡网站| 精品999网站| 国产自产高清不卡| 国产日韩欧美黄色| 国产九九精品视频| 国产欧美精品一区二区三区介绍 | 日韩小视频在线观看| 亚洲国产精品黑人久久久| 蜜臀av国产精品久久久久| 久久九九全国免费精品观看| 久久精品国产久精国产一老狼| 午夜日韩在线| 欧美在线一二三| 欧美在线观看www| 欧美专区在线观看一区| 欧美在线欧美在线| 久久精品中文字幕免费mv| 欧美在线视频观看免费网站| 欧美一级二区| 久久综合狠狠| 欧美国产视频一区二区| 亚洲国产精品悠悠久久琪琪| 亚洲国产美女精品久久久久∴| 亚洲国产精品久久久久秋霞影院 | 亚洲精品美女| 99视频在线观看一区三区| 日韩午夜精品视频| 一区二区三区国产精品| 亚洲男女毛片无遮挡| 久久av一区二区三区| 久久久噜噜噜| 欧美激情视频给我| 亚洲毛片在线观看| 亚洲免费在线精品一区| 久久精品99久久香蕉国产色戒| 久久婷婷麻豆| 欧美日韩精品在线| 国产精品午夜春色av| 在线观看91精品国产麻豆| 亚洲欧洲免费视频| 亚洲一区在线视频| 麻豆成人在线播放| 亚洲精品在线免费| 欧美一区二区三区久久精品| 能在线观看的日韩av| 国产精品美女视频网站| 激情综合在线| 中文欧美日韩| 榴莲视频成人在线观看| 亚洲精品少妇30p| 久久riav二区三区| 欧美日韩国产色站一区二区三区| 国产美女精品一区二区三区| 亚洲韩国精品一区| 亚洲欧美日韩天堂| 欧美激情一区在线| 亚洲欧美精品一区| 欧美激情精品久久久久久大尺度| 国产精品日韩欧美一区二区| 亚洲黄网站黄| 久久国产欧美精品| 亚洲精品国产精品国自产观看浪潮| 亚洲欧美日韩天堂一区二区| 欧美成人精品一区| 国产色产综合色产在线视频| 日韩视频一区二区在线观看 | 亚洲三级电影全部在线观看高清| 亚洲欧美综合精品久久成人| 欧美国产精品| 欧美怡红院视频一区二区三区| 欧美片在线观看| 亚洲国产成人av好男人在线观看| 欧美一级片一区| 一二三区精品| 欧美国产日韩一二三区| 激情欧美一区二区三区| 午夜精品久久久久久99热| 91久久精品美女高潮| 蜜桃精品久久久久久久免费影院| 国产视频精品xxxx| 亚洲欧美精品在线| 日韩视频免费观看高清完整版| 开元免费观看欧美电视剧网站| 国产日韩一区二区三区在线| 亚洲一区二区四区| 亚洲另类自拍| 欧美精品在线一区| 亚洲国产一二三| 欧美va亚洲va香蕉在线| 久久婷婷国产综合精品青草| 韩日成人在线| 久久精品一区四区| 久久av老司机精品网站导航 | 国产精品日韩一区二区| 亚洲一区制服诱惑| 在线亚洲一区| 欧美午夜剧场| 亚洲一区二区高清| 一本色道久久加勒比88综合| 欧美久久久久久久久久| 一区二区三区日韩欧美| 亚洲精品综合在线| 欧美视频网站| 羞羞色国产精品| 久久精品国产第一区二区三区最新章节| 国产欧美丝祙| 久久亚洲精品欧美| 久久综合电影一区|