Mercurial > hg > Applications > Tokio
comparison read.me @ 0:cfb7c6b24319
Initial revision
author | kono |
---|---|
date | Thu, 30 Aug 2007 14:57:44 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:cfb7c6b24319 |
---|---|
1 Tokio / Prolog Compiler | |
2 | |
3 Fri Aug 5 19:35:55 JST 2005 | |
4 Shinji KONO | |
5 kono@ie.u-ryukyu.ac.jp | |
6 University of the Ryukyus | |
7 | |
8 1. Change -D flag in Makefile | |
9 | |
10 Supporting Prologs PROLOG_TYPE PROLOG | |
11 SICStus SICSTUS sicstus | |
12 Quintus QUINTUS quintus | |
13 SWI-Prolog SWIPROLOG swipl | |
14 | |
15 2. File List | |
16 | |
17 call prolog bootup file | |
18 cp.pl file for compatiblities | |
19 cp.pl.c file for compatiblities (no longer used) | |
20 tc.pl tokio clause compiler | |
21 td.pl debugger | |
22 te.pl expression basics | |
23 tf.pl predicates compiler | |
24 tg.pl one line compiler | |
25 th.pl head unification | |
26 tm.pl basic macros | |
27 to.pl tokio compiler main routines | |
28 tp.pl macro expansion | |
29 tr.pl runtime support | |
30 ts.pl system definition & operator | |
31 tu.pl temporal logic unification | |
32 xf.pl system-predicates list | |
33 tokio.pl module definition | |
34 call iall lall mall load file | |
35 | |
36 3. How to run | |
37 | |
38 In SICStus, use tokio module. | |
39 | |
40 % sicstus | |
41 SICStus 3.12.1 (powerpc-darwin-7.8.0): Mon Apr 18 20:00:24 CEST 2005 | |
42 Licensed to ie.u-ryukyu.ac.jp | |
43 | ?- use_module(tokio). | |
44 % compiling /Users/kono/ITL/Tokio/tokio.pl... | |
45 % compiled /Users/kono/ITL/Tokio/tp.pl in module tokio, 60 msec 19832 bytes | |
46 END | |
47 0.0 sec. | |
48 % compiled /Users/kono/ITL/Tokio/tokio.pl in module tokio, 350 msec 153404 bytes | |
49 yes | |
50 | ?- com(example). | |
51 Compiling: t0/0 | |
52 Compiling: test/0 | |
53 END | |
54 0.10999999999999999 sec. | |
55 % compiling /Users/kono/ITL/Tokio/#temp.tokio... | |
56 * [E] - singleton variables in (tokio):t1/2 | |
57 * Approximate lines: 873-877, file: '/Users/kono/ITL/Tokio/#temp.tokio' | |
58 % compiled /Users/kono/ITL/Tokio/#temp.tokio in module tokio, 210 msec 57528 bytes | |
59 yes | |
60 | ?- tokio. | |
61 | |
62 tokio: test. | |
63 | |
64 t0:1 | |
65 t1:1 | |
66 ... | |
67 t90:[100] | |
68 t91:[] | |
69 91 clock and 0.010000000000000009 sec. | |
70 | |
71 tokio: ^D | |
72 yes | |
73 | ?- ^D | |
74 | |
75 In SWI Prolog, use tokio_swi.pl script. | |
76 | |
77 % swipl | |
78 Welcome to SWI-Prolog (Multi-threaded, Version 5.4.7) | |
79 Copyright (c) 1990-2003 University of Amsterdam. | |
80 SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, | |
81 and you are welcome to redistribute it under certain conditions. | |
82 Please visit http://www.swi-prolog.org for details. | |
83 | |
84 For help, use ?- help(Topic). or ?- apropos(Word). | |
85 | |
86 ?- [tokio_swi]. | |
87 % ts compiled into tokio 0.00 sec, 1,984 bytes | |
88 ... | |
89 % tp compiled into tokio 0.00 sec, 18,668 bytes | |
90 END | |
91 0 sec. | |
92 % tokio compiled into tokio 0.06 sec, 142,720 bytes | |
93 % ts compiled 0.00 sec, 840 bytes | |
94 % tokio_swi compiled 0.06 sec, 143,952 bytes | |
95 | |
96 Yes | |
97 tokio: ?- com(example). | |
98 Compiling: t0/0 | |
99 Compiling: t1/0 | |
100 Compiling: test/0 | |
101 END | |
102 0.14 sec. | |
103 Warning: (/Users/kono/ITL/Tokio/#temp.tokio:18): | |
104 Singleton variables: [E] | |
105 ... | |
106 Warning: (/Users/kono/ITL/Tokio/#temp.tokio:873): | |
107 Singleton variables: [E] | |
108 % #temp.tokio compiled into tokio 0.02 sec, 68,272 bytes | |
109 | |
110 Yes | |
111 tokio: ?- tokio. | |
112 | |
113 tokio: test. | |
114 | |
115 t0:1 | |
116 t1:1 | |
117 t2:1 | |
118 t90:[100] | |
119 t91:[] | |
120 91 clock and 0.02 sec. | |
121 | |
122 tokio: | |
123 | |
124 Yes | |
125 tokio: ?- | |
126 % halt | |
127 | |
128 You can run each small test in example file, | |
129 ?- tokio t0. | |
130 or in tokio top level, | |
131 ?- tokio. | |
132 tokio: t0. | |
133 | |
134 To try more examles, | |
135 | |
136 % cd Examples/6502 | |
137 % sicstus | |
138 ?-use_module('../../Tokio/tokiko'). | |
139 ?-com(mc6502). | |
140 ?-com(run). | |
141 ?-tokio run(a). | |
142 | |
143 Some of them may not work, such as toy. | |
144 | |
145 3. Notice | |
146 | |
147 If you are going to create very large program in Tokio, | |
148 use com/2 instead of com/1. It greatly reduces compile time and you | |
149 can use Prolog output for debugging purpose. | |
150 | |
151 Converting Tokio Program into Prolog is quite fast. But | |
152 compiling the output by Prolog compiler takes long time (in some prolog). | |
153 Execution speed of Tokio program mainly depends on runtime library, so | |
154 Tokio code can run reasonably fast even if generated code is not compiled. | |
155 | |
156 "com(file)" command translates and compiles Tokio program, but | |
157 "com(file,output)" translates and consults Tokio program. | |
158 In this reason, it is better to use com(file,output) than com(file) to | |
159 speed up Tokio to Prolog translation. | |
160 | |
161 When you exit Prolog top level, use ``tokio'' to reenter Tokio top level. | |
162 | |
163 In SICStus/Quintus, com/2 automatically try to add '.tokio' postfix, | |
164 but SWI-Prolog does not. You need type com('mc6502.tokio') in SWI-Prolog. | |
165 | |
166 SICStus/Quintus complains, | |
167 * nofileerrors/0 - NOT redefined | |
168 Please ignore. | |
169 | |
170 4. Module | |
171 | |
172 ?- use_module(tokio). | |
173 ?- com(example). | |
174 ?- tokio test. | |
175 | |
176 will work on SICStus Prolog. | |
177 | |
178 In SWI-Prolog, | |
179 | |
180 ?- use_module(tokio). | |
181 ?- [ts]. | |
182 ?- module(tokio). | |
183 ?- com(example). | |
184 ?- tokio test. | |
185 | |
186 Yes, we should have seprate space for compiled tokio clauses. | |
187 | |
188 5. Sample Run | |
189 | |
190 Here is an example script.... | |
191 | |
192 | |
193 Script started on Fri Aug 5 19:39:20 2005 | |
194 % swipl | |
195 | |
196 Welcome to SWI-Prolog (Multi-threaded, Version 5.4.7) | |
197 Copyright (c) 1990-2003 University of Amsterdam. | |
198 SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, | |
199 and you are welcome to redistribute it under certain conditions. | |
200 Please visit http://www.swi-prolog.org for details. | |
201 | |
202 For help, use ?- help(Topic). or ?- apropos(Word). | |
203 | |
204 ?- [call]. | |
205 % ts compiled 0.00 sec, 1,880 bytes | |
206 % to compiled 0.01 sec, 16,656 bytes | |
207 ... | |
208 % tp compiled 0.01 sec, 18,156 bytes | |
209 END | |
210 0 sec. | |
211 | |
212 Tokio to prolog compiler $Revision$ $Date$ | |
213 try ?- tokio_help. | |
214 | |
215 % call compiled 0.08 sec, 257,608 bytes | |
216 | |
217 Yes | |
218 ?- com(example) | |
219 | |
220 ?- com | |
221 ?- com(example). | |
222 Compiling: t0/0 | |
223 Compiling: t1/0 | |
224 .... | |
225 Compiling: append/3 | |
226 Compiling: test/0 | |
227 END | |
228 0.14 sec. | |
229 Warning: (/Users/kono/ITL/Tokio/#temp.tokio:18): | |
230 Singleton variables: [E] | |
231 ... | |
232 Warning: (/Users/kono/ITL/Tokio/#temp.tokio:873): | |
233 Singleton variables: [E] | |
234 % #temp.tokio compiled 0.02 sec, 68,272 bytes | |
235 | |
236 Yes | |
237 ?- tokio test. | |
238 | |
239 t0:1 | |
240 t1:1 | |
241 t2:1 | |
242 t3:1 | |
243 t4:1 | |
244 ... | |
245 t89:[20] | |
246 t90:[100] | |
247 t91:[] | |
248 91 clock and 0.02 sec. | |
249 | |
250 Yes | |
251 ?- tokiodebug. | |
252 Tokio debug mode switched on. | |
253 All computation will be traced. | |
254 ERROR: Undefined procedure: ttynl/0 | |
255 ?- tokio t0. | |
256 | |
257 Tokio Trace t0:h. | |
258 help/h/? print this | |
259 next/n skip to next clock | |
260 dump/d dump current static value | |
261 all all history of static value | |
262 save(file) save current state | |
263 skip(n)/s(n)/+-Number goto +-Number clock | |
264 abort/a abort tokio execution | |
265 break/b break to prolog | |
266 value(Name)/*Name examine static value | |
267 queue/q show current process queue | |
268 trace/t enter prolog tracer | |
269 | |
270 Tokio Trace t0:next. | |
271 | |
272 t0:1 | |
273 Tokio Trace t1:next. | |
274 | |
275 t1:1 | |
276 Tokio Trace t2:q. | |
277 | |
278 :-abolish(restart, 1), recorda(time, 2, _G415). | |
279 restart:-r_solve_t((r_0t00(['$t'(B, C, D, $(5, 2, A))|E], ['$t'(true, true, true, $(5, 2, A))|F]), true), 5, 2, ['$t'(B, C, D, $(5, 2, A))|E], ['$t'(true, true, true, $(5, 2, A))|F]). | |
280 | |
281 Tokio Trace t2:skip(3). | |
282 | |
283 t2:1 | |
284 t3:1 | |
285 t4:1 | |
286 | |
287 | |
288 Script done on Fri Aug 5 19:41:30 2005 | |
289 |