Subversion Repositories Kolibri OS

Rev

Rev 2053 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2053 Rev 2073
1
Ž¡§®à ¨­â¥à¯à¥â â®à  TinyPy ¨ § ¬¥âª¨ ¯® ¥£®  ¤ ¯â æ¨¨ ª à ¡®â¥ ¢ Š®«¨¡à¨Ž‘.
1
Ž¡§®à ¨­â¥à¯à¥â â®à  TinyPy ¨ § ¬¥âª¨ ¯® ¥£®  ¤ ¯â æ¨¨ ª à ¡®â¥ ¢ Š®«¨¡à¨Ž‘.
2
 
2
 
3
1. —â® â ª®¥ TinyPy ¨ 祬 ®­ å®à®è ¢ ¯« ­¥ ¯®àâ¨à®¢ ­¨ï
3
1. —â® â ª®¥ TinyPy ¨ 祬 ®­ å®à®è ¢ ¯« ­¥ ¯®àâ¨à®¢ ­¨ï
4
 
4
 
5
 TinyPy - ¨­â¥à¯à¥â â®à Python-¯®¤®¡­®£® ï§ëª , ᮧ¤ ­­ë© ”¨«®¬
5
 TinyPy - ¨­â¥à¯à¥â â®à Python-¯®¤®¡­®£® ï§ëª , ᮧ¤ ­­ë© ”¨«®¬
6
•íáᨠ(Phil Hassey), ®â«¨ç î騩áï ®ç¥­ì ­¥¡®«ì訬¨ à §¬¥à ¬¨: ¢ë¡®à®¬ ®¯æ¨©
6
•íáᨠ(Phil Hassey), ®â«¨ç î騩áï ®ç¥­ì ­¥¡®«ì訬¨ à §¬¥à ¬¨: ¢ë¡®à®¬ ®¯æ¨©
7
ª®¬¯¨«ï樨 ¬®¦­® ¤®¡¨âìáï à §¬¥à®¢ ¨á¯®«­ï¥¬®£® ¬®¤ã«ï ¢ ¯à¥¤¥« å 64 ª¨«®¡ ©â.
7
ª®¬¯¨«ï樨 ¬®¦­® ¤®¡¨âìáï à §¬¥à®¢ ¨á¯®«­ï¥¬®£® ¬®¤ã«ï ¢ ¯à¥¤¥« å 64 ª¨«®¡ ©â.
8
 
8
 
9
 à¨ ࠧࠡ®âª¥ ¯à¨«®¦¥­¨© ¤«ï Š®«¨¡à¨ ¢ ¤àã£¨å ®¯¥à æ¨®­­ëå á¨á⥬ å
9
 à¨ ࠧࠡ®âª¥ ¯à¨«®¦¥­¨© ¤«ï Š®«¨¡à¨ ¢ ¤àã£¨å ®¯¥à æ¨®­­ëå á¨á⥬ å
10
¤®áâ㯥­ ¤®¢®«ì­® è¨à®ª¨© ¢ë¡®à ªà®áá-ª®¬¯¨«ïâ®à®¢.  ¡®à á।á⢠ࠧࠡ®âª¨ ¢
10
¤®áâ㯥­ ¤®¢®«ì­® è¨à®ª¨© ¢ë¡®à ªà®áá-ª®¬¯¨«ïâ®à®¢.  ¡®à á।á⢠ࠧࠡ®âª¨ ¢
11
á ¬®© Š®«¨¡à¨ ¤® ­¥¤ ¢­¥£® ¢à¥¬¥­¨ ¡ë« ®£à ­¨ç¥­ FASM. Œ®¦­® ¯à¥¤¯®«®¦¨âì, çâ®
11
á ¬®© Š®«¨¡à¨ ¤® ­¥¤ ¢­¥£® ¢à¥¬¥­¨ ¡ë« ®£à ­¨ç¥­ FASM. Œ®¦­® ¯à¥¤¯®«®¦¨âì, çâ®
12
¢®§¬®¦­®áâì ᮧ¤ ¢ âì ¯à®£à ¬¬ë ¢ á ¬®© á¨á⥬¥ ­  â ª®¬ «¥£ª®¨§ãç ¥¬®¬ ¨
12
¢®§¬®¦­®áâì ᮧ¤ ¢ âì ¯à®£à ¬¬ë ¢ á ¬®© á¨á⥬¥ ­  â ª®¬ «¥£ª®¨§ãç ¥¬®¬ ¨
13
à á¯à®áâà ­ñ­­®¬ ï§ëª¥, ª ª Python, ¯®¢ë蠥⠯ਢ«¥ª â¥«ì­®áâì á¨áâ¥¬ë ¤«ï
13
à á¯à®áâà ­ñ­­®¬ ï§ëª¥, ª ª Python, ¯®¢ë蠥⠯ਢ«¥ª â¥«ì­®áâì á¨áâ¥¬ë ¤«ï
14
¯®«ì§®¢ â¥«ï, ¤ «ñª®£® ®â ¯à®£à ¬¬¨à®¢ ­¨ï ­   áᥬ¡«¥à¥.
14
¯®«ì§®¢ â¥«ï, ¤ «ñª®£® ®â ¯à®£à ¬¬¨à®¢ ­¨ï ­   áᥬ¡«¥à¥.
15
 
15
 
16
TinyPy ®ª § «áï «ñ£®ª ¢ ¯®àâ¨à®¢ ­¨¨: §­ ç¨â¥«ì­ ï ç áâì ¥£® ­ ¯¨á ­  ­  á ¬®¬
16
TinyPy ®ª § «áï «ñ£®ª ¢ ¯®àâ¨à®¢ ­¨¨: §­ ç¨â¥«ì­ ï ç áâì ¥£® ­ ¯¨á ­  ­  á ¬®¬
17
Python,   ®áâ «ì­ ï ç áâì - ­  C, ¨á室­ë¥ ⥪áâë § ­¨¬ îâ çãâì ¡®«ìè¥ 200 Š¡.
17
Python,   ®áâ «ì­ ï ç áâì - ­  C, ¨á室­ë¥ ⥪áâë § ­¨¬ îâ çãâì ¡®«ìè¥ 200 Š¡.
18
„«ï ª®¬¯¨«ï樨 ­ã¦­  ⮫쪮 áâ ­¤ àâ­ ï ¡¨¡«¨®â¥ª  libc. ˆ§ ­¥ñ ¨á¯®«ì§ã¥âáï
18
„«ï ª®¬¯¨«ï樨 ­ã¦­  ⮫쪮 áâ ­¤ àâ­ ï ¡¨¡«¨®â¥ª  libc. ˆ§ ­¥ñ ¨á¯®«ì§ã¥âáï
19
¢á¥£® ®ª®«® ¯®«ãâ®à  ¤¥áï⪮¢ ä㭪権 (vsnprintf/vsprintf, malloc/memcpy/memmove/free,
19
¢á¥£® ®ª®«® ¯®«ãâ®à  ¤¥áï⪮¢ ä㭪権 (vsnprintf/vsprintf, malloc/memcpy/memmove/free,
20
fopen/fread/fwrite/fclose).
20
fopen/fread/fwrite/fclose).
21
 
21
 
22
 ‚ ¨â®£¥ à ¡®â  ¯® ¯®àâ¨à®¢ ­¨î TinyPy á®áâ®ï«  ¨§ á«¥¤ãîé¨å ç á⥩:
22
 ‚ ¨â®£¥ à ¡®â  ¯® ¯®àâ¨à®¢ ­¨î TinyPy á®áâ®ï«  ¨§ á«¥¤ãîé¨å ç á⥩:
23
 1.  ¯¨á ­¨¥ Makefile ¤«ï ᡮન ª®¬¯¨«ïâ®à®¬ GCC á ¨á¯®«ì§®¢ ­¨¥¬
23
 1.  ¯¨á ­¨¥ Makefile ¤«ï ᡮન ª®¬¯¨«ïâ®à®¬ GCC á ¨á¯®«ì§®¢ ­¨¥¬
24
 menuetlibc.
24
 menuetlibc.
25
 2. „®¡ ¢«¥­¨¥ ¢ menuetlibc ­¥¤®áâ îé¨å ä㭪権 vsnprintf/vsprintf.
25
 2. „®¡ ¢«¥­¨¥ ¢ menuetlibc ­¥¤®áâ îé¨å ä㭪権 vsnprintf/vsprintf.
26
 3. ®¤ª«î祭¨¥ ¡¨¡«¨®â¥ª¨ Š®«¨¡à¨ ¤«ï à ¡®âë á ª®­á®«ìî.
26
 3. ®¤ª«î祭¨¥ ¡¨¡«¨®â¥ª¨ Š®«¨¡à¨ ¤«ï à ¡®âë á ª®­á®«ìî.
27
 4. ˆ ª®­¥ç­®, ®â«®¢ à §­®®¡à §­ëå ¬¥«ª¨å ¡ £®¢ (ª ª ¦¥ ¡¥§ í⮣®!).
27
 4. ˆ ª®­¥ç­®, ®â«®¢ à §­®®¡à §­ëå ¬¥«ª¨å ¡ £®¢ (ª ª ¦¥ ¡¥§ í⮣®!).
28
 
28
 
29
2. ‚®§¬®¦­®á⨠TinyPy.
29
2. ‚®§¬®¦­®á⨠TinyPy.
30
 
30
 
31
2.1. ’¨¯ë ¤ ­­ëå.
31
2.1. ’¨¯ë ¤ ­­ëå.
32
 
32
 
33
Š ¦¤ë© ®¡ê¥ªâ ¢ á।¥ TinyPy ¯à¥¤áâ ¢«ï¥âáï 16-¡ ©â®¢®© áâàãªâãன tp_obj.
33
Š ¦¤ë© ®¡ê¥ªâ ¢ á।¥ TinyPy ¯à¥¤áâ ¢«ï¥âáï 16-¡ ©â®¢®© áâàãªâãன tp_obj.
34
¥à¢ë¥ 4 ¡ ©â  § ­¨¬ ¥â ⨯, ¨ ­ §­ ç¥­¨¥ ¯®á«¥¤ãîé¨å 12 ¡ ©â § ¢¨á¨â ®â ­¥£®.
34
¥à¢ë¥ 4 ¡ ©â  § ­¨¬ ¥â ⨯, ¨ ­ §­ ç¥­¨¥ ¯®á«¥¤ãîé¨å 12 ¡ ©â § ¢¨á¨â ®â ­¥£®.
35
„®áâ㯭ë á«¥¤ãî騥 ⨯ë: TP_NONE, TP_NUMBER, TP_STRING, TP_DICT, TP_LIST, 
35
„®áâ㯭ë á«¥¤ãî騥 ⨯ë: TP_NONE, TP_NUMBER, TP_STRING, TP_DICT, TP_LIST, 
36
TP_FNC, TP_DATA.
36
TP_FNC, TP_DATA.
37
 
37
 
38
 TP_NONE - ᮮ⢥âáâ¢ã¥â ¥¤¨­á⢥­­®¬ã ®¡ê¥ªâã None. ®«ìè¥ ¯à® ­¥£® ᪠§ âì
38
 TP_NONE - ᮮ⢥âáâ¢ã¥â ¥¤¨­á⢥­­®¬ã ®¡ê¥ªâã None. ®«ìè¥ ¯à® ­¥£® ᪠§ âì
39
 ­¥ç¥£®.
39
 ­¥ç¥£®.
40
 
40
 
41
 TP_NUMBER - ç¨á«®, åà ­¨âáï ª ª float. …᫨ ç¨á«® ®â«¨ç ¥âáï ®â ¡«¨¦ ©è¥£®
41
 TP_NUMBER - ç¨á«®, åà ­¨âáï ª ª float. …᫨ ç¨á«® ®â«¨ç ¥âáï ®â ¡«¨¦ ©è¥£®
42
 楫®£® ¬¥­ìè¥, 祬 ­  10^(-6), ®­® áç¨â ¥âáï 楫ë¬, ¨ ¯à¨ ¯¥ç â¨ ¢ë¢®¤¨âáï
42
 楫®£® ¬¥­ìè¥, 祬 ­  10^(-6), ®­® áç¨â ¥âáï 楫ë¬, ¨ ¯à¨ ¯¥ç â¨ ¢ë¢®¤¨âáï
43
 ª ª 楫®¥. ’ ª¦¥ ª í⮬ã ⨯㠮⭮áïâáï «®£¨ç¥áª¨¥ True ¨ False.
43
 ª ª 楫®¥. ’ ª¦¥ ª í⮬ã ⨯㠮⭮áïâáï «®£¨ç¥áª¨¥ True ¨ False.
44
 ®¤¤¥à¦¨¢ îâáï  à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à æ¨¨ +,-,*,/,%, ¡¨â®¢ë¥ << ¨ >>, «®£¨ç¥áª¨¥
44
 ®¤¤¥à¦¨¢ îâáï  à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à æ¨¨ +,-,*,/,%, ¡¨â®¢ë¥ << ¨ >>, «®£¨ç¥áª¨¥
45
 |, &.
45
 |, &.
46
 
46
 
47
 à¨¬¥à:
47
 à¨¬¥à:
48
 print(2+2*2, 7/3, (-7)%3, 1==True, 0==False)
48
 print(2+2*2, 7/3, (-7)%3, 1==True, 0==False)
49
 
49
 
50
 ‚뢮¤¨â:
50
 ‚뢮¤¨â:
51
 6 2.333333 -1 1 1
51
 6 2.333333 -1 1 1
52
 
52
 
53
 ‡ ¬¥â¨¬ áà §ã, çâ® print ï¥âáï ä㭪樥© (ª ª ¢ Python 3), â® ¥áâì ¯ à ¬¥âàë
53
 ‡ ¬¥â¨¬ áà §ã, çâ® print ï¥âáï ä㭪樥© (ª ª ¢ Python 3), â® ¥áâì ¯ à ¬¥âàë
54
 ®¡ï§ â¥«ì­® 㪠§ë¢ âì ¢ ᪮¡ª å.
54
 ®¡ï§ â¥«ì­® 㪠§ë¢ âì ¢ ᪮¡ª å.
55
 
55
 
56
 TP_STRING - áâப . ®¤¤¥à¦¨¢ îâáï: ¯à®¢¥àª  ¢å®¦¤¥­¨ï ("str1" in "str2"), á१ë s[:b], s[a:b],
56
 TP_STRING - áâப . ®¤¤¥à¦¨¢ îâáï: ¯à®¢¥àª  ¢å®¦¤¥­¨ï ("str1" in "str2"), á१ë s[:b], s[a:b],
57
 s[a:], ä㭪樨 len, index, join, split, find, strip, replace.
57
 s[a:], ä㭪樨 len, index, join, split, find, strip, replace.
58
 
58
 
59
 TP_DICT - á«®¢ àì, ®­ ¦¥  áá®æ¨ â¨¢­ë© ¬ áᨢ. ®¤¤¥à¦¨¢ ¥âáï ¤®¡ ¢«¥­¨¥
59
 TP_DICT - á«®¢ àì, ®­ ¦¥  áá®æ¨ â¨¢­ë© ¬ áᨢ. ®¤¤¥à¦¨¢ ¥âáï ¤®¡ ¢«¥­¨¥
60
 ­®¢®£® í«¥¬¥­â  ¨ ¢á¥å í«¥¬¥­â®¢ ¤à㣮£® á«®¢ àï. ¥à¥¡®à ¯® ¢á¥¬ ª«îç ¬ ¨
60
 ­®¢®£® í«¥¬¥­â  ¨ ¢á¥å í«¥¬¥­â®¢ ¤à㣮£® á«®¢ àï. ¥à¥¡®à ¯® ¢á¥¬ ª«îç ¬ ¨
61
 㤠«¥­¨¥ í«¥¬¥­â®¢ ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï. ‘«®¢ à¨ â ª¦¥ ïîâáï 㤮¡­ë¬ ᯮᮡ®¬
61
 㤠«¥­¨¥ í«¥¬¥­â®¢ ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï. ‘«®¢ à¨ â ª¦¥ ïîâáï 㤮¡­ë¬ ᯮᮡ®¬
62
 ¯à¥¤áâ ¢«¥­¨ï ®¡ê¥ªâ®¢, ¢ ç áâ­®áâ¨, ¥á«¨ d á«®¢ àì, â® § ¯¨á¨ d.key ¨
62
 ¯à¥¤áâ ¢«¥­¨ï ®¡ê¥ªâ®¢, ¢ ç áâ­®áâ¨, ¥á«¨ d á«®¢ àì, â® § ¯¨á¨ d.key ¨
63
 d['key'] à ¢­®§­ ç­ë. ‚ í⮬ TinyPy ­¥¬­®£® ­ ¯®¬¨­ ¥â JavaScript.
63
 d['key'] à ¢­®§­ ç­ë. ‚ í⮬ TinyPy ­¥¬­®£® ­ ¯®¬¨­ ¥â JavaScript.
64
 
64
 
65
 TP_LIST - ᯨ᮪. ®¤¤¥à¦¨¢ îâáï: ¯¥à¥¡®à ¯® í«¥¬¥­â ¬ (for el in list),
65
 TP_LIST - ᯨ᮪. ®¤¤¥à¦¨¢ îâáï: ¯¥à¥¡®à ¯® í«¥¬¥­â ¬ (for el in list),
66
 ä㭪樨 len, append/appendx, extend, insert/insertx, pop, find, index, sort.
66
 ä㭪樨 len, append/appendx, extend, insert/insertx, pop, find, index, sort.
67
’ ª¦¥ ¯®¤¤¥à¦¨¢ ¥âáï äã­ªæ¨ï range. reverse() ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï.
67
’ ª¦¥ ¯®¤¤¥à¦¨¢ ¥âáï äã­ªæ¨ï range. reverse() ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï.
68
 
68
 
69
 TP_FNC - äã­ªæ¨ï. ë¢ ¥â 2 ⨯®¢ - ®¡ëç­ ï äã­ªæ¨ï ¨ ¬¥â®¤, ®â«¨ç îâáï
69
 TP_FNC - äã­ªæ¨ï. ë¢ ¥â 2 ⨯®¢ - ®¡ëç­ ï äã­ªæ¨ï ¨ ¬¥â®¤, ®â«¨ç îâáï
70
 ¯®à浪®¬ ¢ë§®¢ .
70
 ¯®à浪®¬ ¢ë§®¢ .
71
 
71
 
72
 TP_DATA - ¢­ãâ७­¨¥ áâàãªâãàë TinyPy.
72
 TP_DATA - ¢­ãâ७­¨¥ áâàãªâãàë TinyPy.
73
 
73
 
74
2. ‚®§¬®¦­®á⨠TinyPy ¢ áà ¢­¥­¨¨ á "¡®«ì訬" Python
74
2. ‚®§¬®¦­®á⨠TinyPy ¢ áà ¢­¥­¨¨ á "¡®«ì訬" Python
75
 
75
 
76
"what tinypy won't be:
76
"what tinypy won't be:
77
- a full implementation of Python;
77
- a full implementation of Python;
78
- totally compatible with Python"
78
- totally compatible with Python"
79
        "roadmap.txt", tinypy sources
79
        "roadmap.txt", tinypy sources
80
 
80
 
81
 ‘¨­â ªá¨á ï§ëª  TinyPy ®ç¥­ì ¯®å®¦ ­  Python, ­® ¬­®£¨¥ áãé¥á⢥­­ë¥
81
 ‘¨­â ªá¨á ï§ëª  TinyPy ®ç¥­ì ¯®å®¦ ­  Python, ­® ¬­®£¨¥ áãé¥á⢥­­ë¥
82
 ¢®§¬®¦­®á⨠Python ­¥ ¯®¤¤¥à¦¨¢ îâáï:
82
 ¢®§¬®¦­®á⨠Python ­¥ ¯®¤¤¥à¦¨¢ îâáï:
83
 
83
 
84
 - ¨â¥à â®àë ¨ ᮯணࠬ¬;
84
 - ¨â¥à â®àë ¨ ᮯணࠬ¬;
85
 - ᨭ⠪á¨ç¥áª¨© "á å à" ¤«ï ®¡ê¥­¨ï ᯨ᪮¢ ¨ á«®¢ à¥©, ­ ¯®¤®¡¨¥
85
 - ᨭ⠪á¨ç¥áª¨© "á å à" ¤«ï ®¡ê¥­¨ï ᯨ᪮¢ ¨ á«®¢ à¥©, ­ ¯®¤®¡¨¥
86
 odd_squares = [a*a for a in range(100) if a%2];
86
 odd_squares = [a*a for a in range(100) if a%2];
87
 - ¨­â¥à ªâ¨¢­ ï ª®­á®«ì
87
 - ¨­â¥à ªâ¨¢­ ï ª®­á®«ì.
88
 - ¯¥à¥¤ ç  ¯ à ¬¥â஢ ç¥à¥§ ARGV
-
 
89
 
-
 
90
  ‚ ¡¨¡«¨®â¥ª¥ menuetlibc ¯à®æ¥¤ãà  à §¡®à  ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨ ¯®ª 
-
 
91
  ­¥  ¤ ¯â¨à®¢ ­  ¤«ï Š®«¨¡à¨Ž‘, ¯®í⮬㠯ਠ§ ¯ã᪥ TinyPy ¯à¨å®¤¨âáï ¢¢®¤¨âì
-
 
92
  ¨¬ï ä ©«  ¢àãç­ãî, â ª¦¥ ­¥«ì§ï ¯¥à¥¤ ¢ âì ¯ à ¬¥âàë ¢ ª®¬ ­¤­®© áâப¥.
-
 
93
 
88
 
94
 ˆ ª®­¥ç­®, ­¥ 墠⠥⠮᭮¢­®© ᨫë Python - ¥£® áâ ­¤ àâ­®© ¡¨¡«¨®â¥ª¨.
89
 ˆ ª®­¥ç­®, ­¥ 墠⠥⠮᭮¢­®© ᨫë Python - ¥£® áâ ­¤ àâ­®© ¡¨¡«¨®â¥ª¨.
95
 
90
 
96
3.  áè¨à¥­¨¥ TinyPy.
91
3.  áè¨à¥­¨¥ TinyPy.
97
 
92
 
98
  ¡®à ¢áâ஥­­ëå ä㭪権 ¢ TinyPy ¤®áâ â®ç­® ¡¥¤¥­, ­® § â® ¤®¡ ¢«¥­¨¥ ­®¢ëå
93
  ¡®à ¢áâ஥­­ëå ä㭪権 ¢ TinyPy ¤®áâ â®ç­® ¡¥¤¥­, ­® § â® ¤®¡ ¢«¥­¨¥ ­®¢ëå
99
 ¬®¤ã«¥© ¤®áâ â®ç­® ¯à®áâ®.  áᬮâਬ ᮧ¤ ­¨¥ ¬®¤ã«¥© ­  á ¬®¬ TinyPy, ­ 
94
 ¬®¤ã«¥© ¤®áâ â®ç­® ¯à®áâ®.  áᬮâਬ ᮧ¤ ­¨¥ ¬®¤ã«¥© ­  á ¬®¬ TinyPy, ­ 
100
 C ¨ ­  FASM.
95
 C ¨ ­  FASM.
101
 
96
 
102
 3.1. Œ®¤ã«¨ ­  TinyPy.
97
 3.1. Œ®¤ã«¨ ­  TinyPy.
103
 
98
 
104
 TinyPy ¯®¤¤¥à¦¨¢ ¥â ¬®¤ã«ì­®¥ ¯à®£à ¬¬¨à®¢ ­¨¥, ᮧ¤ ­¨¥ ¬®¤ã«¥©
99
 TinyPy ¯®¤¤¥à¦¨¢ ¥â ¬®¤ã«ì­®¥ ¯à®£à ¬¬¨à®¢ ­¨¥, ᮧ¤ ­¨¥ ¬®¤ã«¥©
105
 ¯à¨­æ¨¯¨ «ì­® ­¨ç¥¬ ­¥ ®â«¨ç ¥âáï ®â Python. ãáâì, ã ­ á ¥áâì ¯à®áâ ï
100
 ¯à¨­æ¨¯¨ «ì­® ­¨ç¥¬ ­¥ ®â«¨ç ¥âáï ®â Python. ãáâì, ã ­ á ¥áâì ¯à®áâ ï
106
 ¯à®£à ¬¬  ¨§ ¤¢ãå ä ©«®¢:
101
 ¯à®£à ¬¬  ¨§ ¤¢ãå ä ©«®¢:
107
 
102
 
108
” ©« math.py:
103
” ©« math.py:
109
 def square(a):
104
 def square(a):
110
     return a*a
105
     return a*a
111
 
106
 
112
” ©« prog.py:
107
” ©« prog.py:
113
import math
108
import math
114
 
109
 
115
if __name__=="__main__":
110
if __name__=="__main__":
116
    math.square(12)
111
    math.square(12)
117
 
112
 
118
 ‚­ ç «¥ ­ã¦­® ᪮¬¯¨«¨à®¢ âì ¬®¤ã«ì math.py ¢ ¡ ©â-ª®¤ ¯à¨ ¯®¬®é¨ ¯à®£à ¬¬ë
113
 ‚­ ç «¥ ­ã¦­® ᪮¬¯¨«¨à®¢ âì ¬®¤ã«ì math.py ¢ ¡ ©â-ª®¤ ¯à¨ ¯®¬®é¨ ¯à®£à ¬¬ë
119
 py2bc.py, ®­  à ¡®â ¥â ª ª ¢ Python, â ª ¨ ¢ TinyPy. ‚ ¯®á«¥¤­¥¬ á«ãç ¥ ­ã¦­®
114
 py2bc.py, ®­  à ¡®â ¥â ª ª ¢ Python, â ª ¨ ¢ TinyPy. ‡ ¯ã᪠¥¬ shell ¨ ¢ë¯®«­ï¥¬ ª®¬ ­¤ã
120
 㪠§ âì £«®¡ «ì­ë© ¬ áᨢ ARGV=[0, 'math.py', 'math.tpc'], â ª ª ª ¯¥à¥¤ âì
115
 # tinypy py2bc.py math.py math.tpc
-
 
116
 
121
 ¯ à ¬¥âàë ç¥à¥§ ª®¬ ­¤­ãî áâப㠯®ª  ­¥«ì§ï. ®á«¥ í⮣® ¬®¦­® § ¯ãáâ¨âì
117
 ®á«¥ í⮣® ¬®¦­® § ¯ãáâ¨âì prog.py ¨§ TinyPy.
-
 
118
 
-
 
119
 # tinypy prog.py
-
 
120
 144
-
 
121
 
122
 prog.py ¨§ TinyPy. ‘¨­â ªá¨á "from module import function" ¯®ª  ­¥
122
 ‡ ¬¥ç ­¨¥: ᨭ⠪á¨á "from module import function" ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï.
123
 ¯®¤¤¥à¦¨¢ ¥âáï.
-
 
124
 
123
 
125
 3.2 Œ®¤ã«¨ ­  C.
124
 3.2 Œ®¤ã«¨ ­  C.
126
 
125
 
127
 à¨¬¥à ᮧ¤ ­¨ï ¬®¤ã«¥© ­  C ¬®¦­® ¯®á¬®âà¥âì ¢ ª â «®£¥ modules/kolibri. ’ ª¨¥
126
 à¨¬¥à ᮧ¤ ­¨ï ¬®¤ã«¥© ­  C ¬®¦­® ¯®á¬®âà¥âì ¢ ª â «®£¥ modules/kolibri. ’ ª¨¥
128
 ¬®¤ã«¨ áâ â¨ç¥áª¨ «¨­ªãîâáï á á ¬¨¬ ¨­â¥à¯à¥â â®à®¬ ¨, ᮮ⢥âá⢥­­®,
127
 ¬®¤ã«¨ áâ â¨ç¥áª¨ «¨­ªãîâáï á á ¬¨¬ ¨­â¥à¯à¥â â®à®¬ ¨, ᮮ⢥âá⢥­­®,
129
 㢥«¨ç¨¢ îâ ¥£® à §¬¥à. „«ï á­¨¦¥­¨ï ­ ª« ¤­ëå à á室®¢ ª®¬¯®­¥­âë TinyPy
128
 㢥«¨ç¨¢ îâ ¥£® à §¬¥à. „«ï á­¨¦¥­¨ï ­ ª« ¤­ëå à á室®¢ ª®¬¯®­¥­âë TinyPy
130
 ª®¬¯¨«¨àãîâáï ¢ ®¤¨­ ®¡ê¥ªâ­ë© ¬®¤ã«ì,   ä ©«ë ¨á室­ëå ⥪á⮢ ¢ª«îç îâáï á
129
 ª®¬¯¨«¨àãîâáï ¢ ®¤¨­ ®¡ê¥ªâ­ë© ¬®¤ã«ì,   ä ©«ë ¨á室­ëå ⥪á⮢ ¢ª«îç îâáï á
131
 ¯®¬®éìî ¤¨à¥ªâ¨¢ë #include. „®¯®«­¨â¥«ì­ë¥ ¬®¤ã«¨ ¬®£ãâ ª®¬¯¨«¨à®¢ âìáï ª ª ¢
130
 ¯®¬®éìî ¤¨à¥ªâ¨¢ë #include. „®¯®«­¨â¥«ì­ë¥ ¬®¤ã«¨ ¬®£ãâ ª®¬¯¨«¨à®¢ âìáï ª ª ¢
132
 ®â¤¥«ì­ë¥ ®¡ê¥ªâ­ë¥ ä ©«ë, ¢ í⮬ á«ãç ¥ ­ã¦­® ¤®¯¨á âì ¨å ¢ Makefile, ¨«¨
131
 ®â¤¥«ì­ë¥ ®¡ê¥ªâ­ë¥ ä ©«ë, ¢ í⮬ á«ãç ¥ ­ã¦­® ¤®¯¨á âì ¨å ¢ Makefile, ¨«¨
133
 â®ç­® â ª ¦¥ ¯®¤ª«îç âìáï ¤¨à¥ªâ¨¢®© include.
132
 â®ç­® â ª ¦¥ ¯®¤ª«îç âìáï ¤¨à¥ªâ¨¢®© include.
134
 
133
 
135
 ‚ ¬®¤ã«¥ ¤®«¦­  ¯à¨áãâá⢮¢ âì äã­ªæ¨ï ¨­¨æ¨ «¨§ æ¨¨ ®¡ëç­® ®­  ­ §ë¢ ¥âáï
134
 ‚ ¬®¤ã«¥ ¤®«¦­  ¯à¨áãâá⢮¢ âì äã­ªæ¨ï ¨­¨æ¨ «¨§ æ¨¨ ®¡ëç­® ®­  ­ §ë¢ ¥âáï
136
 _init. Ž­  ¢ë§ë¢ ¥âáï ¢ tpmain áࠧ㠯®á«¥ ¨­¨æ¨ «¨§ æ¨¨ ¢¨àâã «ì­®©
135
 _init. Ž­  ¢ë§ë¢ ¥âáï ¢ tpmain áࠧ㠯®á«¥ ¨­¨æ¨ «¨§ æ¨¨ ¢¨àâã «ì­®©
137
 ¬ è¨­ë, ᮧ¤ ñâ á«®¢ àì  íªá¯®àâ¨à㥬ëå ®¡ê¥ªâ®¢ ¨ ¤®¡ ¢«ï¥â ¥£® ¢ ¯à¥¤®¯à¥¤¥«ñ­­ë© á«®¢ àì modules.
136
 ¬ è¨­ë, ᮧ¤ ñâ á«®¢ àì  íªá¯®àâ¨à㥬ëå ®¡ê¥ªâ®¢ ¨ ¤®¡ ¢«ï¥â ¥£® ¢ ¯à¥¤®¯à¥¤¥«ñ­­ë© á«®¢ àì modules.
138
 
137
 
139
 —â®¡ë ®¯à¥¤¥«¨âì TinyPy-äã­ªæ¨î, ­ã¦­® ᮧ¤ âì ®¡ëç­ãî äã­ªæ¨î ­  C ¢¨¤ 
138
 —â®¡ë ®¯à¥¤¥«¨âì TinyPy-äã­ªæ¨î, ­ã¦­® ᮧ¤ âì ®¡ëç­ãî äã­ªæ¨î ­  C ¢¨¤ 
140
 
139
 
141
tp_obj myfunc(tp_vm *tp);
140
tp_obj myfunc(tp_vm *tp);
142
 
141
 
143
 3.3 Œ®¤ã«¨ ­  FASM.
142
 3.3 Œ®¤ã«¨ ­  FASM.
144
 
143
 
145
Œ®¤ã«ì ­  FASM ¯¨è¥âáï  ­ «®£¨ç­®, ­® ¢á¥£¤  ª®¬¯¨«¨àã¥âáï ¢ ®â¤¥«ì­ë©
144
Œ®¤ã«ì ­  FASM ¯¨è¥âáï  ­ «®£¨ç­®, ­® ¢á¥£¤  ª®¬¯¨«¨àã¥âáï ¢ ®â¤¥«ì­ë©
146
®¡ê¥ªâ­ë© ä ©«. à¨¬¥à ¬®¦­® ¯®á¬®âà¥âì ¢ ª â «®£¥ fasm_modules. Œ®¤ã«ì
145
®¡ê¥ªâ­ë© ä ©«. à¨¬¥à ¬®¦­® ¯®á¬®âà¥âì ¢ ª â «®£¥ fasm_modules. Œ®¤ã«ì
147
kolibri_dbg íªá¯®àâ¨àã¥â ®¤­ã äã­ªæ¨î debug_print, ¢ë¢®¤ïéãî áâப㠭  ¤®áªã
146
kolibri_dbg íªá¯®àâ¨àã¥â ®¤­ã äã­ªæ¨î debug_print, ¢ë¢®¤ïéãî áâப㠭  ¤®áªã
148
®â« ¤ª¨.
147
®â« ¤ª¨.
149
 
148
 
150
 4. Ž¡§®à ¬®¤ã«ï kolibri.
149
 4. Ž¡§®à ¬®¤ã«ï kolibri.
151
 
150
 
152
 à®¤®«¦¥­¨¥ á«¥¤ã¥â.
151
 à®¤®«¦¥­¨¥ á«¥¤ã¥â.