| ¾Þ¹«»õ :: Optrans. ¾Þ¹«»õ :: OPTRANS´Â OPS¸¦ C ÄÚµå·Î º¯È¯ ÇÒ ¼öÀÖ´Â PERL ¸ðµâÀÔ´Ï´Ù. |
Áö±Ý ´Ù¿î·Îµå |
¾Þ¹«»õ :: Optrans. ¼øÀ§ ¹× ¿ä¾à
- ƯÇã:
- Perl Artistic License
- °Ô½ÃÀÚ À̸§:
- The Parrot Project Team
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://search.cpan.org/~ltoetsch/parrot-0.4.5/lib/Parrot/OpTrans.pm
¾Þ¹«»õ :: Optrans. ű×
¾Þ¹«»õ :: Optrans. ¼³¸í
¾Þ¹«»õ :: Optrans´Â OPS¸¦ C ÄÚµå·Î º¯È¯ ÇÒ ¼öÀÖ´Â Perl ¸ðµâÀÔ´Ï´Ù. ¾Þ¹«»õ :: Optrans´Â ops¸¦ c code.parrot·Î º¯È¯ ÇÒ ¼öÀÖ´Â perl ¸ðµâÀÔ´Ï´Ù. optrans´Â ¾Þ¹«»õ ¿µ¾÷ÀÌ C º¯È¯¿¡ ´ëÇÑ Ãß»ó ¼öÆÛ Å¬·¡½ºÀÔ´Ï´Ù. °¢ º¯È¯¿¡´Â C Äڵ带 »ý¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ ´Ù¾çÇÑ Á¤º¸°¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç ´Ù¸¥ À¯ÇüÀÇ ½ÇÇà ·çÇÁ¸¦ ¸¸µì´Ï´Ù. ¿©±â¿¡ Á¤ÀÇ µÈ ¸Þ¼Òµå´Â ¸ðµç º¯È¯¿¡ °øÅëµÈ ´Ù¾çÇÑ ±âº»°ª°ú µ¿ÀÛÀ» Á¦°øÇÕ´Ï´Ù. ÇÏÀ§ Ŭ·¡½º °èÃþ ±¸Á¶´Â ´ÙÀ½°ú °°½À´Ï´Ù. OPTRANS | _________________________ | | | C CGOTO ÄÄÆÄÀÏ | | cprederef | | | | | | _________ | | | cswitch cgpclass methodsNew () »õ·Î¿î instanter.instance methodsPrefix ()´Â ¾Þ Ŭ·¡½º¿¡ ±¸Çö µÈ op function name.suffix ()¿¡ ±¸Çö µÈ jprot :: opÀÇ func_name ()¿¡ ÀÇÇØ explix¸¦ ¹ÝȯÇÏ¿© Á¢¹Ì»ç¸¦ ¹ÝȯÇÕ´Ï´Ù. º¯¼ö À̸§À» °³º°ÈÇϽʽÿÀ. ÀÌ ±âº» ±¸ÇöÀº S ¼ºê Ŭ·¡½º¿¡ ±¸Çö µÈ ºó String.defines ()¸¦ ¹ÝȯÇÏ¿© C #Define Macros required.opsArrayType () opcodeÀÇ ¹è¿ Çü½ÄÀ» ¸®ÅÏÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î ¹è¿ OPCODE_TÀÌÁö¸¸ PREDEREF RONOPS CORE´Â VOID * ¹è¿À» »ç¿ëÇÏ¿© SUBCLASSES¿¡¼ ±¸ÇöµÇ¾î º¯È¯¿¡ ÀÇÇØ »ý¼º µÈ ÄÚ¾î À¯ÇüÀ» ¹ÝȯÇÕ´Ï´Ù. ÀÌ ±âº» ±¸ÇöÀº ÄÚ¾î À¯ÇüÀÌ ´©¶ôµÇ¾úÀ½À» ³ªÅ¸³»´Â ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù. ¼ºê Ŭ·¡½º¿¡¼ ±¸Çö µÈ ÇÙ½É À¯ÇüÀ» ³ªÅ¸³»´Â ÇÙ½É À¯ÇüÀ» ³ªÅ¸³»´Â ÇÙ½É À¯ÇüÀ» ³ªÅ¸³»´Â core tystem.CORE_PREFIX ()ÀÇ ÇÙ½É types.CORE_PREFIX ()¸¦ ÂüÁ¶ÇÏ¿© core function name.run_core_func_decl ($ base)¿¡ »ç¿ëµÇ´Â ÄÚ¾î À¯ÇüÀ» ³ªÅ¸³»´Â ªÀº Á¢µÎ»ç¸¦ ¹ÝȯÇÏ´Â core tystem.CORE_PREFIX (). Run Core Function ¼±¾ðÀ» À§ÇØ C Äڵ带 ¹ÝȯÇÏ´Â ¼ºê Ŭ·¡½º. $ Base´Â ÁÖ¿ä OPS ÆÄÀÏÀÇ À̸§ÀÔ´Ï´Ù. extension.ops_addr_decl ($ bash_suffix) ¼±ÅÃÀûÀ¸·Î ÇÏÀ§ Ŭ·¡½º·Î ±¸ÇöµÇ¾î OPS ÁÖ¼Ò ¼±¾ð¿¡ ´ëÇÑ C Äڵ带 ¹ÝȯÇÕ´Ï´Ù. $ base_suffix´Â ÁÖ¿ä ops ÆÄÀÏÀÇ À̸§ÀÔ´Ï´Ù. Á¢¹Ì»ç ()¿Í .Ops È®ÀåÀÚ ¹× AppenderCore Appended.run_core_func_decl ($ base)À» »ç¿ëÇÏ¿© Run Core ÇÔ¼ö ¼±¾ð¿¡ ´ëÇÑ C Äڵ带 ¹ÝȯÇÕ´Ï´Ù. $ Base´Â run_core_func_decl ()¿¡ ´ëÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. subclasses¿¡¼ ±¸Çö µÈ run_core_func_start () run_core_func_decl ()ÀÌ ±¸Çö µÈ °æ¿ì, Run Code function.run_core_after_addr_table ($ bash_suffix) ÀÌÀü¿¡ ¼ºê Ŭ·¡½º·Î ±¸ÇöÇÏ¿© ½ÇÇàÀ» ¹ÝȯÇϱâ À§ÇØ ¼ºê Ŭ·¡½º·Î ±¸ÇöµË´Ï´Ù. ÁÖ¼Ò Å×ÀÌºí µÚ¿¡ ¼½¼ÇÀÇ ÇÙ½É C ÄÚµå. $ base_suffix´Â ops_addr_decl ()¿¡ ´ëÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. RUN ÄÚ¾î ÇÔ¼ö ½ÇÇà ÈÄ C Äڵ带 ¹ÝȯÇÏ·Á¸é ¼ºê Ŭ·¡½º¿¡ ±¸Çö µÈ RUN_CORE_FINISH ($ base). $ Base´Â run_core_func_decl ()¿¡ ´ëÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. init_func_init1 ($ base)Àº ¼±ÅÃÀûÀ¸·Î ÇÏÀ§ Ŭ·¡½º·Î ±¸ÇöµÇ¾î ÄÚ¾îÀÇ init ÇÔ¼öÀÇ C Äڵ带 ¹ÝȯÇÕ´Ï´Ù. $ Base´Â run_core_func_decl ()¿¡ ´ëÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. init_set_dispatch ($ bash_suffix)´Â C Äڵ带 ÇÙ½É init ÇÔ¼ö ³»¿¡¼ ÃʱâÈÇϱâ À§ÇØ C Äڵ带 ¹ÝȯÇϱâ À§ÇØ ¼ºê Ŭ·¡½º·Î ¼±ÅÃÀûÀ¸·Î ±¸ÇöµË´Ï´Ù. $ base_suffix´Â OPS_ADDR_DECL ()¿¡ ´ëÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. MACRO SUSCOPTHE ´ÙÀ½ ¸Þ¼Òµå´Â ¾Þ¹«»õ :: OPFILE¿¡ ÀÇÇØ È£ÃâµÇ¹Ç·Î SUBCLASSES¿¡¼ C Äڵ带 ¹ÝȯÇÏ·Á¸é ÇÏÀ§ Ŭ·¡½º·Î ±¸Çö µÈ OPS ÆÄÀÏ ¸ÅÅ©·Î ´ëü .ACCESS_ARG ($ type, $ value, $ op)¸¦ ¼öÇàÇÕ´Ï´Ù. ÁöÁ¤µÈ OP Àμö À¯Çü ¹× °ª. $ OP´Â ¾Þ¹«»õ :: Op.gen_Goto ($)ÀÇ ÀνºÅϽºÀÔ´Ï´Ù (¿©±â¼) ´Ù¾çÇÑ GOTO_X ¸Þ¼Òµå´ÂÀÌ ¸Þ¼Òµå¸¦ expr_x ¸Þ¼Òµå (ÇÏÀ§ Ŭ·¡½º¿¡¼ ±¸Çö)ÀÇ ¹Ýȯ °ª À¸·ÎÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. RESTART_OFFSET ($ offset) .goto_address ($ offset)¸¦ À§ÇØ C Äڵ带 ¹ÝȯÇϱâ À§ÇØ ÇÏÀ§ Ŭ·¡½º·Î ±¸Çö µÈ Restart_offset ($ offset). °ü·Ã C code.goto_offset ($ offset)Àº GoTo ¿ÀÇÁ¼Â ($ offset) ¸ÅÅ©·Î¸¦ ÇØ´ç C code.goto_pop ()·Î º¯È¯ÇÏ¿© OPS ÆÄÀÏÀÇ GOTO POP ($ ÁÖ¼Ò) ¸ÅÅ©·Î¸¦ ÇØ´ç C ÄÚµå·Î º¯È¯ÇÕ´Ï´Ù. expr_offset ($ offset)Àº ÇÏÀ§ Ŭ·¡½º·Î ±¸ÇöµÇ¾î ¿ÀÇÁ¼Â ($ offset)¿¡ ´ëÇÑ C Äڵ带 ¹ÝȯÇÕ´Ï´Ù. goto_offset ()¿¡ ÀÇÇØ È£ÃâµË´Ï´Ù. expr_address ($ ÁÖ¼Ò)´Â ÁÖ¼Ò ($ ÁÖ¼Ò)¿¡ ´ëÇÑ C Äڵ带 ¹ÝȯÇϱâ À§ÇØ ÇÏÀ§ Ŭ·¡½º·Î ±¸ÇöµÇ¾ú½À´Ï´Ù. goto_address ()°¡ È£ÃâÇÕ´Ï´Ù. ¿ä±¸ »çÇ× : ¡¤ Perl.
¾Þ¹«»õ :: Optrans. °ü·Ã ¼ÒÇÁÆ®¿þ¾î