ÁªÃËÊ×Ò³ Эͬ¿ª·¢ ¹²´´Èí¼þ ¿ª·ÅÔ´Âë Èí¼þ¹¤³Ì ¹²´´ÂÛ̳ ¹ØÓÚÁªÃË
  ÄúµÄλÖà » 2004Äê10ÔÂ30ÈÕ  
ͨ¹ýSSLµÇ¼
ÐÂÓû§Í¨¹ýSSL×¢²á

ÍêÈ«Æ¥Åä   

glace
MaGuoLiang
²ÌÎÄÁÁ
רÀ¸ÕªÒª

רÀ¸¹ÜÀí


ÏîÄ¿Ãû³Æ: python:
ÂÛ̳: ä¯ÀÀÂÛ̳

ÌÖÂÛÂÛ̳: PythonÓ¦ÓÃÔÚÖйú

¹ÜÀí

By: ccba ( ²ÌÎÄÁÁ )   ¿É°®µÄ Python£ºPython ʵÏÖÄÚÄ» [ reply ]     2002-05-09 21:49
²É·Ã Vyper ºÍ Stackless Python ´´Ê¼ÈË


µ±´ó¶àÊý³ÌÐòԱ̸µ½ "Python" ʱ£¬ËûÃÇ¿ÉÄÜÏëµ½µÄÊÇÓÐʱ³ÆΪ "CPython"£¨ÒòΪËüÊÇÒÔ C ʵÏֵģ©µÄÕâÖÖÌض¨ÊµÏÖ¡£µ« Python ×÷ΪһÖÖÓïÑԹ淶£¬ÒÑËæ×Å Guido van Rossum µÄ²Î¿¼ÊµÏÖµÄÑݱä¶øʵÏÖÁ˶à´Î¡£±¾ÎÄ°üº¬¶ÔÁ½ÖַDZê×¼ Python -- Stackless ºÍ Vyper -- ´´Ê¼ÈË´øÓÐ×¢Ê͵IJɷá£

¾ÝÎÒÁ˽⣬ÏÖÔÚ¿ÉÒÔÏÂÔز¢ÔËÐÐËÄÖÖ Python µÄʵÏÖ£¬»¹ÓÐÒ»ÖÖʵÏÖÕýÔÚ´´½¨ÖС£Ã¿ÖÖʵÏÖ¶¼ÓÐÆä´æÔÚµÄÌØÊâÀíÓÉ£¬ÕâЩÀíÓÉ¿ÉÒÔÔÚÕâÀï´ÓʵÏÖ¿ª·¢Õß×Ô¼ºµÄ»°ÓïÀïÁ˽⵽¡£

¶Ô²»Í¬µÄƽ̨ÖØбàÒë±àÒëÆ÷»ò½âÊÍÆ÷Ëù²úÉúµÄʵÏÖÖ»ÊÇÂÔÓв»Í¬£¨¿ÉÄÜÓÐÉÙÁ¿µÄÌõ¼þÐÔ±àÒëºÍ¸ü¸Ä£©£¬µ«×îÓÐȤµÄʵÏÖ£¨¾ÍÎÒ¶øÑÔ£©Êdz¬Ô½Æ½Ì¨ÎÊÌâµÄÄÇЩ¡£Êµ¼ÊÉÏ£¬ÎÒÃÇÔÚÕâƪÎÄÕÂÖн«Òª¿´µ½µÄÄÇЩ Python ʵÏÖ´ó¶à±¾Éí¾ÍÊǶàƽ̨¡£ÊµÏֵĸÅÄîÒ²Óë°æ±¾µÄ¸ÅÄîÓÐËùÇø±ð¡£¾ÍÓïÑÔÌØÐÔ¶øÑÔ£¬ÕâÀï̸µ½µÄËùÓÐʵÏÖ»ù±¾É϶¼´¦ÓÚͬһÓïÑÔ°æ±¾ (1.5.2)¡£ºÜÃ÷ÏÔ£¬CPython 1.6/2.0/3000 ÒѾ­ÓÐÒ»¸ö²¿·ÖÊôÓÚеĻù±¾ÊµÏÖ£¬µ«ÆäËüʵÏÖ¿ÉÒÔͬÑùµØÓëÄÇЩÓïÑÔ¼¶±ðµÄÌØÐÔÒ»Ö¡£

ÖØÐÂʵÏÖÁËÄÄЩ±à³ÌÓïÑÔ£¬ÊµÏÖµÄƵÂÊÔõÑù£¬³öÓÚʲôԭÒò£¬ÒÔ¼°ÓÉ˭ʵÏÖ£¿ÒªÐÎÈÝÕâ×éÓïÑԷdz£À§ÄÑ¡£Ä³Ð©Óë Python ¼¸ºõ´¦Í¬Ò»µØλµÄÁ÷ÐÐÓïÑÔ -- ÀýÈç perl¡¢REBOL ºÍ PHP -- Ö»ÓÐÒ»ÖÖʵÏÖ£¨±àÒë³ÉÐí¶àƽ̨£©¡£TCL Óë Perl/PHP ×îΪÏàËÆ£¬µ«È·ÊµÓÐÒ»ÖÖ³ÆΪ Jacl µÄ Java ƽ̨°æ±¾¡£´ÓÁíÒ»¸ö¼«¶ËÀ´¿´£¬ÀýÈç C¡¢Awk¡¢Cobol¡¢REXX ºÍ Java ÕâÑùµÄÓïÑÔ£¬Ã¿¸ö¶¼Ôø¾­±»ÎÞÊý´ÎµØʵÏÖ¡£µ«ÄÇЩÔÙʵÏÖÊÇΪÁËÐí¿ÉºÍÓªÏúµÈ¿¼ÂÇ£¬¶ø²»ÊdzöÓÚʵÏֵĸÅÄîºÍ³éÏóÎÊÌâ¡£ËƺõÓÐÌØÊâѧÊõÒâζµÄÄÇЩÓïÑÔÖØÐÂʵÏֵúܶࣨÌرðÊǺ¯ÊýÐÔ¡¢Âß¼­ÐÔ»ò³¬´¿ OOP ÓïÑÔ£¬ÀýÈçSmalltalk ºÍ Eiffel£©¡£Lisp ûÓм¸°Ù¸öÒ²Óм¸Ê®¸öʵÏÖºÍÅÉÉú¡£

ÓëÎÒÃǽ«ÒªÌÖÂÛµÄ Python ʵÏÖ²»Í¬£¬Lisp µÄÅÉÉúÔÚÌṩÐÂʵÏÖµÄͬʱÍùÍùÒýÈëÐí¶àÐÂÓ±µÄÓïÑÔÌØÐÔ¡£Python ʵÏÖÔںܴó³Ì¶ÈÉÏʵÏÖºÍÖ÷Òª CPython °æ±¾ÏàͬµÄ Python ÓïÑÔ¡£ËùÓÐÏÖÓеİ汾¶¼ÊÇ¿ª·ÅÔ´ÂëºÏ×÷ŬÁ¦µÄ½á¹û£¬ÕâÖÖÇé¿öÏ£¬´´ÐÂÓëÊг¡¶¨Î»Ã»ÓÐÌ«´ó¹Øϵ£¬ÉõÖÁÓëÓÐʱµ¼Ö¿ª·ÅÔ´ÂëÏîÄ¿·ÖÁѵÄÐí¿ÉÖ¤Õù¶·Ò²Ã»ÓÐʲô¹Øϵ¡£¶øÇÒ£¬²»Í¬µÄ Python °æ±¾Ò²²»ÊÇÕæÕý´«Í³ÒâÒåÉϵÄÖ§Á÷£¬¶ø¼¯ÖÐÓÚ²»Í¬µÄ¸ÅÄÕýÊÇÕâЩ¸ÅÄîÖ¤Ã÷Ëü±¾Éí¾ÍÊÇ Python ʵÏÖ¡£

Á½ÖÖûÓÐÏêϸ˵Ã÷µÄʵÏÖÊÇ JPython ºÍ Python.NET¡£JPython ÊÇÒÔ Java ±àдµÄ±àÒëÆ÷£¬ÓÃÓÚ½« Python Ô´´úÂë±àÒë³É Java ×Ö½ÚÂë¡£Python Ó¦ÓóÌÐò×îÖÕÊÇÔÚ JVM£¨Óû§¿ÉÄܲ»ÖªµÀËüÊÇÒÔ Python Ô´´úÂë¶ø²»ÊÇ Java ±àдµÄ£¬ËûÃÇÒ²²»ÐèÒª¹ØÐÄ£©ÖÐÔËÐеġ£Python.NET ÊǸö»¹Î´½»¸¶µÄʵÏÖ£¬µ«Ëü -- ÖÁÉÙÔڽṹÉÏ -- ½«Óë JPython ÏàËÆ¡£Python.NET ½«Èà Python ²ÎÓ뵽΢ÈíµÄ .NET ÏîÄ¿ÖУ¬¸ÃÏîÄ¿»ù±¾ÉϽӽüÓÚÒ»¸ö¿ÉÒÔÔËÐÐÒÔ¸÷ÖÖÓïÑÔ£¨ÀýÈçÐ嵀 C#¡¢Visual¡¢Basic¡¢C++£¬ÒÔ¼° Python£©±àдµÄ³ÌÐòµÄ·Ç Java VM¡£ÇëËæʱ¹Ø×¢ÕâЩʵÏֵĿª·¢Õß·¢²¼µÄÐÅÏ¢¡£

ÓÐÁ½ÖÖ´ÓÀíÂ۽ǶÈÉϽ²Ê¹ÈË×ÅÃÔµÄʵÏÖ£¬ÏÂÃ棬¾ÍÈÃÎÒÃÇÌýÌýËüÃǵĿª·¢Õ߶¼ËµÁËЩʲô£º¿ª·¢ Vyper µÄ John Max Skaller ºÍ¿ª·¢Stackless Python µÄ Christian Tismer¡£

Vyper£º²É·Ã´´Ê¼ÈË John Max Skaller
Vyper ÊÇÒÔº¯ÊýÐÔÓïÑÔ Ocaml (3.00) ±àдµÄ Python ÓïÑÔµÄʵÏÖ¡£ÓëÆäËü Python ʵÏֱȽϣ¬Vyper ÌṩÁËһЩ£¨¿ÉÑ¡µÄ£©ÓïÑÔÀ©Õ¹£º¸üÇ¿´óµÄ·¶Î§È·¶¨¹æÔòºÍһЩеĺ¯ÊýÐÔÌØÐÔ¡£Vyper ÏÖÔÚ²»ÔÙ½øÐпª·¢£¬µ«ËüÒÔºó¿ÉÄܵõ½ÔöÇ¿£¨Çë²ÎÔIJο¼×ÊÁÏ»ñµÃ Vyper£¬ÒÔ¼°ËüµÄÔ´´úÂë¡££©¡£ÎÒÎÊ Vyper µÄ´´Ê¼ÈË John Max Skaller Óйؽ¨Ôì Vyper µÄ¶¯»ú¡£

Skaller£º½¨Ôì Vyper ÓÐÁ½¸öÔ­Òò£ºÊ×ÏÈ£¬ÎÒϲ»¶ Python£¬ÌرðÊÇËüµÄ¼òµ¥ÐÔ¡£µ«ÎÒ²»Ï²»¶Ëüȱ·¦·¶Î§È·¶¨ÐÔ£¬·²Ê¶¼ÐèÒª×ö´óÁ¿¸ü¸ÄÀ´È¡µÃ½øÕ¹¡£Òò´ËÎÒ¾ö¶¨ÔÚ±£ÁôÓë Python ¼æÈÝÐÔµÄͬʱ£¬Í¨¹ý½¨Ôì¸ß¼¶µÃ¶àµÄ±à³ÌÓïÑÔ£¬²¢ÔÚÆäÖн¨Ô캯ÊýÐÔ±à³ÌÓïÑÔµÄijЩ¸ÅÄîÀ´¸ÄÕýÕâЩÎÊÌâ¡£



µÚ¶þ¸öÔ­ÒòÊÇÐÔÄÜ¡£ÎÒÓÐÒ»¸ö³Æ֮Ϊ interscript µÄÖ÷Òª Python ³ÌÐò£¬Ò»¸öÓжÁдÄÜÁ¦µÄ±à³Ì (LP) ¹¤¾ß£¬Ëü²»½öÊܵ½ Python ÖÐȱ·¦Á¼ºÃ½á¹¹£¨ÈçÉÏËùÊö£©£¬¶øÇÒ»¹ÊÜÐÔÄÜÎÊÌâµÄÀ§ÈÅ¡£



Mertz£º¼ÈÈ»ÎÄ×Ö±à³ÌÊÇ´´½¨ Vyper µÄÒ»¸ö¶¯»ú£¬ÄúÊÇ·ñÄܼòµ¥½éÉÜÒ»ÏÂʲôÊÇÓжÁдÄÜÁ¦µÄ±à³Ì£¬ÎÒÏëÕâÑù¶Ô¶ÁÕß»áÓÐËù°ïÖú¡£



Skaller£ºËüµÄ¹¹Ë¼ÊDz»ÐèҪΪ³ÌÐò¼Ç¼Îĵµ£¨ÔÚ±à³Ìºó£©£¬¶øÊDZàд °üº¬³ÌÐòµÄÎĵµ¡£[Ëü]ÓÉ Donald Knuth ·¢Ã÷¡£



interscript ¶ÀÁ¢ÓÚÅÅ×ֺͱà³ÌÓïÑÔ£¬¿ÉÒÔͨ¹ýÒÔ Python ±àдµÄÈÎÒâ¿ÉÖ´ÐдúÂëÔÚÎĵµÖÐÀ©Õ¹¡£¼´£¬¾¡¹ÜÓдóÁ¿Ô¤¹¹½¨µÄ¹¹Ôì¿ÉÒÔÂú×ã¡°ÈÕ³£¡±ÐèÒª£¬µ«Ò»¸öÈË¿ÉÒÔËæÒâ Éú³É´úÂëºÍÎĵµ¡£



µ«³ý·Ç LP ºÜ¿ì£¬·ñÔòËüÓÀÔ¶²»ÄÜ×÷ΪÖ÷Á÷¼¼Êõ½ÓÄÉ¡£ÎÒ»¨·ÑÁËÐí¶à¹¤×÷ʹËü±äµÃ¿ìһЩ£¬µ«½á¹û£¬Python »¹ÊÇÎÞ·¨¿ìµ½Ö´ÐÐËùÐèÒªµÄ²Ù×÷£º½âÊÍÓïÑÔÖÐÖð¸ö×Ö·ûµØ´¦Àí×Ö·û´®¾ÍÊÇÎÞ·¨¿ìÆðÀ´¡£



ËùÒÔÏëÒª¹¹½¨Ò»¸ö Python ±àÒëÆ÷£¬ÖÁÉÙËüÄÜÉú³É¿ÉÒÔÓÅ»¯ÕâÖÖ´úÂëµÄ»úÆ÷¶þ½øÖÆÎļþ¡£ÕâÊÇijЩ Vyper À©Õ¹µÄÒ»¸öÔ­Òò£¬´Ó¶øʹÓÅ»¯³ÉΪ¿ÉÄÜ¡£



ÎÒ´ÓÀ´Ã»Óбàд¹ý±àÒëÆ÷£»¹¹Ë¼ÊDZàдһ¸ö½âÊÍÆ÷£¬¿ÉÒÔÔÚ±àÒëʱװÈëËùÓгÌÐòÄ£¿é£¬È»ºó½«²úÉúµÄ×Öµä ¶³½áµ½¿ÉÖ´Ðжþ½øÖÆÎļþÖС£ÏÖÔÚµÄ Vyper ¾ÍÊÇÕâÑùµÄ½âÊÍÆ÷£¬ÎÒÔÚÀ©Õ¹ÓïÑԵĹý³ÌÖÐÕÒµ½Á˺ܶàÀÖȤ£¬µ«ÎÒÕÒµ½ÁËÒ»·Ý±àд±àÒëÆ÷µÄ´øн¹¤×÷£¬ÏÖÔÚ¾ÍûÓÐʱ¼ä¼ÌÐøÕâÒ»¹¤×÷ÁË¡£



Mertz£ºVyper µÄÒ»¸öÌرðÐÂÓ±µÄÌØÐÔÊÇÆäÒÔ Ocaml µÄʵÏÖ¡£Ðí¶à¶ÁÕß¿ÉÄÜÈÏΪ±àÒëÆ÷£¯½âÊÍÆ÷ÊÇÒÔ C ʵÏֵģ¨Óë±¾Öʽӽü£©£»»òÕ߶ÔÓÚÒѶ¨ÒåµÄ»úÆ÷£¬±àÒëÆ÷¿ÉÒÔÒÔ Python ×ÔÉíʵÏÖ¡£ÎªÊ²Ã´Ê¹Óà Ocaml£¿



Skaller£ºOcaml Ö±½ÓÉú³É»úÆ÷´úÂë¡£Ïà¶ÔÓÚ C À´Ëµ£¬ËüÔËÐеÃÏ൱²»´í£¬¶ÔÓÚijЩ¹¤×÷ÉõÖÁ»á¸ü¿ì¡£Ëü»¹´øÓÐÒ»¸öÎÞÓÃÐÅÏ¢ÊÕ¼¯Æ÷¡£Ocaml ÊÇÒ»Öָ߼¶ÓïÑÔ£¬Óë C¡¢C++¡¢Python »ò´ó¶àÊýÆäËüËùνµÄ¡°¸ß¼¶¡±ÓïÑÔ²»Ò»Ñù¡£



Ocaml ºÍ Python Ò»Ñù£¬ÊÇ»ìºÏµÄº¯ÊýÐÔ£¯ÃüÁîÓïÑÔ¡£Vyper ±È Python ¸ü¶àµØÇ¿µ÷ Python µÄº¯ÊýÐÔ·½Ãæ¡£Ëü¾ÀÕýÁËһЩÃ÷ÏÔµÄÉè¼ÆȱÏÝ£¬ÌرðÊÇȱÉÙ´Ê·¨·¶Î§È·¶¨µÄÎÊÌâ¡£



ÔÚʵ¼ÊÖУ¬º¯ÊýÐÔ±à³ÌºóÃæÓÐÇ¿´óµÄÀíÂÛÖ§³Ö£¬¶ø¶ÔÓÚÃüÁî±à³ÌÔòûÓÐÈκÎÀíÂÛÖ§³Ö¡£ÕâÒâζ×Å´Ó¿ª·¢½Ç¶ÈÀ´Ëµ£¬º¯ÊýÐÔ±à³ÌÓïÑÔ±ÈÈκÎÃüÁî±à³ÌÓïÑÔͨ³£ÒªºÃµÃ¶à£¬µ«ÍùÍùȱ·¦Óë»ù±¾Ó²¼þ¹æÔòÌåϵ½á¹¹Ïà½üµÄϵͳÐÔÄÜ¡£



ÓÐÒâ˼µÄÊÇ£¬ÏÂÒ»ÖÖʵÏÖ£¬¾¡¹ÜÀ´×Ô²»Í¬½Ç¶È£¬ÔÚijЩ·½ÃæҪʤ¹ý Vyper£º

Skaller£º¸ÃÏîÄ¿µÄÁíÒ»ÖÂÃü¡°É±ÊÖ¡±ÊÇ Stackless Python¡£ËüÖ´ÐеÄijЩÈÎÎñÊÇÎÒµ±Ç°Ê¹ÓõıàÒëÆ÷ËùÖ´ÐеÄÈÎÎñ£¬¶øÕâЩÊÇ Vyper ¿ÉÄÜÓÀÔ¶¶¼×ö²»µ½£ºËüʹ¡°³¬ÇáÁ¿ÐÍÏ̡߳±£¨ÓÉʼþµ÷¶ÈÆ÷Çý¶¯µÄºÏ×÷¶àÈÎÎñ£©µÄʵÏÖ³ÉΪ¿ÉÄÜ¡£ Vyper ÊÇÒÔ Ocaml ʵÏֵģ¬¶øºóÕßʹÓûúÆ÷¶ÑÕ»£»±ØÐë±ÜÃâËü£¬ÒòΪ¶ÑÕ»Çл»£¨ÓÃÓÚͬʱ´ÓÒ»¸ö·þÎñÆ÷´¦ÀíÐí¶à¿Í»§»ú£©·Ç³£°º¹ó¡£



Stackless Python£º²É·Ã´´Ê¼ÈË Christian Tismer
µÚÒ»´Î¼ûµ½ Stackless Python ʱ£¬ËüÏóÊÇ CPython µÄÒ»¸öС֧Á÷¡£Ì¸µ½±àÂ룬Stackless ¶Ôʵ¼ÊµÄ Python C ´úÂëÖ»×öÁËСС¸ü¸Ä£¨²¢ÖØж¨Òå¡°ÊÂʵ¡±£©¡£²»¹ý£¬Christian Tismer£¨ Stackless Python µÄ´´Ê¼ÈË£©ÔÚ Stackless ÖÐÒýÈëµÄ¸ÅÄî·Ç³£Éî°Â¡£ËüÊÇ¡°ÑÓÐøÐÔ¡±µÄ¸ÅÄ²¢ÇÒÒÔ Python ¶ÔËûÃDZà³ÌµÄ·½·¨£©¡£

Òª³¢ÊÔÓÃ×î¼òµ¥µÄÊõÓï½âÊÍËü£¬ÑÓÐøÐÔ¾ÍÊÇÒ»ÖÖ±íʾ·¨£¬ÔÚ³ÌÐòÖеÄÌض¨µãÉÏ£¬³ÌÐòµÄÿÑùÊÂÎﶼ¿ÉÒÔÁ¬ÐøÖ´ÐС£ÑÓÐøÐÔÊÇÒÀÀµÓÚ³õʼÌõ¼þµÄDZÔÚ¡£²»ÊÇÒÔ´«Í³·½Ê½½øÐÐÑ­»·£¬Ëü¿ÉÄÜʹÓò»Í¬µÄ³õʼÌõ¼þµÝ¹éµ÷ÓÃÏàͬµÄ³ÖÐøÐÔ¡£ÎÒ¿´µ½¹ýµÄÒ»ÖÖ¸ÅÀ¨Ëµ·¨ÊÇ£¬´ÓÀíÂÛÉÏ˵£¬ÑÓÐøÐÔ¸ü»ù±¾²¢Î»ÓÚ Ã¿¸öÆäËü¿ØÖƽṹÏ¡£Èç¹ûÕâЩÏë·¨°ÑÄú¸ãºýÍ¿ÁË£¬²»±Øµ£ÐÄ£»ÕâÊÇÕý³£µÄ·´Ó¦¡£

ÔĶÁ²Î¿¼×ÊÁÏÖÐ Tismer µÄ±³¾°ÎÄÕÂÊǽøÒ»²½Àí½âµÄÁ¼ºÃ¿ª¶Ë¡£×îºÃÔÚÔĶÁ¸ÃÎÄÕºó¼ÌÐøÔĶÁËûµÄ²Î¿¼×ÊÁÏ¡£µ«¶ÔÄ¿Ç°À´Ëµ£¬ÈÃÎÒÃÇÔÚ¸üÒ»°ãµÄ¼¶±ðÉÏÓë Tismer ½øÐн»Ì¸£º

Mertz£ºStackless Python È·ÇÐÀ´ËµÊÇʲô£¿ÓÐʲô³õѧÕß¿ÉÒÔÀí½âµÄ¸ÅÄîÄܹ»½âÊÍÓÐ¹Ø Stackless µÄ²»Í¬Ö®´¦£¿



Tismer£ºStackless Python ÊÇÒ»ÖÖ²»ÔÚ C ¶ÑÕ»Éϱ£´æ״̬µÄ Python ʵÏÖ¡£ËüµÄÈ·ÓжÑÕ» -- Òª¶àÉÙÓжàÉÙ -- µ«ÕâЩÊÇ Python ¶ÑÕ»¡£



C ¶ÑÕ»²»ÄÜ´ÓÀýÈç C ÕâÑùµÄÓïÑÔÒԸɾ»µÄ·½Ê½½øÐÐÐ޸ģ¬³ý·ÇÒÔÔ¤ÆÚµÄ˳Ðò½øÐС£Ëü¶ÔÄúÊ©¼ÓÁ˺ܴóÏÞÖÆ£ºÄú±ØÐë»Øµ½ÕâÀÓëÄúÀ뿪µÄ·½ÏòÕýºÃÏà·´¡£



¡°ÆÕͨµÄ¡±³ÌÐòÔ±Ò»¿ªÊ¼²»»áÈÏΪÕâÊǸöÏÞÖÆ¡£ËûÃDZØÐë´Ó¿ªÊ¼¾ÍҪѧ»á½«Ï뷨תÏò¶ÑÕ»¡£¶ÑջûÓÐʲô»µ´¦£¬²¢ÇÒͨ³£ËüÃÇÊ©¼ÓµÄÖ´ÐÐ˳Ðò¾ÍÊÇʵ¼ÊÉϵÄ˳Ðò£¬µ«Õâ²¢²»Òâζ×ÅÎÒÃDZØÐëµÈ´ýÒ»¸öÕâÑùµÄ¶ÑÕ»ÐòÁÐÍê³É²ÅÄÜÔËÐÐÁíÒ»ÐòÁС£



³ÌÐòÔ±ÔÚ±ØÐëÖ´ÐзÇ×èÈûµ÷Óúͻص÷ʱÒâʶµ½ÕâÒ»µã¡£¶ÑջͻȻµ²×¡È¥Â·£¬ÎÒÃDZØÐëʹÓÃỊ̈߳¬»ò½«×´Ì¬Ã÷È·´æ´¢ÔÚ¶ÔÏóÖУ¬»òÕß¹¹½¨ÏÔʽµÄ¿ÉÇ뻶ÑÕ»µÈµÈ¡£Stackless µÄÄ¿µÄÊÇ°ïÖú³ÌÐòÔ±±ÜÃâÕâЩÎÊÌâ¡£



Mertz£ºStackless µÄÄ¿±êÊÇ´ïµ½Óë CPython 100% ¶þ½øÖƼæÈÝ¡£ÊÇÂð£¿



Tismer£ºStackless ´Ë¿Ì¾ÍÊÇ 100% µÄ¶þ½øÖƼæÈÝ¡£ÕâÒâζ×Å£º°²×°ÁË Python 1.5.2 ºó£¬ÓÃÎÒµÄ Python15.dll Ìæ»»£¬Ã¿¸öÎļþÈÔÄܹ¤×÷£¬°üÀ¨Ã¿¸öÀ©Õ¹Ä£¿é¡£Õâ²»ÊÇÄ¿±ê£¬¶øÊÇÒªÇó£¬ÒòΪÎÒ²»Ï£Íû¹Ø×¢ËùÓÐÀ©Õ¹¡£



Mertz£ºÎÒÈÏΪ Stackless Python ¾ø¶ÔÄÜÎüÒýÈËÃǶÔËü¼ÓÒÔÁ˽⡣ºÍ´ó¶àÊý½²Êµ¼ÊµÄ³ÌÐòÔ±Ò»Ñù£¬ÎÒÔÚÍêÈ«Àí½âËüʱÓöµ½ÁËÄÑÌ⣬µ«ÕâÊÇʹËüÏÔµÃÌرðÓÐȤµÄÒ»²¿·Ö¡£



Tismer£ºÊÇ°¡£¬ÎÒÒ²ºÜ½²Êµ¼Ê£¬Äú¿ÉÒÔÏëÏóÔÚûÓÐÈκγÖÐøÐÔ¸ÅÄ²¢ÇÒ²»ÖªµÀÔÚ Python ÖÐËüµ½µ×ÊÇʲôÑùµÄÇé¿öÏÂʵÏÖÕâÑùÒ»¼þ¶«Î÷ÓжàÀ§ÄÑ¡£ÎÞ·¨ÏëÏóijЩÊÂÎµ«ÒªÍ¶ÈëÈ¥×öÊÇÎÒ×î´óµÄÌôÕ½¡£Íê³Éºó¾ÍºÜÈÝÒ×ÏëÏó£¬Ò²ºÜÈÝÒ×ÖØÐÂÉè¼Æ¡£µ«ÔÚÁù¸öÔµÄÈ«Ö°¹¤×÷ÖУ¬ÎÒ²ÂÓÐÎå¸öÔµÄʱ¼äÊÇÔÚÄýÊÓÆÁÄ»ºÍÇôò¼üÅÌ¡£



ÑÓÐøÐÔºÜÄÑÏúÊÛ¡£Ð­Í¬³ÌÐòºÍÉú³ÉÆ÷£¬ÌرðÊÇ΢Ï̻߳¹ÉÔÈÝÒ×Ò»µã¡£ËùÓÐÒÔÉϲúÆ·¶¼ ¿ÉÒÔÔÚûÓÐÏÔʽ³ÖÐøÐÔµÄÇé¿öÏÂʵÏÖ¡£µ«ÓÐÁ˳ÖÐøÐԺ󣬻ᷢÏÖתÏòÆäËü½á¹¹Ëù»¨·ÑµÄ²½Öè·Ç³£ÉÙ£¬³ÖÐøÐÔ¾ÍÊÇʹÓõķ½·¨¡£ËùÒÔÎÒÒª¸Ä±äÎÒµÄÓªÏú²ßÂÔ£¬²»ÔÙ³¢ÊÔÏúÊÛ³ÖÐøÐÔ£¬¶øÊÇËüÃǵijɹû¡£¶ÔÓÚÄܹ»¿´µ½¹âÃ÷µÄÈËÀ´Ëµ£¬³ÖÐøÐÔÈÔÈ»´æÔÚ¡£



Mertz£ºÓÐÒ»¸ö¹ØÓÚÃÀ¹ú¹¤³ÌʦºÍ·¨¹ú¹¤³ÌʦµÄЦ»°¡£ÃÀ¹úС×é¸ø·¨¹úС×é´øÀ´Ò»¸öÔ­ÐÍ¡£·¨¹úС×éµÄ·´Ó¦ÊÇ£º¡°ËüÔÚʵ¼ùÖй¤×÷µÃ²»´í£»µ«ÔÚÀíÂÛÉÏ¿¿µÃסÂ𣿡±ÎÒÏëÕâ¸öЦ»°¿ÉÄÜÊÇÒª³°ÅªÒ»Ï¡°·¨¹úÈË¡±µÄ×÷·ç£¬µ«ÔÚÎÒ×Ô¼º¿´À´£¬ÎÒÍêÈ«ÈÏͬ¡°·¨¹úÈË¡±µÄ·´Ó¦¡£ÅųýЦ»°ÖÐÈκÎÕë¶ÔÌض¨Ãñ×åµÄ¿Ì°åģʽ£¬¶ÔËüµÄÈÏͬÊÇÎüÒýÎÒÈ¥Á˽â Stackless µÄÔ­Òò¡£CPython ÔÚʵ¼ùÖÐʹÓ㬶ø Stackless ÔÚÀíÂÛÖÐʹÓã¡£¨»»¾ä»°Ëµ£¬¶ÔÓÚÎÒ¸öÈË£¬³ÖÐøÐԵijéÏó´¿´âÐÔ±È΢Ï̵߳ÄÉÏÏÂÎÄÇл»¼ÓËÙ¸üÓÐȤ£©¡£



Tismer£ºÎÒÒ²ÓÐÀàËƵĸоõ¡£ÈÏʶµ½ CPython ¿ÉÒÔÔÚ²»Éæ¼° C ¶ÑÕ»µÄÇé¿öÏÂʵÏÖºó£¬ÎÒÈ·ÐÅËü±ØÐëÓÃÕâÖÖ·½Ê½ÊµÏÖ£»ÆäËüËùÓз½·¨¶¼ºÜ»ÄÌÆ¡£CPython ÒѾ­Îª¿ò¼Ü¶ÔÏ󸶳öÁË´ú¼Û£¬µ«ËüʹÓà C ¶ÑÕ»³¢ÊÔËüÃǸüÊÇɥʧÁËËùÓÐ×ÔÓÉ¡£ÎÒ¾õµÃÎÒ±ØÐë½â·Å Python¡£:-)



ÎÒ 1999 Äê 5 Ô¿ªÊ¼Õâ¸öÏîÄ¿¡£Sam Rushing Ôø¶ÔÓ²¼þЭͬ³ÌÐòµÄʵÏÖÓйý´ÖÂÔµÄÑо¿£¬ËùÒÔÒ»³¡ÓÐ¹Ø Python É豸µÄÌÖÂÛ¿ªÊ¼ÁË¡£½«¶ÑÕ»¸´ÖÆ×ö´óÁ¿¸ü¸ÄÓÀÔ¶Ò²²»Äܽ«Ëü±ä³É Python£¬ÕâÒ»µãµ±Ê±¾ÍºÜÇå³þ¡£µ«¿ÉÒÆÖ²µÄ¡¢¸É¾»ÊµÏÖµÄЭͬ³ÌÐò¿ÉÄÜ¿ÉÒÔ¡£²»ÐÒµÄÊÇ£¬ÕâÊDz»¿ÉÄܵġ£ÎåÄêÇ°£¬Steve Majewski ÔÚÒâʶµ½Èç¹û²»ÍêÈ«ÖØд Python ¾ÍÎÞ·¨½â¾öÕâ¸öÎÊÌâÖ®ºó¾Í·ÅÆúÁË¡£



ÄǾÍÊÇÌôÕ½ËùÔÚ¡£ÎÒ±ØÐë²éÃ÷Ëü¡£ËüÈç¹ûÊÇ¿ÉÄܵģ¬ÎÒ¾ÍʵÏÖËü£»Èç¹û²»¿ÉÄÜ£¬ÎÒ¾ÍÒªÖ¤Ã÷ÕâÖÖ²»¿ÉÄÜÐÔ¡£²»¾ÃÒԺ󣬾­¹ýÁËÊ״ο¼ÂǺͳ¢ÊÔºó£¬Sam ¸æËßÎÒÓÐ¹Ø call/cc ÒÔ¼°ËüÊÇÈçºÎÇ¿´ó¡£ÄÇʱ£¬ÎÒ¶ÔËüÃÇÔÚÄÄЩ·½Ãæ±ÈЭͬ³ÌÐò¸üÇ¿´óÒ»µã¸ÅÄîҲûÓУ¬µ«ÎÒÏàÐÅËû²¢ÊµÏÖÁËËüÃÇ£»ÁùÆß´ÎÒÔºó£¬×ÜÒªÍêÈ«ÖØд£¬Ê¹ÎÒÓÐÁ˸üÉîÈëµÄÀí½â¡£



ÎÒÏ£Íû×îÖÕÄܹ»ÒÔÁîÈËÑÛ»¨çÔÂҵĸßËٶȴ´½¨Ị̈߳¬µ«ÎҵijõÖÔÊÇ·¢ÏÖ¾¿¾¹ÎÒÄܵ½´ïʲôµØ²½¡£



Mertz£ºÔÚʵ¼ù·½Ã棬Stackless ¿ÉÄÜÓÐÄÄЩÐÔÄܸĽøÄØ£¿ÕâЩ¸Ä½øÔÚµ±Ç°µÄʵÏÖÖÐÓжàÖØÒª£¿Ëü»¹ÓжàÉÙDZÁ¦¿ÉÍÚ£¿ÄÄЩÌض¨ÀàÐ͵ÄÓ¦ÓóÌÐò×îÓпÉÄÜ´Ó Stackless ÖÐÊÜÒ棿



Tismer£ºÔÚµ±Ç°µÄʵÏÖÖУ¬Stackless ±È´«Í³µ÷Ó÷½°¸À´Ëµ²¢²»Õ¼Ì«´óµÄÓÅÊÆ¡£ÆÕͨµÄ Python ¶ÔнâÊÍÆ÷¿ªÊ¼µÝ¹é¡£Stackless Õ¹¿ªµ½Ò»¸öµ÷¶ÈÆ÷£¬È»ºó´ÓÄÇÀïÆô¶¯½âÊÍÆ÷¡£Õâµã¼¸ºõÒ»Ñù¡£Êµ¼ÊµÄ¸Ä½øÔÚÓÚЭͬ³ÌÐòºÍÏ̵߳ÄʵÏÖ¡£ËüÃÇÐèÒªÓÉÀàÄ£Ä⣬»òÕßÐèÒªÊDZê×¼ Python ÖеÄʵ¼ÊỊ̈߳¬µ«Ê¹Óà Stackless£¬ËüÃÇ¿ÉÒÔ¸üÖ±½ÓµØʵÏÖ¡£



Èç¹û²»¶Ô²Ù×÷Â뼯×ö¾Þ´óµÄ¸ü¸Ä£¬ºËÐĵĸü¶à¸Ä½ø¾ÍÏԵò»Ì«¿ÉÄÜ¡£µ«Ò»¸ö¾ßÓжÔÆäËüµØ·½ÑÓÐøÐÔ¸ü¶àÄÚÖÃÖ§³ÖµÄÔÙʵÏÖ¿ÉÒÔ´ó´óÌá¸ßËٶȡ£



ÊÜÒæ×î´óµÄÄÇЩÌض¨Ó¦ÓóÌÐò¿ÉÄÜÊÇ Swarm ·ÂÕ棬»òÓÐÐí¶à½ÇÉ«°çÑݼ«Ð¡ÈÎÎñµÄ¶àÈËÓÎÏ·¡£Ò»Àý¾ÍÊÇÕýÔÚʹÓà Stackless Python ¿ª·¢µÄ EVE ÓÎÏ·£¨Çë²ÎÔÄÏÂÃæµÄ²Î¿¼×ÊÁÏ£©¡£



Mertz£º¶ÔÓÚ½« Stackless ºÏ²¢µ½ CPython Ö÷Á÷Äú¾õµÃÈçºÎ£¿Stackless ÊÇ×÷Ϊһ¸ö·ÖÖ§ºÃÄØ£¬»¹ÊdzÉΪºËÐÄ°æ±¾µÄ»°ÓÐЩ·½Ãæ»á¸üºÃ£¿



Tismer£ºÓÐһЩ֧³ÖºÍ·´¶ÔµÄÕùÂÛ¡£·´¶Ô£ºÖ»ÒªÎÒ²»·ÅÆú Stackless ʵÏÖ£¬Ëü¾ÍÊÇÎҵģ¬ÎÒ²»ÐèÒªÌÖÂÛÈçºÎÒÔ¼°ÎªÊ²Ã´µÄÎÊÌâ¡£µ«Í¬Ê±£¬ÎÒÔÚ¾¡Á¦£¨µ«Î´ÄÜ£©×·¸Ï CVS¡£×îºÃÈÃÆäËüÈËÀ´×ö¡£



ÆäËü²»±Ø¶ÔÏ¡Ææ¹Å¹ÖµÄÊÂÎï¸ÐÐËȤµÄÄÇЩ Python Óû§¸ù±¾²»»áÈÏʶ Stackless£»Ö»ÊÇÊÂʵÉÏËüÅöÇɸü¿ì£¬×î´óµÝ¹é¼¶±ðÏÖÔÚÊÇÒ»¸öÑ¡Ïî¶ø²»ÊÇÓ²¼þÏÞÖÆ¡£¶Ôÿ¸öÓû§»¹ÓÐÁíÒ»¸ö±£Ö¤£º½«ÓпÉëçÖÆ (pickleable) Ö´ÐÐ״̬¡£ÕâÒâζ×Å¿ÉÒÔÔÚ³ÌÐòÔËÐеÄʱºî±£´æËü£¬½«Ëü·¢Ë͸øÅóÓÑ£¬È»ºó¼ÌÐøÔËÐС£



×îºó£¬¼ÙʹÎÒµÄËùÓж«Î÷¶¼±ä³ÉºËÐÄ£¬ÎÒ¾ÍÍêÈ«Ô޳ɣ»µ«ÎÒ²»Ï£Íû¿´µ½Ò»¸ö¾ÍºÃÏó½¨Òé¹ý¶à´ÎµÄ²»ÍêÕûµÄ½â¾ö·½°¸¡£



Mertz£º¶Ô Stackless µÄδÀ´·½ÏòÓÐʲôÏë·¨Â𣿽«Éú²úʲôеIJ»Í¬²úÆ·£¿Stackless ÈÔÈ»ÊÜһЩµÝ¹éµÄÀ§ÈÅ¡£ËüÃÇ»áÏûʧÂð£¿



Tismer£º½«²¿·ÖµØʵÏÖëçÖÆÖ§³Ö¡£Ê×ÏȶÔÓÚ΢Ïß³ÌʹÓã¬ÒòΪÏÖÔÚËüÃÇÌṩ×î¸É¾»µÄ¸ÅÄî¡£ËüÃÇÔÚ¡°½à¾»ÊÒ¡±ÀïÉú»î£¬ÕâÀï²»´æÔÚÓàϵĵݹéÎÊÌâ¡£ÎÒµÄ×îÖÕÄ¿±êÊÇ´Ó Python Öгýȥȫ²¿½âÊÍÆ÷µÝ¹é¡£Stackless µÄijЩ²¿·ÖÈÔ¾ÉÓеݹ飬ÌرðÊǶÔÏóµÄËùÓÐÔ¤¶¨ÒåµÄ __xxx__ ·½·¨¡£Òª¶¨°¸ºÜÄÑ£¬ÒòΪÎÒÃÇÐèÒª¸ü¸ÄºÜ¶à¶«Î÷¡¢Ìí¼ÓеIJÙ×÷Âë¡¢Õ¹¿ªÄ³Ð©ÄÚ²¿µ÷ÓÃÐòÁеȵȡ£



   

 

×·Ìù:

[µÇ¼]ºó·½¿É·¢Ìù


  » ºÏ ×÷ »ï °é