Size: px
Start display at page:

Download ""

Transcription

1

2

3 1 NScripter 1 [ NScripter ] NScripter NScripter 2 nathki bugyo

4 2 NScripter NScripter BASIC ( ) NScLisper NScLisper NScripter Lisp NScripter Lisp S GC(Garbage Collection) NScripter NScripter Lisp NScripter NScripter Lisp 3 NScripter Lisp Lisp (?) 3 ( )

5 3 1 NScripter NScripter 1.1 NScripter %n n 0 n 4095 n %0 %123 32bit 3 mov 1 2 3

6 4 1 NScripter mov %0, 2500 mov %1, % %0 (=2500) NScripter C %%m m 0 m 4095 %m 0 %m 4095 %m m % mov %0, 10 mov %%0, %0(=10) NScripter 1.4 $n n 0 n 4095 n

7 $0 $123 mov mov $0, "hoge" mov $1, $0 mov %0, 10 mov $%0, "foo" 1.5 numalias var_name, 0 %0 $0 %var name $var name mov %0, var name 1.6 NScripter

8 6 1 NScripter mov %0, 1 goto *foo mov %0, 2 *foo % mov %0, 1 gosub *foo mov %0, 3 goto *baa *foo mov %0, 2 return *baa %0 3 gosub return 1.7

9 *increase inc %arg0 mov %ret, %arg0 return ;1 1 ; *addition add %arg0, %arg1 mov %ret, %arg0 return ;1 2 ;

10 8 2 Lisp NScripter 4096 NScLisper Lisp Lisp Lisp (nil #t #f )

11 2.3. Lisp Lisp Lisp (Lisp ) 2900 GC ( )

12 Push Push *push if %sp >= STACK_OVER /* */ mov %%sp, %arg0 inc %sp return sp STACK OVER (4001) Push arg0 NScripter ; /**/ /**/ Push arg0 push mov %arg0, 100 gosub *push ; Pop Pop

13 *pop if %sp <= STACK /* */ dec %sp mov %ret, %%sp return STACK (3000) Pop ret Push Pop ret Pop gosub *pop /* ret */ 3.3

14 12 3 ;; arg0 *factorial ;" " 0 1 if %arg0 == 0 mov %ret, 1 : return gosub *push ; " " dec %arg0 ;" " 1 arg0 gosub *factorial ; mov %arg0, %ret ; arg0 gosub *pop ; " " ret mul %ret, %arg0 ;ret arg0 return ;ret mov %arg0, 10 ; 10 gosub *factorial ; factorial ;; %ret 10! = NScripter NScripter 2 1 NScripter 2 NScLisper Lisp

15 13 4 Lisp NScLisper (=32bit) (Lisp ) 1bit GC 2 6bit ( ) 1 4.1: 4.1 1bit GC 2 6bit 7 19bit CAR ( ) 19 32bit CDR ( ) 1 numalias

16 14 4 Lisp 4.2 1bit GC 2 6bit 7 32bit 4.3 1bit GC 2 6bit bit 2 ( )

17 15 5 getter setter ( ) 5.1 getter GC / / and NScripter

18 16 5 getter setter ;; arg0 *get_gc mov %ret, %%arg0 mod %ret, 2 return *get_tag mov %tmp, %%arg0 mod %tmp, 64 mov %ret, %tmp div %ret, 2 return *get_data mov %ret, %%arg0 div %ret, 64 return ( ) arg0 5.2 setter GC / / or

19 ;; ;;arg0 ;;arg1 *set_gc mov %tmp, %%arg0 div %tmp, 2 mul %tmp, 2 mov %%arg0, %tmp + %arg1 return *set_tag mov %tmp, %%arg0 mov %tmp1, %tmp div %tmp1, 64 mul %tmp1, 64 ;DATA mod %tmp, 2 ;GC mov %tmp2, %arg1 mul %tmp2, 2 ;TAG mov %%arg0, %tmp + %tmp1 + %tmp2 return *set_data mov %tmp, %%arg0 mod %tmp, 64 mov %tmp1, %arg1 mul %tmp1, 64 mov %%arg0, %tmp + %tmp1 return getter arg0 arg

20 18 5 getter setter ( ) GC GC ( )

21 19 6 NScLisper Garbage Collection 2 Lisp Mark and Sweep GC (MEM=100) 2. MEM(100) MEM END(2999) TAG FREE ( ) 1 (+ 1 1) 2 2 Lisp

22 20 6 mov %free_lst, MEM for %i=mem to MEM_END mov %arg0, %i mov %arg1, TAG_FREE gosub *set_tag mov %arg1, %i + 1 gosub *set_data next (= ) :

23 6.3. Garbage Collection 21 *next_cell ;; GC if %free_lst == MEM_OVER gosub *gc if %free_lst == MEM_OVER /* */ mov %arg0, %free_lst gosub *get_data mov %tmp, %free_lst mov %free_lst, %ret mov %ret, %tmp return MEM OVER(3001) GC 6.3 Garbage Collection Garbage Collection ( ) MEM OVER

24 *gc_mark for %i = STACK to %sp-1 ; if %%i < MEM goto *gc_mark_l1 if %%i > MEM_END goto *gc_mark_l1 mov %arg0, %%i ; 1 ( ) gosub *gc_mark_lobject *gc_mark_l1 next return MEM OVER(3001) 3 ( ) 4 GC

25 6.3. Garbage Collection : *gc_sweep mov %free_lst, MEM_OVER ; for %i=mem to MEM_END mov %arg0, %i gosub *get_gc if %ret == 0 mov %free_lst, %i : break mov %arg1, 0 gosub *set_gc next if %free_lst == MEM_OVER return ; mov %gc_tmp, %free_lst ; for %i=%i+1 to MEM_END mov %arg0, %i gosub *get_gc ; if %ret == 0 mov %arg0, %gc_tmp : mov %arg1, %i if %ret == 0 gosub *reuse_cell : mov %gc_tmp, %i ; 0 mov %arg0, %i mov %arg1, 0 gosub *set_gc next mov %arg0, %gc_tmp mov %arg1, MEM_OVER ; gosub *reuse_cell return *reuse_cell gosub *set_data mov %arg1, TAG_FREE gosub *set_tag return

26 24 Lisp Lisp 07/01/11 NScripter Lisp 07/01/16 07/01/18 Lisp 1 07/01/20 Festival2 07/02/02 07/02/03 07/02/04 zick 07/03/02 zick 07/03/14 zick 07/03/29 07/03/31 / 07/04/01 07/04/07 CD 07/04/08 Festival2

27 25 NScLisper Yes No CLANNAD Yes 0 1 Yes 2 4 Yes 5 6

28 26 Festival2 Lisp Lisp Lisp Lisp ( ) Lisp Lisp zick

29 27 [ NScripter ] NScripter

30

31

32

橡Taro9-生徒の活動.PDF

橡Taro9-生徒の活動.PDF 3 1 4 1 20 30 2 2 3-1- 1 2-2- -3- 18 1200 1 4-4- -5- 15 5 25 5-6- 1 4 2 1 10 20 2 3-7- 1 2 3 150 431 338-8- 2 3 100 4 5 6 7 1-9- 1291-10 - -11 - 10 1 35 2 3 1866 68 4 1871 1873 5 6-12 - 1 2 3 4 1 4-13

More information

●70974_100_AC009160_KAPヘ<3099>ーシス自動車約款(11.10).indb

●70974_100_AC009160_KAPヘ<3099>ーシス自動車約款(11.10).indb " # $ % & ' ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9 : ; < = >? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y " # $ % & ' ( ) * + , -. / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B

More information

MQTT V3.1 プロトコル仕様

MQTT V3.1 プロトコル仕様 1999 d digit = X MOD 128 X = X DIV 128 // if there are mre digits t encde, set the tp bit f this digit if ( X > 0 ) digit = digit OR 0x80 endif 'utput' digit while ( X> 0 ) multiplier = 1 value = 0

More information

橡点検記録(集約).PDF

橡点検記録(集約).PDF 942.8.8.8.7 671 86 11 1 9 9 9 1 1,792 7,23 2,483 1,324 2,198 7,23 82 7,23 6,327 9,22 9,713 8,525 8,554 9,22. 8,554. 1,79 9,713 95 947 8,525.. 944 671 81 7 17 1,29 1,225 1,241 1,25 1,375 9.3 23,264 25,

More information

1 1 2 65

1 1 2 65 3 3 2000 6 14 2 30 4 2 1 1 2 65 1!?? < > 3 2 2 100 19 19 100 100 100 < > 19 2 2 2 2 < > 2000 2000 50 1945 5 50 1945 5 45 20 20 4 1945 4 5 5 5 100 50 20 5 2 20 5 20 5 5 6 20 6 19 5 5 6 5 6 2 20 6 21

More information

2

2 1 2 3 4 5 6 ( ) 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6+ 6-5 2 6-5- 6-5+ 5-5- 5- 22 6+ 6-6+ 6-6- S-P time 10 5 2 23 S-P time 5 2 5 2 ( ) 5 2 24 25 26 1 27 28 29 30 95 31 ( 8 2 ) http://www.kishou.go.jp/know/shindo/kaisetsu.html

More information

TOKYO Bay CAR FERRY 142 143

TOKYO Bay CAR FERRY 142 143 140 141 TOKYO Bay CAR FERRY 142 143 145 144 146 147 149 148 150 1 2 3 4 5 6 7 8 9 : ; < = >? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 151 153 152 155 154 156 157 159 158 161 160

More information

-----------------------------------------------------------------------------------------1 --------------------------------------------------------------------------------------1 -------------------------------------------------------------------------------------1

More information

›¼’à”v“lŠÍ1−ª

›¼’à”v“lŠÍ1−ª 3 1 1 2 3 4 5 6 7 8 8 10 12 14 16 18 20 22 24 2 1 2 3 4 5 6 7 8 9 10 11 12 26 28 30 32 34 36 38 40 42 44 46 48 50 4 3 1 2 3 4 5 52 54 56 58 60 6 62 7 8 9 10 64 66 68 70 72 5 1 1 4 2 5 6 6 7 1 8 1 9 2 10

More information

1 2 3 4 1 2 3 4 1 2 3 4 12 3 4

1 2 3 4 1 2 3 4 1 2 3 4 12 3 4 1 2 3 4 5 6 1 2 3 4 5 6 1 2 1 2 1 2 1 2 1 2 3 4 12 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 12 3 4 1 2 3 4 5 6 7 8 1 2 3 46 7 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 16 7 8 92 3 46 7 :

More information

- 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 2-12 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 1 - 2 - 3 6 1 1-4 - 5 - 6 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 130 3 130 5 2 50 1.5 48 59 62 63-9 - 1 - 2 - 3 () - 4 - 5 -

More information

S1460...........\1.E4

S1460...........\1.E4 3 4 3 4 5 3 4 5 3 4 3 4 3 3 3 3 4 3 4 3 3 4 4 3 3 3 3 4 3 4 3 3 3 3 3 3 4 3 4 3 4 5 4 3 5 4 3 3 4 5 3 4 5 4 3 4 3 3 4 3 4 3 3 3 3 3 4 3 3 4! "! " " 0 6 ! " 3 4 3 3 4 3 ! " 3 3 4 5 4 5 6 3 3

More information

パズルをSugar制約ソルバーで解く

パズルをSugar制約ソルバーで解く Sugar 1 2 3 1 CSPSAT 2008 8 21 Sugar 1 2 3 Sugar Sugar (CSP) (SAT ) (encode) SAT SAT order encoding direct encoding support encoding http://bachistckobe-uacjp/sugar/ Web Sugar 1 2 3 Sugar SAT (COP) MAX-CSP

More information

. 61 5,000 5,000 2 61 2 10 62 5 1 2 3 9 30 6 10 3 1 969 39 61 20 330 1040 1750 1360 57 60 1 10,000 96 5 5 94 80 5 15 5 100 82 18 2

. 61 5,000 5,000 2 61 2 10 62 5 1 2 3 9 30 6 10 3 1 969 39 61 20 330 1040 1750 1360 57 60 1 10,000 96 5 5 94 80 5 15 5 100 82 18 2 1. 2. 26 9 8 26 9 22 26 9 28 3. 26 10 1 26 12 31 4. 26 10 27 1 1 3 27 1 1 2 1 2 5. 1 1000 1,000 6. 1 10,000 A 500 11 B 500 11 1,000 A B 7. 10,000 8. 1 5 5 9. 10. 11. 1 2 1 . 61 5,000 5,000 2 61 2 10 62

More information

... 3... 3... 3... 3... 4... 7... 10... 10... 11... 12... 12... 13... 14... 15... 18... 19... 20... 22... 22... 23 2

... 3... 3... 3... 3... 4... 7... 10... 10... 11... 12... 12... 13... 14... 15... 18... 19... 20... 22... 22... 23 2 1 ... 3... 3... 3... 3... 4... 7... 10... 10... 11... 12... 12... 13... 14... 15... 18... 19... 20... 22... 22... 23 2 3 4 5 6 7 8 9 Excel2007 10 Excel2007 11 12 13 - 14 15 16 17 18 19 20 21 22 Excel2007

More information

() / (front end) (back end) (phase) (pass) 1 2

() / (front end) (back end) (phase) (pass) 1 2 1 () () lex http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/ 2018 4 1 () / (front end) (back end) (phase) (pass) 1 2 () () var left, right; fun int main() { left = 0; right = 10; return ((left

More information

2

2 Haskell ( ) kazu@iij.ad.jp 1 2 Blub Paul Graham http://practical-scheme.net/trans/beating-the-averages-j.html Blub Blub Blub Blub 3 Haskell Sebastian Sylvan http://www.haskell.org/haskellwiki/why_haskell_matters...

More information

ACCESS入門編

ACCESS入門編 ACCESS () / 255 65535 0 255-32768 32767 15 4 1 Yes/No OLE Yes=-1 NO=0 OK Like AND *[ ]* Like *[ ]* Like >= =40 40 OR 1 OR AND 2000 2 2 AND 2 OK CTRL SHIFT IME 1 IME [1] [2]2

More information

http://banso.cocolog-nifty.com/ 100 100 250 5 1 1 http://www.banso.com/ 2009 5 2 10 http://www.banso.com/ 2009 5 2 http://www.banso.com/ 2009 5 2 http://www.banso.com/ < /> < /> / http://www.banso.com/

More information

2

2 1 2 10 14 945 3000 2012 3 10 4 5 6 7 8 9 10 11 12 2011 11 21 12301430 (1215 ) 13 6 27 17 () ( ) ( ) (112360) 2 (1157) (119099) ((11861231) )( ) (11641205) 3 (1277) 3 4 (1558) (1639)() 12 (1699)( ) 7 (1722)

More information

(CC Attribution) Lisp 2.1 (Gauche )

(CC Attribution) Lisp 2.1 (Gauche ) http://www.flickr.com/photos/dust/3603580129/ (CC Attribution) Lisp 2.1 (Gauche ) 2 2000EY-Office 3 4 Lisp 5 New York The lisps Sammy Tunis flickr lisp http://www.flickr.com/photos/dust/3603580129/ (CC

More information

NEXT 1 2 3 1 2 3 4 5 6 1 2 1 2 1 1 1 1 2 3 1 2 3 4 5 6 1 2 3 4 1 2 3 4 5 6 1 2 3 4 5 1 2 3 1 1 2 1 2 3 4 5 6 7 1 2 3 1 2 1 2 3 4 5 6 7 8 9 1 1 1 2 1 2 1 2 3 4 5 6 1 2

More information

n=360 28.6% 34.4% 36.9% n=360 2.5% 17.8% 19.2% n=64 0.8% 0.3% n=69 1.7% 3.6% 0.6% 1.4% 1.9% < > n=218 1.4% 5.6% 3.1% 60.6% 0.6% 6.9% 10.8% 6.4% 10.3% 33.1% 1.4% 3.6% 1.1% 0.0% 3.1% n=360 0% 50%

More information

2

2 2 5 6 8 9 (1) (2) (3) 10 11 (1) (2) (3) 36 (1) (2) (3) (4) 37 (1) (2) (3) 42 3 4 3 24 3 3 3 20 59 20 33 20 18 3 25 3 5 3 19 21 3 22 10 16 6 23 4 1 24 3 31 1 1. 4 1 5 5 6 6 6 23 6 23 6 30 7 21 12 1 12 15

More information

r07.dvi

r07.dvi 19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1

More information

r1.dvi

r1.dvi 2014 1 2014.4.10 0 / 1 / 2 / 3 Lisp 4 5 ( ) 1 (5 1 ) 5 1 1.1? 0 1 (bit sequence) 5 101 3 11 2 (binary system) 2 1000 8 1 ( ) ( )? ( 1) r1 1000 1001 r2 1002... r3 1: (memory) (address) CPU (instruction)

More information

卒論 提出用ファイル.doc

卒論 提出用ファイル.doc 11 13 1LT99097W (i) (ii) 0. 0....1 1....3 1.1....3 1.2....4 2....7 2.1....7 2.2....8 2.2.1....8 2.2.2....9 2.2.3.... 10 2.3.... 12 3.... 15 Appendix... 17 1.... 17 2.... 19 3.... 20... 22 (1) a. b. c.

More information

ohp07.dvi

ohp07.dvi 19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5

More information

i ii ( ) ( ) ( ) 462,891 525,032 502,164 230,636 CD CD 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 10 12 11 13 11 14 12 15 12 16 13 16 14 17 15 18 15 18 16 19 17 20 17 18 19

More information

38

38 3 37 38 3.1. 3.1.1. 3.1-1 2005 12 5 7 2006 5 31 6 2 2006 8 10 11 14 2006 10 18 20 3.1-1 9 00 17 3 3.1.2. 3.1-2 3.1-1 9 9 3.1-2 M- M-2 M-3 N- N-2 N-3 S- S-2 S-3 3.1.2.1. 25 26 3.1.2.2. 3.1-3 25 26 39 3.1-1

More information

項 目

項 目 1 1 2 3 11 4 6 5 7,000 2 120 1.3 4,000 04 450 < > 5 3 6 7 8 9 4 10 11 5 12 45 6 13 E. 7 B. C. 14 15 16 17 18 19 20 21 22 23 8 24 25 9 27 2 26 6 27 3 1 3 3 28 29 30 9 31 32 33 500 1 4000 0 2~3 10 10 34

More information

fp.gby

fp.gby 1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]

More information

N88 BASIC 0.3 C: My Documents 0.6: 0.3: (R) (G) : enterreturn : (F) BA- SIC.bas 0.8: (V) 0.9: 0.5:

N88 BASIC 0.3 C: My Documents 0.6: 0.3: (R) (G) : enterreturn : (F) BA- SIC.bas 0.8: (V) 0.9: 0.5: BASIC 20 4 10 0 N88 Basic 1 0.0 N88 Basic..................................... 1 0.1............................................... 3 1 4 2 5 3 6 4 7 5 10 6 13 7 14 0 N88 Basic 0.0 N88 Basic 0.1: N88Basic

More information

( ) ( ) lex LL(1) LL(1)

( ) ( ) lex LL(1) LL(1) () () lex LL(1) LL(1) http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/ 29 5 14 1 1 () / (front end) (back end) (phase) (pass) 1 2 1 () () var left, right; fun int main() { left = 0; right = 10;

More information

untitled

untitled 280 200 5 7,800 6 8,600 28 1 1 18 7 8 2 ( 31 ) 7 42 2 / / / / / / / / / / 1 3 (1) 4 5 3 1 1 1 A B C D 6 (1) -----) (2) -- ()) (3) ----(). ()() () ( )( )( )( ) ( ) ( )( )( )( ) () (). () ()() 7 () ( ) 1

More information

6-1

6-1 6-1 (data type) 6-2 6-3 ML, Haskell, Scala Lisp, Prolog (setq x 123) (+ x 456) (setq x "abc") (+ x 456) ; 6-4 ( ) subtype INDEX is INTEGER range -10..10; type DAY is (MON, TUE, WED, THU, FRI, SAT, SUN);

More information

1 8 Z80 Z GBA ASIC 2 WINDOWS C 1

1 8 Z80 Z GBA ASIC 2 WINDOWS C 1 1 8 Z80 Z80 20 8080 GBA ASIC 2 WINDOWS C 1 2.1 Z-80 A 0 - A 15 CPU Z80 D 0- D 7 I/O Z80 1: 1 (1) CPU CPU Z80 CPU Z80 AND,OR,NOT, (2) CPU (3) I/O () Z80 (4) 2 Z80 I/O 16 16 A 0, A 1,, A 15 (5) Z80I/O 8

More information

main.dvi

main.dvi 20 II 7. 1 409, 3255 e-mail: namba@faculty.chiba-u.jp 2 1 1 1 4 2 203 2 1 1 1 5 503 1 3 1 2 2 Web http://www.icsd2.tj.chiba-u.jp/~namba/lecture/ 1 2 1 5 501 1,, \,", 2000 7. : 1 1 CPU CPU 1 Intel Pentium

More information

r3.dvi

r3.dvi 2012 3 / Lisp(2) 2012.4.19 1 Lisp 1.1 Lisp Lisp (1) (setq) (2) (3) setq defun (defun (... &aux...)...) ( ) ( nil ) [1]> (defun sisoku (x y &aux wa sa sho seki) (setq wa (+ x y)) (setq sa (- x y)) (setq

More information

Common Lisp :

Common Lisp : Common Lisp : Lisp Common Lisp & ( ) ( ) Twitter(@lambda_sakura) C/C++ or Ruby Common Lisp 5 :2 :2 :1 : 2006 2006: 2007: 2008: 2009-2010: (2-3 ) C/C++ Lisper (1 ) Lisp C/C++ Common Lisp C/C++ 1 C/C++

More information

Parametric Polymorphism

Parametric Polymorphism ML 2 2011/04/19 Parametric Polymorphism Type Polymorphism ? : val hd_int : int list - > int val hd_bool : bool list - > bool val hd_i_x_b : (int * bool) list - > int * bool etc. let hd_int = function (x

More information