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

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

    Kernel FP的Runtime Assembly是沒有模板信息的,函數由簽名、表達式引用以及函數引用構成。函數引用表記錄了函數在一種類型的實例化下實際調用的其他函數的實例。譬如函數參數在類型A和類型B下函數def function param=print param,print有可能因為param的類型的變化而變化。因此這需要記錄在一個函數的實例里。

    在寫完代碼之后我粗略跑了一下,使用之前用來做類型推導的代碼,以及寫了一個main函數:
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'))),但是操作符作為一種函數的語法糖尚未引入,非完整模板函數也尚未引入,所以操作符就沒有實現了。此處flt是小于的意思,main函數的作用就是判斷score是否過了60并打出fail和pass作為結果。

    編譯器通過類型推導,得到函數的類型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


    這個時候,只有模板函數if被實例化,所以我們可以在下面看到所有被實例化的函數(非模板函數一律實例化):
  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)  編輯 收藏 引用 所屬分類: 腳本技術
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲人成在线观看| 中文国产一区| 久久一区二区三区av| 久久久久免费视频| 久久婷婷国产综合尤物精品| 久久久久久久97| 免费黄网站欧美| 欧美激情影院| 亚洲七七久久综合桃花剧情介绍| 亚洲精品看片| 亚洲综合欧美日韩| 久久国产66| 美国成人直播| 欧美日韩免费一区二区三区| 欧美性一区二区| 国产亚洲欧美一区在线观看| 狠狠色狠色综合曰曰| 在线欧美一区| 99精品视频免费| 亚洲制服丝袜在线| 欧美在线视频免费播放| 久久米奇亚洲| 亚洲国产精品久久久久秋霞影院 | 欧美日韩在线一区二区| 欧美午夜精品久久久久久孕妇 | 欧美午夜美女看片| 国产欧美精品一区| **性色生活片久久毛片| 日韩亚洲欧美在线观看| 亚洲一区亚洲| 久久视频在线视频| 亚洲欧洲在线免费| 亚洲一区二区三区久久| 久久精品视频在线| 欧美日韩精品久久久| 国产精品综合av一区二区国产馆| 狠狠狠色丁香婷婷综合激情| 亚洲免费观看| 久久精品色图| 亚洲另类自拍| 久久精品99无色码中文字幕| 欧美国产1区2区| 国产精品午夜在线观看| 136国产福利精品导航网址| 在线视频欧美精品| 久久免费精品日本久久中文字幕| 亚洲丶国产丶欧美一区二区三区 | 一本色道久久综合| 久久深夜福利| 一本久久综合亚洲鲁鲁五月天| 欧美一区二区三区久久精品| 欧美连裤袜在线视频| 国产日本欧美在线观看| 日韩一区二区精品视频| 久久久精品一区| 中日韩美女免费视频网站在线观看| 久久超碰97中文字幕| 欧美日在线观看| 亚洲国产高清aⅴ视频| 亚洲男人第一网站| 亚洲国产视频a| 久久久久久有精品国产| 国产精品v日韩精品| 最新国产成人av网站网址麻豆 | 欧美亚洲成人精品| 亚洲国产精品久久久久| 欧美一区二区私人影院日本| 亚洲精品你懂的| 老牛嫩草一区二区三区日本| 国产欧美日韩一区| 亚洲天堂av综合网| 亚洲国产欧美精品| 久久综合伊人| 精品9999| 久久伊人一区二区| 午夜精品理论片| 国产精品视频精品视频| 中文日韩电影网站| 最近中文字幕mv在线一区二区三区四区| 欧美一区二区在线播放| 国产精品视频免费一区| 中文高清一区| 日韩视频在线一区二区| 欧美激情二区三区| 亚洲国产日韩综合一区| 欧美va日韩va| 久久久久久久综合色一本| 国产日韩欧美亚洲| 欧美一区亚洲二区| 亚洲嫩草精品久久| 国产精品毛片va一区二区三区| 一区二区三区av| 亚洲美女在线视频| 欧美精品午夜| 艳女tv在线观看国产一区| 亚洲国产成人久久综合| 欧美电影免费观看大全| 亚洲精选久久| 日韩视频中文字幕| 欧美视频在线观看| 亚洲女同性videos| 亚洲免费一在线| 国产丝袜美腿一区二区三区| 久久av老司机精品网站导航| 欧美一区二区精品| 国产综合视频在线观看| 久久男人av资源网站| 久久精品卡一| 亚洲国产成人av在线| 亚洲第一久久影院| 欧美日韩成人一区二区三区| 9国产精品视频| 亚洲视频第一页| 国产日韩欧美中文| 欧美+日本+国产+在线a∨观看| 久久尤物视频| 夜夜嗨av色综合久久久综合网| 亚洲精品乱码久久久久久蜜桃91 | 欧美高清在线观看| 欧美日韩mp4| 亚洲欧美国产视频| 欧美有码在线视频| 在线观看91精品国产麻豆| 亚洲黄色av| 国产精品成人在线观看| 久久精品二区亚洲w码| 久久久精品国产99久久精品芒果| 91久久国产综合久久91精品网站| 91久久一区二区| 国产精品美女久久久久久久| 久久成人18免费观看| 久久久久综合一区二区三区| 亚洲欧洲日韩在线| 一区二区三区四区五区在线| 国产一区二区三区久久久久久久久| 另类av一区二区| 欧美日本免费| 欧美制服丝袜| 欧美激情欧美狂野欧美精品| 亚洲欧美日韩精品综合在线观看| 久久九九精品| 在线一区二区日韩| 欧美一区二区视频网站| 99国产精品视频免费观看一公开| 在线视频一区二区| 在线精品亚洲一区二区| 一本一道久久综合狠狠老精东影业| 国产日本欧美一区二区| 亚洲国产天堂久久综合| 国产午夜久久| 亚洲精品久久久久中文字幕欢迎你 | 欧美一区二区网站| aⅴ色国产欧美| 久久久7777| 亚洲一区二区在线免费观看视频| 久久久av网站| 午夜性色一区二区三区免费视频| 久久夜色精品亚洲噜噜国产mv| 亚洲综合国产精品| 欧美国产视频在线| 久久久国产午夜精品| 欧美日本不卡高清| 欧美成人精品一区| 国产人妖伪娘一区91| 亚洲精品日产精品乱码不卡| 精品电影一区| 午夜精品国产更新| 亚洲一区黄色| 欧美美女福利视频| 欧美aaaaaaaa牛牛影院| 国产毛片精品视频| 99这里只有精品| 亚洲乱码久久| 久久久久国色av免费看影院| 性欧美18~19sex高清播放| 欧美激情一区二区| 欧美ab在线视频| 国语自产精品视频在线看抢先版结局| 一区二区精品在线| 一区二区三区四区国产| 免费成人美女女| 免费成人在线视频网站| 国产午夜精品理论片a级探花| 一本大道久久a久久精二百| 亚洲精品久久久久久久久久久久| 久久久噜噜噜久久久| 久久成人免费日本黄色| 国产精品久久久久久久久久久久久| 亚洲啪啪91| 亚洲精品日韩在线观看| 久久影视三级福利片| 久久亚洲风情| 国产亚洲一本大道中文在线| 亚洲一区欧美一区| 亚洲欧美美女| 国产精品久久久久aaaa九色| 一区二区三区久久| 亚洲主播在线观看| 欧美视频一区二区| 一区二区三区视频在线|