ÎöÂë¶àÄ¿±ê±àÒëÆ÷ÎöÂëÊÇÓÉÍ»¿Ç¿ªÔ´¿ª·¢µÄÒ»¸ö¶àÄ¿±ê±àÒëÆ÷(¹ú²ú±àÒëÆ÷¡¢²úÆ·¼¶±àÒëÆ÷¡¢¿ªÔ´)£¬»ùÓÚ¶ÀÌØµÄµÄ¼Ü¹¹Éè¼ÆÊ¹µÃ¸Ã±àÒëÆ÷ÔÚ¡°ÓïÑÔ¡±¸ú¡°Ä¿±ê»ú¡±µÄ¼æÈÝÐÔ·½ÃæÐÔÄÜÍ»³ö¡£ÏîÄ¿ÔÚ¶þÁãÁã°ËÄê¶þÔ·¢Æð£¬Ç°ºó¾¹ýÁ½ÄêµÄ¿ª·¢ÆäÕûÌå¼Ü¹¹ÒѾ³ÉÐÍ£¬´Ëǰ£¬Í»¿ÇÒÔÒ»¸öC99ǰ¶Î£¬¸úARMÌåϵºó¶Î·¢²¼ÁËÒ»¸ö³õ²½µÄÑÝʾ°æ±¾£¬ÑÝʾ°æ±¾ÖÐÒѾ¿ÉÒÔ½«CÓïÑÔ´úÂë±àÒë³É¿ÉÒÔÔÚARMƽ̨ÔËÐеÄELFÈí¼þ°ü¡£´Ó×î³õµÄ¸ß¼¶ÓïÑÔÔ´´úÂëµ½×îÖÕ¶þ½øÖƵIJúÉú£¬ÎöÂëÓÉÍ»¿Ç¿ªÔ´ÍêÈ«×ÔÖ÷µÄÒ»¸ö±àÒëÆ½Ì¨£¬ÆäÖеļ¼ÊõÓë´úÂëÍêÈ«À´Ô´ÓÚ¿ñÈȵĿª·¢×é³ÉÔ±£¬ÎªÁ˱£Ö¤ÍêÕûÐÔ£¬ÎöÂëµÄ¿ª·¢Ã»ÓÐʹÓÃÈκεÚÈý·½´úÂë¡£
¼Ü¹¹·½Ã棬¡°ÎöÂ롱µÄ¼Ü¹¹±»»®·ÖΪ¡°Ç°¡±¡¢¡°ÖС±¡¢¡°ºó¡±Èý¸ö¶ÎÂä¡£Ê×ÏÈÔÚ´úÂëÉÏ£¬¶ÎÓë¶ÎÖ®¼äûÓÐÈκιØÁª£¬»ùÓÚÕâ¸öÌØÐÔ£¬ÎÒÃÇ¿ÉÒÔÔÚ×î´ó¿ÉÖØÓÃǰÌá֮ϣ¬Ê¹ÎöÂëÖ§³ÖnÖÐÓïÑÔ£¬nÖÖ»úÆ÷¡£ÓïÑÔÏà¹ØµÄ²¿·Ö±»»®·Öµ½ÁË¡°Ç°¶Î¡±£¬¶øÓë»úÆ÷Ïà¹ØµÄ²¿·Ö±»»®·Öµ½ÁË¡°ºó¶Î¡±£¬ÖжÎÊǸú¾ßÌåij¸öÓïÑÔ»òijÐͺŻúÆ÷Î޹صIJ¿·Ö£¬Ëü±»ÍêÈ«ÖØÓÃÁË¡£ÈÎÒâÓïÑÔÖ®¼äÓиö¹²Í¬µã£¬¾ÍÊÇǰ¶Î·Ç³£µØ½Ó½ü£¬ÕâÖÖ½Ó½üÊÇÖ¸ÓжÔÓ¦µÄµ¥Î»¿ÉÒÔÏ໥ת»»£¬ÀýÈç¡°º¯Êý¡±¡¢¡°Ñ»·¡±¡¢¡°Ìõ¼þÓï¾ä¡±µÈµÈ£¬ºöÂÔµôÓïÒå²ãµÄ²îÒ죬²»Í¬ÀàÐ͵ÄÓïÑÔÖ®¼äÔÚ´Ê·¨¸úÓï·¨É϶ÔÓ¦µÄµ¥Î»¿ÉÒԵȼ۵Ø×ª»»¡£ÔÚÎöÂëµÄ¼Ü¹¹ÖУ¬ÕâЩÓïÑÔÏàͬµÄ²¿·Ö£¬»ò˵ËüµÄÏà¹ØÐÔ±»¸ôÀëÔÚÁË¡°Ç°¶Î¡±£¬ÈÃÆäij×é·ÖÎöÆ÷×÷Ϊ×é¼þ´æÔÚ£¬ÕâÔںܴó³Ì¶ÈÉÏÌá¸ßÁËÎöÂë±àÒëÆ÷µÄÓïÑÔ¼æÈÝÐÔ¡£ºó¶Î·½Ã棬Ӳ¼þÌåϵ²¿·ÖÒ²ÊÇ´óͬСÒ죬Èç¹û°Ñ·¶Î§ËõСµ½×îС£¬ÄÇЩ²îÒì½ö½ö¾ÖÏÞÓÚ¡°Ö¸Á¡±Ö®ÉÏ£¬Ö¸Á³éÏó³öÀ´×÷Ϊºó¶ÎµÄÒ»²¿·Ö£¬Ê¹ÎöÂëÔÚ´úÂëÉú³É³õÆÚ²»È¥¹ØÐľßÌåÌåϵ£¬ºóÆÚÖ»ÐèÒª¼òµ¥µØ½«ÖмäÐÎʽÆäÓ³É䵽ijÌåϵ¼´¿É£¬Èç´Ë£¬ÔÚ¸ü»»Ä¿±ê»úÆ÷ʱ£¬Ö»ÐèÒªÌæ»»Ò»ÏÂÓ³É亯Êý£¬Ìá¸ßÁË»úÆ÷¼æÈÝÐÔ¡£ÔÚÖжβ¿·Ö£¬ËüÍêÈ«¶ÀÁ¢ÓÚÈÎÒâÓïÑÔ£¬ÈÎÒâ»úÆ÷£¬ËüÊÇÒ»¸ö´¿´âµÄ³éÏóÄ£¿é£¬ÓɳéÏóÓï·¨¡¢³éÏó´úÂë¹¹³É¡£
ÎöÂë¡°0.3.0¡±ÌØÐÔ·ûºÏC99±ê×¼µÄ¡°Ô¤´¦Àí¡±¡¢¡°´Ê·¨·ÖÎö¡±¡¢¡°Óï·¨ÓïÒå·ÖÎö¡±Ä£¿é¡£
¸ß¶ÈͨÓõijéÏóÓï·¨£¬¿ÉÃèÊö¶àÖÖ²»Í¬ÀàÐ͵ĸ߼¶ÓïÑÔ¡£
»ùÓÚ¡°SSA¡±µÄ³éÏó´úÂë¡£
»ùÓÚ¡°York-Town¡±Ä£Ð͵ļĴæÆ÷·ÖÅäÆ÷£¬¸ßЧÇÒÉ豸Î޹ء£
Ö§³Ö¡°stdcall¡±¡¢¡°cdecl¡±¡¢¡°fastcall¡±¡¢¡°armcall¡±£¬È«Ãæ¼æÈÝ¡°VC¡±¡¢¡°GCC¡±¡¢¡°ARMCC/TCC¡±µÈÖ÷Á÷±àÒëÆ÷¡£
¼æÈÝ¡°ARMv6Ìåϵ¡±µÄ»ã±àÆ÷¡°Semo Assembler¡±£¬¿ÉÒÔ¶ÀÁ¢Ê¹Óá£
¼æÈÝ¡°ARMv6Ìåϵ¡±µÄ¶¯Ì¬Á´½ÓÆ÷¡°Semo Dynamic Linker¡±£¬Ö§³Ö¿ÉÖØ¶¨Î»Ê½¡°ELF¡±µÄ¼ÓÔØÓëÁ´½Ó¡£
Ñ¡ÔñÎöÂëÄú½«ÊÕ»ñ¶ÔÓÚÔÚУѧÉú£¬ÎöÂë¾ßÓÐÍêÕûµÄÎĵµÏµÍ³£¬ËüÊÇÄã×î¼ÑµÄѧϰ»·¾³¡£
¶ÔÓÚѧÊõÑо¿Õߣ¬Í»¿ÇÉçÇø»áÌá¹©È«ÃæµÄ¼¼ÊõÖ§³Ö£¬¿ÉÒÔ±£Ö¤ÄãÔÚ×î¶ÌµÄʱ¼äÄڴÊÔÑéÆ½Ì¨¡£
¶ÔÓÚ¹¤³Ì¿ª·¢ÈËÔ±£¬ÎöÂë±àÒëÆ÷¿ÉÒÔÌṩ¸ßЧµÄ¹¤×÷ЧÂÊ¡£ÓÚ´Ëͬʱ£¬Í»¿ÇÉçÇø»¹Ìṩǰºó¶Ë¶¨ÖÆ·þÎñ£¬½µµÍÄúµÄÉú²ú³É±¾¡£
²ÎÓëÏîÄ¿Äú½«ÊÕ»ñ¶Ô»ù´¡Èí¼þ¼¼Êõȫά¶ÈÈÏʶ¡£
²úÆ·¼¶±àÒëÆ÷¿ª·¢¾Ñé¡£
ÏîÄ¿Àú³Ì2008 - 2009 Semo C()mpiler 0.1.0
Íê³ÉÁËÒ»¸öʵÑéÐÔµÄCÓïÑÔǰ¶Ë¡£
2009 - 2010 Semo C()mpiler 0.2.0
»ù±¾¼Ü¹¹Íê³É£¬·¢²¼µÚÒ»¸ö¿ÉÒÔ±àÒë°æ±¾£¨±àÒë³ö¶þ½øÖÆ£©¡£
CÓïÑÔǰ¶Ë 15%¡£
³éÏóÓï·¨ 99%¡£
µÚ0²ã³éÏó´úÂë 99%¡£
SSA 99%¡£
ARMv6»ã±à´úÂëÉú³ÉÆ÷ 10%¡£
ARMv6»ã±àÆ÷ 10%¡£
ARM-ELF¶¯Ì¬Á´½ÓÆ÷ 100%¡£
2011 - 2012 Semo C()mpiler 0.3.0
Íê³É¼Ä´æÆ÷·ÖÅäÄ£¿é¡£
¿ª·¢ÍŶÓÍõȫΰ Í»¿Ç¿ªÔ´
¼¸¸öÎÊÌâQ£ºÄ¿Ç°Í»¿ÇµÄÕâ¸öÏîÄ¿£¬¶ÔÓÚδÀ´µÄ·¢Õ¹£¬ÍŶÓÓÐûÓдóÌåµÄ¼Æ»®ºÍÕ¹Íû£¿
A£ºÕâÊÇÒ»¸ö»ùÓÚGPLÐÒéµÄÏîÄ¿£¬ÍŶÓÒ²ÊÇÒÔÉçÇøÕâÖÖģʽÔÚ×ö¡£ÆäËü¸üÉîÔ¶µÄ²»ºÃ˵£¬ÒòΪÏîÄ¿»¹ÊDZȽÏǰÆÚµÄ£¬ÏÖÔÚ˵һЩºÜ²»Êµ¼Ê¡£
Q£ººÍ±È½Ï³ÉÊìµÄ¹úÍâһЩ¿ªÔ´Èí¼þ±È½Ï£¬ÎöÂëÓÐÄÄЩÓŵ㣿
A£ºÔÚ¼¼Êõ·½Ã棬ÎöÂëµÄ¼Ü¹¹¾ø¶Ô³ÆµÃÉÏÓÅÁ¼£¬ÕâÊÇÖØÒªµÄ»ù´¡¡£Ö»ÊÇÕâ¸ö¼Ü¹¹»¹ºÜÄêÇᣬÐèÒªÂýÂý·¢Õ¹£¬Â·×ӱȽϳ¤¡£
Q£ºÄ¿Ç°¶ÔÓÚ¹¤¾ßµÄʹÓÃÉϵÄÖ¸µ¼Îĵµ½ÏÉÙ£¬¶ÔÓÚÒ»¸ö¸Õ¸Õ½Ó´¥µ½Õâ¸öÏîÄ¿µÄÐÂÈË£¬ÈçºÎÈÃÎÒÃÇ»¨¸üÉÙµÄʱ¼ä£¬¶ÔÕû¸ö±àÒëÆ÷ÓиöÖ±¹ÛµÄÈÏʶ£¿
A£ºÎöÂëÓÐÒ»Ì׷dz£ÍêÕûµÄÎĵµÏµÍ³£¨wiki,pms,blog,bbs£©£¬²¿·ÖÄÚÈÝÒÔºó»á¿ª·Å³öÀ´µÄ¡£
Q£ºÕâ¸öÏîÄ¿µÄ·¢ÆðÊdzöÓÚÐËȤ»¹Êǹ¤×÷Ðè񻀯£¿
A£º¿ªÔ´ÉçÇøµÄ×éÖ¯½á¹¹ÊDZȽÏËÉÉ¢µÄ£¬ÐËȤ°®ºÃÊǺܹؼüµÄÒ»µã¡£
Q£ºÒѾÓÐһЩ¿ªÔ´µÄ±àÒëÆ÷ÁË£¬ÎªÊ²Ã´Òª×Ô¼º×öÄØ£¿ÎöÂëÔõô¸úËüÃǾºÕùÄØ£¿
A£ºÎ¬»¤±ðÈË´úÂëÊǺÜÍ´¿àµÄ£¬¶øÇÒºÜÄѽ«ÆäÍêÈ«ÕÆ¿Ø¡£¾ºÕùÏÖÔÚ̸²»ÉÏ£¬Í»¿Ç°ÑÎöÂë×öÁËÒ»¸ö»ù±¾µÄÔÐÍ£¨Cǰ¶Î+ARMºó¶Î£©£¬ÆäËüµÄ¾ÍÒª¿¿ÉçÇø¿¿´ó¼ÒµÄÁ¦Á¿ÁË¡£
Q£ºÎöÂë»á¿¼ÂǼæÈÝÆäËüÓïÑÔÂ𣿻òÕß»ùÓÚËüÉè¼ÆÒ»ÃÅеÄÓïÑÔ£¿
A£ºCǰ¶Î+ARMºó¶ÎµÄÔÐÍ»á×÷ΪÎöÂëµÄÖ÷¸É°æ±¾ÓÉÍ»¿Çά»¤ÏÂÈ¥£¬ÆäËü°æ±¾»á·Åµ½ÉçÇøÈ¥×ö¡£
A£ºÎöÂëÊÇÒ»¸ö±àÒëÆ½Ì¨£¬ÌصãÔÚÓÚÔ´ÓïÑÔ¸úÄ¿±ê»úµÄ¼æÈÝÐÔ·½Ã棬ÀíÂÛÉÏ»ùÓÚÎöÂëÉè¼ÆÒ»ÃÅÓïÑÔÖ»ÐèҪʵÏÖÒ»¸ö¸ÃÓïÑÔµÄfront-para¾Í¿ÉÒÔ£¬Í¬Ê±¶ÔÓÚÕâÖÖÐèÇóÎÒÃÇ»áÌṩÏàÓ¦¼¼ÊõÖ§³ÖµÄ¡£
Q£ºÄ¿Ç°¹úÄÚMCUÆóÒµ£¬ÎÞ·¨¶ÀÁ¢Éú²úµÄ¹Ø¼üÒòËØÊÇûÓбàÒëÆ÷µÄÖ§³Ö£¬ÎöÂëÒÔºó»áÓÐÕâ·½ÃæµÄÖ§³ÖÂð£¿
A£ºÈç¹ûÓÐÕâ·½ÃæÐèÇó£¬ÎÒÃǺÜÏ£ÍûÄÜÓë³§¼ÒÕ¹¿ªÉîÈëºÏ×÷¡£´Ó¼¼ÊõÉÏÀ´Ëµ£¬ÈÃÎöÂëÖ§³ÖijÖÖоƬֻÐèҪʵÏÖ¡°back-para¡±£ºÖ÷Òª°üº¬»ã±àÆ÷¡¢Á´½ÓÆ÷£¬ÔÚÕâ·½ÃæÍ»¿ÇÒѾ¾ß±¸³É¹¦°¸Àý¡£
Ö÷Ò³£ºhttp://www.tok.cc/
ÏÂÔØ£ºhttp://code.google.com/p/semo/
À´×Ô:¿ªÔ´ÖйúÉçÇø

