forked from KolibriOS/kolibrios
tinypy: added some Russian documentation.
git-svn-id: svn://kolibrios.org@2053 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
4c3f814d33
commit
03699fe762
152
programs/develop/tinypy/tp_kolibri.txt
Normal file
152
programs/develop/tinypy/tp_kolibri.txt
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
Ž¡§®à ¨â¥à¯à¥â â®à TinyPy ¨ § ¬¥âª¨ ¯® ¥£® ¤ ¯â 樨 ª à ¡®â¥ ¢ Š®«¨¡à¨Ž‘.
|
||||||
|
|
||||||
|
1. —â® â ª®¥ TinyPy ¨ 祬 ® å®à®è ¢ ¯« ¥ ¯®àâ¨à®¢ ¨ï
|
||||||
|
|
||||||
|
TinyPy - ¨â¥à¯à¥â â®à Python-¯®¤®¡®£® ï§ëª , ᮧ¤ ë© ”¨«®¬
|
||||||
|
•íáᨠ(Phil Hassey), ®â«¨ç î騩áï ®ç¥ì ¥¡®«ì訬¨ à §¬¥à ¬¨: ¢ë¡®à®¬ ®¯æ¨©
|
||||||
|
ª®¬¯¨«ï樨 ¬®¦® ¤®¡¨âìáï à §¬¥à®¢ ¨á¯®«ï¥¬®£® ¬®¤ã«ï ¢ ¯à¥¤¥« å 64 ª¨«®¡ ©â.
|
||||||
|
|
||||||
|
<20>à¨ à §à ¡®âª¥ ¯à¨«®¦¥¨© ¤«ï Š®«¨¡à¨ ¢ ¤àã£¨å ®¯¥à 樮ëå á¨á⥬ å
|
||||||
|
¤®áâ㯥 ¤®¢®«ì® è¨à®ª¨© ¢ë¡®à ªà®áá-ª®¬¯¨«ïâ®à®¢. <20> ¡®à á।áâ¢ à §à ¡®âª¨ ¢
|
||||||
|
á ¬®© Š®«¨¡à¨ ¤® ¥¤ ¢¥£® ¢à¥¬¥¨ ¡ë« ®£à ¨ç¥ FASM. Œ®¦® ¯à¥¤¯®«®¦¨âì, çâ®
|
||||||
|
¢®§¬®¦®áâì ᮧ¤ ¢ âì ¯à®£à ¬¬ë ¢ á ¬®© á¨á⥬¥ â ª®¬ «¥£ª®¨§ãç ¥¬®¬ ¨
|
||||||
|
à á¯à®áâà ñ®¬ ï§ëª¥, ª ª Python, ¯®¢ëè ¥â ¯à¨¢«¥ª ⥫ì®áâì á¨áâ¥¬ë ¤«ï
|
||||||
|
¯®«ì§®¢ ⥫ï, ¤ «ñª®£® ®â ¯à®£à ¬¬¨à®¢ ¨ï áᥬ¡«¥à¥.
|
||||||
|
|
||||||
|
TinyPy ®ª § «áï «ñ£®ª ¢ ¯®àâ¨à®¢ ¨¨: § ç¨â¥«ì ï ç áâì ¥£® ¯¨á á ¬®¬
|
||||||
|
Python, ®áâ «ì ï ç áâì - C, ¨áå®¤ë¥ â¥ªáâë § ¨¬ îâ çãâì ¡®«ìè¥ 200 Š¡.
|
||||||
|
„«ï ª®¬¯¨«ï樨 㦠⮫쪮 áâ ¤ àâ ï ¡¨¡«¨®â¥ª libc. ˆ§ ¥ñ ¨á¯®«ì§ã¥âáï
|
||||||
|
¢á¥£® ®ª®«® ¯®«ãâ®à ¤¥áï⪮¢ äãªæ¨© (vsnprintf/vsprintf, malloc/memcpy/memmove/free,
|
||||||
|
fopen/fread/fwrite/fclose).
|
||||||
|
|
||||||
|
‚ ¨â®£¥ à ¡®â ¯® ¯®àâ¨à®¢ ¨î TinyPy á®áâ®ï« ¨§ á«¥¤ãîé¨å ç á⥩:
|
||||||
|
1. <20> ¯¨á ¨¥ Makefile ¤«ï ᡮન ª®¬¯¨«ïâ®à®¬ GCC á ¨á¯®«ì§®¢ ¨¥¬
|
||||||
|
menuetlibc.
|
||||||
|
2. „®¡ ¢«¥¨¥ ¢ menuetlibc ¥¤®áâ îé¨å äãªæ¨© vsnprintf/vsprintf.
|
||||||
|
3. <20>®¤ª«î票¥ ¡¨¡«¨®â¥ª¨ Š®«¨¡à¨ ¤«ï à ¡®âë á ª®á®«ìî.
|
||||||
|
4. ˆ ª®¥ç®, ®â«®¢ à §®®¡à §ëå ¬¥«ª¨å ¡ £®¢ (ª ª ¦¥ ¡¥§ í⮣®!).
|
||||||
|
|
||||||
|
2. ‚®§¬®¦®á⨠TinyPy.
|
||||||
|
|
||||||
|
2.1. ’¨¯ë ¤ ëå.
|
||||||
|
|
||||||
|
Š ¦¤ë© ®¡ê¥ªâ ¢ á।¥ TinyPy ¯à¥¤áâ ¢«ï¥âáï 16-¡ ©â®¢®© áâàãªâãன tp_obj.
|
||||||
|
<EFBFBD>¥à¢ë¥ 4 ¡ ©â § ¨¬ ¥â ⨯, ¨ § 票¥ ¯®á«¥¤ãîé¨å 12 ¡ ©â § ¢¨á¨â ®â ¥£®.
|
||||||
|
„®áâã¯ë á«¥¤ãî騥 ⨯ë: TP_NONE, TP_NUMBER, TP_STRING, TP_DICT, TP_LIST,
|
||||||
|
TP_FNC, TP_DATA.
|
||||||
|
|
||||||
|
TP_NONE - ᮮ⢥âáâ¢ã¥â ¥¤¨á⢥®¬ã ®¡ê¥ªâã None. <20>®«ìè¥ ¯à® ¥£® ᪠§ âì
|
||||||
|
¥ç¥£®.
|
||||||
|
|
||||||
|
TP_NUMBER - ç¨á«®, åà ¨âáï ª ª float. …᫨ ç¨á«® ®â«¨ç ¥âáï ®â ¡«¨¦ ©è¥£®
|
||||||
|
楫®£® ¬¥ìè¥, 祬 10^(-6), ®® áç¨â ¥âáï 楫ë¬, ¨ ¯à¨ ¯¥ç ⨠¢ë¢®¤¨âáï
|
||||||
|
ª ª 楫®¥. ’ ª¦¥ ª í⮬ã ⨯㠮â®áïâáï «®£¨ç¥áª¨¥ True ¨ False.
|
||||||
|
<20>®¤¤¥à¦¨¢ îâáï à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à 樨 +,-,*,/,%, ¡¨â®¢ë¥ << ¨ >>, «®£¨ç¥áª¨¥
|
||||||
|
|, &.
|
||||||
|
|
||||||
|
<20>ਬ¥à:
|
||||||
|
print(2+2*2, 7/3, (-7)%3, 1==True, 0==False)
|
||||||
|
|
||||||
|
‚뢮¤¨â:
|
||||||
|
6 2.333333 -1 1 1
|
||||||
|
|
||||||
|
‡ ¬¥â¨¬ áà §ã, çâ® print ï¥âáï äãªæ¨¥© (ª ª ¢ Python 3), â® ¥áâì ¯ à ¬¥âàë
|
||||||
|
®¡ï§ â¥«ì® ãª §ë¢ âì ¢ ᪮¡ª å.
|
||||||
|
|
||||||
|
TP_STRING - áâப . <20>®¤¤¥à¦¨¢ îâáï: ¯à®¢¥àª ¢å®¦¤¥¨ï ("str1" in "str2"), á१ë s[:b], s[a:b],
|
||||||
|
s[a:], äãªæ¨¨ len, index, join, split, find, strip, replace.
|
||||||
|
|
||||||
|
TP_DICT - á«®¢ àì, ® ¦¥ áá®æ¨ â¨¢ë© ¬ áᨢ. <20>®¤¤¥à¦¨¢ ¥âáï ¤®¡ ¢«¥¨¥
|
||||||
|
®¢®£® í«¥¬¥â ¨ ¢á¥å í«¥¬¥â®¢ ¤à㣮£® á«®¢ àï. <20>¥à¥¡®à ¯® ¢á¥¬ ª«îç ¬ ¨
|
||||||
|
㤠«¥¨¥ í«¥¬¥â®¢ ¯®ª ¥ ¯®¤¤¥à¦¨¢ ¥âáï. ‘«®¢ ਠ⠪¦¥ ïîâáï 㤮¡ë¬ ᯮᮡ®¬
|
||||||
|
¯à¥¤áâ ¢«¥¨ï ®¡ê¥ªâ®¢, ¢ ç áâ®áâ¨, ¥á«¨ d á«®¢ àì, â® § ¯¨á¨ d.key ¨
|
||||||
|
d['key'] à ¢®§ çë. ‚ í⮬ TinyPy ¥¬®£® ¯®¬¨ ¥â JavaScript.
|
||||||
|
|
||||||
|
TP_LIST - ᯨ᮪. <20>®¤¤¥à¦¨¢ îâáï: ¯¥à¥¡®à ¯® í«¥¬¥â ¬ (for el in list),
|
||||||
|
äãªæ¨¨ len, append/appendx, extend, insert/insertx, pop, find, index, sort.
|
||||||
|
’ ª¦¥ ¯®¤¤¥à¦¨¢ ¥âáï äãªæ¨ï range. reverse() ¯®ª ¥ ¯®¤¤¥à¦¨¢ ¥âáï.
|
||||||
|
|
||||||
|
TP_FNC - äãªæ¨ï. <20>ë¢ ¥â 2 ⨯®¢ - ®¡ëç ï äãªæ¨ï ¨ ¬¥â®¤, ®â«¨ç îâáï
|
||||||
|
¯®à浪®¬ ¢ë§®¢ .
|
||||||
|
|
||||||
|
TP_DATA - ¢ãâ२¥ áâàãªâãàë TinyPy.
|
||||||
|
|
||||||
|
2. ‚®§¬®¦®á⨠TinyPy ¢ áà ¢¥¨¨ á "¡®«ì訬" Python
|
||||||
|
|
||||||
|
"what tinypy won't be:
|
||||||
|
- a full implementation of Python;
|
||||||
|
- totally compatible with Python"
|
||||||
|
"roadmap.txt", tinypy sources
|
||||||
|
|
||||||
|
‘¨â ªá¨á ï§ëª TinyPy ®ç¥ì ¯®å®¦ Python, ® ¬®£¨¥ áãé¥á⢥ë¥
|
||||||
|
¢®§¬®¦®á⨠Python ¥ ¯®¤¤¥à¦¨¢ îâáï:
|
||||||
|
|
||||||
|
- ¨â¥à â®àë ¨ á®¯à®£à ¬¬;
|
||||||
|
- á¨â ªá¨ç¥áª¨© "á å à" ¤«ï ®¡ê¥¨ï ᯨ᪮¢ ¨ á«®¢ ३, ¯®¤®¡¨¥
|
||||||
|
odd_squares = [a*a for a in range(100) if a%2];
|
||||||
|
- ¨â¥à ªâ¨¢ ï ª®á®«ì
|
||||||
|
- ¯¥à¥¤ ç ¯ à ¬¥â஢ ç¥à¥§ ARGV
|
||||||
|
|
||||||
|
‚ ¡¨¡«¨®â¥ª¥ menuetlibc ¯à®æ¥¤ãà à §¡®à ¯ à ¬¥â஢ ª®¬ ¤®© áâப¨ ¯®ª
|
||||||
|
¥ ¤ ¯â¨à®¢ ¤«ï Š®«¨¡à¨Ž‘, ¯®í⮬㠯ਠ§ ¯ã᪥ TinyPy ¯à¨å®¤¨âáï ¢¢®¤¨âì
|
||||||
|
¨¬ï ä ©« ¢àãçãî, â ª¦¥ ¥«ì§ï ¯¥à¥¤ ¢ âì ¯ à ¬¥âàë ¢ ª®¬ ¤®© áâப¥.
|
||||||
|
|
||||||
|
ˆ ª®¥ç®, ¥ å¢ â ¥â ®á®¢®© ᨫë Python - ¥£® áâ ¤ à⮩ ¡¨¡«¨®â¥ª¨.
|
||||||
|
|
||||||
|
3. <20> áè¨à¥¨¥ TinyPy.
|
||||||
|
|
||||||
|
<20> ¡®à ¢áâ஥ëå äãªæ¨© ¢ TinyPy ¤®áâ â®ç® ¡¥¤¥, ® § â® ¤®¡ ¢«¥¨¥ ®¢ëå
|
||||||
|
¬®¤ã«¥© ¤®áâ â®ç® ¯à®áâ®. <20> áᬮâਬ ᮧ¤ ¨¥ ¬®¤ã«¥© á ¬®¬ TinyPy,
|
||||||
|
C ¨ FASM.
|
||||||
|
|
||||||
|
3.1. Œ®¤ã«¨ TinyPy.
|
||||||
|
|
||||||
|
TinyPy ¯®¤¤¥à¦¨¢ ¥â ¬®¤ã«ì®¥ ¯à®£à ¬¬¨à®¢ ¨¥, ᮧ¤ ¨¥ ¬®¤ã«¥©
|
||||||
|
¯à¨æ¨¯¨ «ì® ¨ç¥¬ ¥ ®â«¨ç ¥âáï ®â Python. <20>ãáâì, ã á ¥áâì ¯à®áâ ï
|
||||||
|
¯à®£à ¬¬ ¨§ ¤¢ãå ä ©«®¢:
|
||||||
|
|
||||||
|
” ©« math.py:
|
||||||
|
def square(a):
|
||||||
|
return a*a
|
||||||
|
|
||||||
|
” ©« prog.py:
|
||||||
|
import math
|
||||||
|
|
||||||
|
if __name__=="__main__":
|
||||||
|
math.square(12)
|
||||||
|
|
||||||
|
‚ ç «¥ 㦮 ᪮¬¯¨«¨à®¢ âì ¬®¤ã«ì math.py ¢ ¡ ©â-ª®¤ ¯à¨ ¯®¬®é¨ ¯à®£à ¬¬ë
|
||||||
|
py2bc.py, ® à ¡®â ¥â ª ª ¢ Python, â ª ¨ ¢ TinyPy. ‚ ¯®á«¥¤¥¬ á«ãç ¥ 㦮
|
||||||
|
㪠§ âì £«®¡ «ìë© ¬ áᨢ ARGV=[0, 'math.py', 'math.tpc'], â ª ª ª ¯¥à¥¤ âì
|
||||||
|
¯ à ¬¥âàë ç¥à¥§ ª®¬ ¤ãî áâப㠯®ª ¥«ì§ï. <20>®á«¥ í⮣® ¬®¦® § ¯ãáâ¨âì
|
||||||
|
prog.py ¨§ TinyPy. ‘¨â ªá¨á "from module import function" ¯®ª ¥
|
||||||
|
¯®¤¤¥à¦¨¢ ¥âáï.
|
||||||
|
|
||||||
|
3.2 Œ®¤ã«¨ C.
|
||||||
|
|
||||||
|
<20>ਬ¥à ᮧ¤ ¨ï ¬®¤ã«¥© C ¬®¦® ¯®á¬®âà¥âì ¢ ª â «®£¥ modules/kolibri. ’ ª¨¥
|
||||||
|
¬®¤ã«¨ áâ â¨ç¥áª¨ «¨ªãîâáï á á ¬¨¬ ¨â¥à¯à¥â â®à®¬ ¨, ᮮ⢥âá⢥®,
|
||||||
|
㢥«¨ç¨¢ îâ ¥£® à §¬¥à. „«ï ᨦ¥¨ï ª« ¤ëå à á室®¢ ª®¬¯®¥âë TinyPy
|
||||||
|
ª®¬¯¨«¨àãîâáï ¢ ®¤¨ ®¡ê¥ªâë© ¬®¤ã«ì, ä ©«ë ¨á室ëå ⥪á⮢ ¢ª«îç îâáï á
|
||||||
|
¯®¬®éìî ¤¨à¥ªâ¨¢ë #include. „®¯®«¨â¥«ìë¥ ¬®¤ã«¨ ¬®£ãâ ª®¬¯¨«¨à®¢ âìáï ª ª ¢
|
||||||
|
®â¤¥«ìë¥ ®¡ê¥ªâë¥ ä ©«ë, ¢ í⮬ á«ãç ¥ 㦮 ¤®¯¨á âì ¨å ¢ Makefile, ¨«¨
|
||||||
|
â®ç® â ª ¦¥ ¯®¤ª«îç âìáï ¤¨à¥ªâ¨¢®© include.
|
||||||
|
|
||||||
|
‚ ¬®¤ã«¥ ¤®«¦ ¯à¨áãâá⢮¢ âì äãªæ¨ï ¨¨æ¨ «¨§ 樨 ®¡ëç® ® §ë¢ ¥âáï
|
||||||
|
<modname>_init. Ž ¢ë§ë¢ ¥âáï ¢ tpmain áà §ã ¯®á«¥ ¨¨æ¨ «¨§ 樨 ¢¨àâ㠫쮩
|
||||||
|
¬ è¨ë, ᮧ¤ ñâ á«®¢ àì íªá¯®àâ¨à㥬ëå ®¡ê¥ªâ®¢ ¨ ¤®¡ ¢«ï¥â ¥£® ¢ ¯à¥¤®¯à¥¤¥«ñë© á«®¢ àì modules.
|
||||||
|
|
||||||
|
—â®¡ë ®¯à¥¤¥«¨âì TinyPy-äãªæ¨î, 㦮 ᮧ¤ âì ®¡ëçãî äãªæ¨î C ¢¨¤
|
||||||
|
|
||||||
|
tp_obj myfunc(tp_vm *tp);
|
||||||
|
|
||||||
|
3.3 Œ®¤ã«¨ FASM.
|
||||||
|
|
||||||
|
Œ®¤ã«ì FASM ¯¨è¥âáï «®£¨ç®, ® ¢á¥£¤ ª®¬¯¨«¨àã¥âáï ¢ ®â¤¥«ìë©
|
||||||
|
®¡ê¥ªâë© ä ©«. <20>ਬ¥à ¬®¦® ¯®á¬®âà¥âì ¢ ª â «®£¥ fasm_modules. Œ®¤ã«ì
|
||||||
|
kolibri_dbg íªá¯®àâ¨àã¥â ®¤ã äãªæ¨î debug_print, ¢ë¢®¤ïéãî áâப㠤®áªã
|
||||||
|
®â« ¤ª¨.
|
||||||
|
|
||||||
|
4. Ž¡§®à ¬®¤ã«ï kolibri.
|
||||||
|
|
||||||
|
<20>த®«¦¥¨¥ á«¥¤ã¥â.
|
Loading…
Reference in New Issue
Block a user