Sun WorkShop 6 update 1 ¤Î¿·µ¡Ç½ ¥Û¡¼¥àÌܼ¡Á°¥Ú¡¼¥¸¤Ø¼¡¥Ú¡¼¥¸¤Øº÷°ú


Âè 1 ¾Ï

Sun WorkShop 6 update 1 ¤Î¿·µ¡Ç½¤Î¾Ò²ð

¤³¤Î¾Ï¤Ç¤Ï¡¢Sun WorkShopTM 6 update 1 ¤Î¥³¥ó¥Ñ¥¤¥é¤È¥Ä¡¼¥ë¤Î¿·¤·¤¤µ¡Ç½¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¤³¤Î¥ê¥ê¡¼¥¹¤Ï¡¢¼ç¤Ë UltraSPARCTM III ¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¸þ¾å¤Ë¤Í¤é¤¤¤òÄê¤á¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¾Ï¤Ï¹¹¿·¤µ¤ì¤¿ Sun WorkShop ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤´¤È¤ËÀá¤Ëʬ¤«¤ì¤Æ¤ª¤ê¡¢¿·µ¡Ç½¤Î³µÍפ¬É½¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£°ìÉô¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢É½¤Î¼¡¤ÎÀá¤Ç¤µ¤é¤Ë¾Ü¤·¤¯ÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¾Ï¤Ë´Þ¤Þ¤ì¤ëÀá¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

C ¥³¥ó¥Ñ¥¤¥é

ɽ 1-1 ¤Ï¡¢C ¥³¥ó¥Ñ¥¤¥é¤Î Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Îµ¡Ç½¤Î°ìÉô¤Ï¡¢É½¤Î¼¡¤ÎÀá¤Ç¤µ¤é¤Ë¾Ü¤·¤¯ÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-1   C ¥³¥ó¥Ñ¥¤¥é¤Î¿·µ¡Ç½  
µ¡Ç½ ¥ª¥×¥·¥ç¥ó¤Þ¤¿¤Ï¥Þ¥¯¥í ÀâÌÀ
UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È -xtarget -xchip ¿·¥ê¥ê¡¼¥¹¤Î -xtarget ¤ª¤è¤Ó -xchip ¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢ultra3 ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£UltraSPARC III ¤ÇºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤¿¤á¤Ë¿ä¾©¤µ¤ì¤ë¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤ÎÀá¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
·¿¤Ë´ð¤Å¤¤¤¿²òÀϤˤè¤ëºÇŬ²½ -xalias_level ¿·¥ê¥ê¡¼¥¹¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢·¿¤Ë´ð¤Å¤¤¤¿ÊÌ̾²òÀϤȺÇŬ²½¤ò¹Ô¤¦¤¿¤á¤Î¡¢¥ª¥×¥·¥ç¥ó¤È¥×¥é¥°¥Þ¤¬»ÈÍѤǤ­¤Þ¤¹¡£
¿·¤·¤¤¥×¥é¥°¥Þ¤Ë¤è¤ë¿ô³Ø¥ë¡¼¥Á¥ó¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Î¸þ¾å __MATHERR_ERRNO_DONTCARE ¿·¥ê¥ê¡¼¥¹¤Î cc -fast ¥³¥Þ¥ó¥É¤ÎŸ³«¤Ë¤Ï¡¢¥Þ¥¯¥í __MATHERR_ERRNO_DONTCARE ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Þ¥¯¥í¤Ë¤è¤ê Solaris 8 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶­¤Î math.h ¤Ï¡¢math.h ¤Ç¥×¥í¥È¥¿¥¤¥×²½¤µ¤ì¤Æ¤¤¤ë¿ô³Ø¥ë¡¼¥Á¥ó¤Î°ìÉô¤ËÂФ·¤Æ¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë´ØÏ¢¤·¤¿¥×¥é¥°¥Þ¤òɽÌÀ¤·¤Þ¤¹¡£
ɸ½à¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¥¤¥ó¥é¥¤¥ó²½ -xbuiltin ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬Í­±×¤Ç¤¢¤ë¤ÈȽÃǤ·¤¿¾ì¹ç¤Ë¡¢É¸½à¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÁȤ߹þ¤ß´Ø¿ô¤òÂåÍÑ¡¢¤Þ¤¿¤Ï¥¤¥ó¥é¥¤¥ó²½¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£
3 ʸ»úɽµ­Ç§¼±¤ÎÍ­¸ú²½¤È̵¸ú²½ -xtrigraphs ¿·¤·¤¤ -xtrigraphs ¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢3 ʸ»úɽµ­ÊÑ´¹¤ò¹Ô¤¦¤«¤É¤¦¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£
ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò -xprefetch=...,latx:factor ¤³¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢¥Ç¡¼¥¿¤òÀèÆɤߤ¹¤ë¤¿¤á¤Ë¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤¹¤ëÌ¿Îá¤È¡¢¤½¤Î¸å»ÈÍѤ¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢Ì¿Îá¤Î¥Ç¡¼¥¿¤¬¤É¤ì¤À¤±Î¥¤ì¤Æ¤¤¤ë¤«¤ò»þ´ÖŪ¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡£
-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¥Ç¥Õ¥©¥ë¥È¸¡º÷¥Ñ¥¹¤Î̵¸ú²½ -I- ¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷»þ¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£


UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È

UltraSPARC III ¥×¥í¥»¥Ã¥µ¾å¤Ç¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤¹¤ë¾ì¹ç¤ËºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

-fast -xcrossfile -xprofile={collect:|use:}

·¿¤Ë´ð¤Å¤¤¤¿²òÀϤˤè¤ëºÇŬ²½

¿·¤·¤¤ C ¥³¥ó¥Ñ¥¤¥é¥³¥Þ¥ó¥É -xalias_level ¤ª¤è¤Ó¤¤¤¯¤Ä¤«¤Î¿·¤·¤¤¥×¥é¥°¥Þ¤ò»ÈÍѤ·¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë·¿¤Ë´ð¤Å¤¤¤¿ÊÌ̾²òÀϤª¤è¤ÓºÇŬ²½¤ò¹Ô¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤Î³ÈÄ¥µ¡Ç½¤Ï¡¢C ¥×¥í¥°¥é¥àÆâ¤Ç¤Î¥Ý¥¤¥ó¥¿¤Î»ÈÍÑÊýË¡¤Ë´Ø¤¹¤ë·¿¤Ë´ð¤Å¤¤¤¿¾ðÊó¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£C ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¤³¤Î¾ðÊó¤ò»ÈÍѤ·¤Æ¥×¥í¥°¥é¥àÆâ¤Î¥Ý¥¤¥ó¥¿¤Ë´ð¤Å¤¤¤¿¥á¥â¥ê¡¼»²¾È¤ËÂФ·¤Æ¡¢ÊÌ̾¤ÎÌÀ³Î²½¤È¤¤¤¦¶Ë¤á¤ÆÍ¥¤ì¤¿½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£

¤³¤Î¿·¤·¤¤¥³¥ó¥Ñ¥¤¥é¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ï¡¢http://docs.sun.com ¤ÇÆþ¼ê¤Ç¤­¤ë¡ØC ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¤ÎÄÉÊä¡Ù(ForteTM Developer 6 update 1/Sun WorkShop 6 update 1 Collection Æâ) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¿·¤·¤¤¥×¥é¥°¥Þ¤Ë¤è¤ë¿ô³Ø¥ë¡¼¥Á¥ó¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Î¸þ¾å

¿·¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢-fast ¥ª¥×¥·¥ç¥ó¤òȯ¹Ô¤¹¤ë¤È¥Þ¥¯¥í __MATHERR_ERRNO_DONTCARE ¤¬ÄêµÁ¤µ¤ì¤Þ¤¹¡£¤³¤Î¥Þ¥¯¥í¤Ë¤è¤ê Solaris 8 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶­¤Î math.h ¤Ï¡¢<math.h> ¤Ç¥×¥í¥È¥¿¥¤¥×²½¤µ¤ì¤Æ¤¤¤ë¿ô³Ø¥ë¡¼¥Á¥ó¤Î°ìÉô¤ËÂФ·¤Æ¼¡¤Î¤è¤¦¤Ê¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë´ØÏ¢¤·¤¿¥×¥é¥°¥Þ¤òɽÌÀ¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

matherr(3M) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢Î㳰Ū¤Ë¥³¡¼¥É¤¬¥¨¥é¡¼¤ÎÌá¤êÃͤ˰͸¤¹¤ë¾ì¹ç¤Ï¡¢-fast ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë -U__MATHERR_ERRNO_DONTCARE ¥Þ¥¯¥í¤òȯ¹Ô¤·¤Æ¥Þ¥¯¥í¤ò̵¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

ɸ½à¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¥¤¥ó¥é¥¤¥ó²½

ɸ½à¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¥³¡¼¥É¤ÎºÇŬ²½¥ì¥Ù¥ë¤ò¸þ¾å¤µ¤»¤ë¤Ë¤Ï¡¢-xbuiltin[=%all|%none] ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£É¸½à¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¿¤¯ (math.h ¤ä stdio.h ¤Ê¤É¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ê¤É) ¤Ï¡¢°ìÈ̤ˤµ¤Þ¤¶¤Þ¤Ê¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤¬»ÈÍѤµ¤ì¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¥·¥¹¥Æ¥à´Ø¿ô¤ÎÂå¤ï¤ê¤ËÁȤ߹þ¤ß½ã¿è²¾ÁÛ´Ø¿ô¤ò»ÈÍѤ·¤Æ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£-xbuiltin ¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

¤³¤Î¥³¥Þ¥ó¥É¤ÎÂè°ì¤Î¥Ç¥Õ¥©¥ë¥È¤Ï -xbuiltin=%none ¤Ç¤¹¡£¤³¤ì¤Ï¡¢É¸½à¥é¥¤¥Ö¥é¥ê¤Î¤É¤Î´Ø¿ô¤â¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£Âè°ì¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-xbuiltin ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤ËŬÍѤµ¤ì¤Þ¤¹¡£

ÂèÆó¤Î¥Ç¥Õ¥©¥ë¥È¤Ï -xbuiltin=%all ¤Ç¤¹¡£¤³¤ì¤Ï¡¢ºÇŬ²½¤Ë¤è¤ë²þÁ±¤¬¸«¹þ¤Þ¤ì¤ë¾ì¹ç¤Ë¥³¥ó¥Ñ¥¤¥é¤¬É¸½à¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¥¤¥ó¥é¥¤¥ó²½¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£ÂèÆó¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-xbuiltin ¤¬°ú¿ô¤Ê¤·¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤ËŬÍѤµ¤ì¤Þ¤¹¡£

-fast ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢-xbuiltin ¤Ï %all ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£

3 ʸ»úɽµ­Ç§¼±¤ÎÍ­¸ú²½¤È̵¸ú²½

-xtrigraphs ¥ª¥×¥·¥ç¥ó¤Ï¡¢ISO/ANSI C ɸ½àµ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤¬ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤷ¤Þ¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï -xtrigraphs=yes ¤È²¾Äꤷ¡¢¥³¥ó¥Ñ¥¤¥ëñ°ÌÁ´ÂΤËÅϤäƤ¹¤Ù¤Æ¤Î 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤òǧ¼±¤·¤Þ¤¹¡£

¥³¥ó¥Ñ¥¤¥é¤¬ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤È¤·¤Æ²ò¼á¤·¤Æ¤¤¤ëµ¿ÌäÉä (?) ¤ò´Þ¤à¥ê¥Æ¥é¥ëʸ»úÎ󤬥½¡¼¥¹¥³¡¼¥É¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢-xtrigraph=no ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤Îǧ¼±¤ò̵¸ú¤Ë¤Ç¤­¤Þ¤¹¡£-xtrigraphs=no ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥ëñ°ÌÁ´ÂΤËÅϤäƤ¹¤Ù¤Æ¤Î 3 ʸ»úɽµ­¤Îǧ¼±¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£

¼¡¤Î trigraphs_demo.c ¤È¤¤¤¦¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

#include <stdio.h>
 
int main ()
{
 
  (void) printf("(\?\?) in a string appears as (??)\n");
 
  return 0;
}

-xtrigraphs=yes ¤ò»ØÄꤷ¤Æ¤³¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

example% cc -xtrigraphs=yes trigraphs_demo.c
example% a.out
(??) in a string appears as (]

-xtrigraphs=no ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

example% cc -xtrigraphs=no trigraphs_demo.c
example% a.out
(??) in a string appears as (??)

-xtrigraphs ¥ª¥×¥·¥ç¥ó¤Î»ÈÍÑÊýË¡¤Î¾ÜºÙ¤Ï¡¢cc(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£3 ʸ»úɽµ­¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØC ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤Î ANSI/ISO C ¤Ø¤Î°Ü¹Ô¤Ë´Ø¤¹¤ë¾Ï¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò

(SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) Â絬ÌÏ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¾å¤Ç·×»»Î̤襤¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢-xprefetch ¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó latx:factor ¤ò»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ê¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢»ØÄꤵ¤ì¤¿·¸¿ô¤Ë½¾¤Ã¤ÆÀèÆɤߤ«¤é´ØÏ¢¤¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢¤Ë»ê¤ë¤Þ¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÂÔ¤Á»þ´Ö¤òÄ´À°¤¹¤ë¤è¤¦¤Ë¥³¡¼¥É¥¸¥§¥Í¥ì¡¼¥¿¤Ë»Ø¼¨¤·¤Þ¤¹¡£

¾ÜºÙ¤Ï¡¢cc(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¥Ç¥Õ¥©¥ë¥È¸¡º÷¥Ñ¥¹¤Î̵¸ú²½

¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£¤³¤ÎÀá¤Ç¤Ï¡¢¤Þ¤º¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¡¢Â³¤¤¤Æ¤³¤ì¤é¤Î¥¢¥ë¥´¥ê¥º¥à¤ËÂФ¹¤ë -I- ¤Î¸ú²Ì¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

°úÍÑÉä¤Ç°Ï¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à

#include "foo.h" ¤È¤¤¤¦·Á¼°¤Î (Æó½Å°úÍÑÉ䤬»ÈÍѤµ¤ì¤ë) ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£

  1. ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (¤Ä¤Þ¤ê¡Ö¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¡×¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê)

  2. -I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê (¸ºß¤¹¤ë¾ì¹ç)

  3. /usr/include ¥Ç¥£¥ì¥¯¥È¥ê

»³³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à

#include <foo.h> ¤È¤¤¤¦·Á¼°¤Î (»³³ç¸Ì¤¬»ÈÍѤµ¤ì¤ë) ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£

  1. -I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê (¸ºß¤¹¤ë¾ì¹ç)

  2. /usr/include ¥Ç¥£¥ì¥¯¥È¥ê

-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¸¡º÷¥¢¥ë¥´¥ê¥º¥à¤ÎÊѹ¹

¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷µ¬Â§¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤Ë -I- ¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î¤è¤¦¤ËÆ°ºî¤·¤Þ¤¹¡£

¼¡¤ÎÎã¤Ï¡¢prog.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ë -I- ¤ò»ÈÍѤ·¤¿·ë²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

prog.c
#include "a.h"
#include <b.h>
#include "c.h"
c.h
#ifndef _C_H_1
#define _C_H_1
int c1;
#endif
int/a.h
#ifndef _A_H
#define _A_H
#include "c.h"
int a;
#endif
int/b.h
#ifndef _B_H
#define _B_H
#include <c.h>
int b;
#endif
int/c.h
#ifndef _C_H_2
#define _C_H_2
int c2;
#endif

¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê) ¤«¤é #include "foo.h" ¤È¤¤¤¦·Á¼°¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£inc/a.h Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï inc ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤«¤é c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£prog.c Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ï¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï prog.c ¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é c.h ¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£-H ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤Ë»Ø¼¨¤·¤Þ¤¹¡£

example% cc -c -Iinc -H prog.c
inc/a.h
        inc/c.h
inc/b.h
        inc/c.h
c.h

¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢-I- ¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï¡¢#include "foo.h" ¤È¤¤¤¦·Á¼°¤Îʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÂè°ì¸õÊä¤È¤·¤Æ¸¡º÷¤·¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë¡¢-I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¥³¥Þ¥ó¥É¹Ô¤Ë¸½¤ì¤ë½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£inc/a.h Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ï¡¢inc/c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯ ./c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£

example% cc -c -I. -I- -Iinc -H prog.c
inc/a.h
        ./c.h
inc/b.h
        inc/c.h
./c.h

¾ÜºÙ¤Ï¡¢cc(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î -I- ¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

C++ ¥³¥ó¥Ñ¥¤¥é

ɽ 1-2 ¤Ï¡¢C++ ¥³¥ó¥Ñ¥¤¥é (5.2) ¤Î Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Îµ¡Ç½¤Î°ìÉô¤Ï¡¢É½¤Î¼¡¤ÎÀá¤Ç¤µ¤é¤Ë¾Ü¤·¤¯ÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-2   C++ ¥³¥ó¥Ñ¥¤¥é¤Î¿·µ¡Ç½  
µ¡Ç½ ¥ª¥×¥·¥ç¥ó ÀâÌÀ
UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È -xtarget -xchip ¿·¥ê¥ê¡¼¥¹¤Î -xtarget ¤ª¤è¤Ó -xchip ¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢ultra3 ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£UltraSPARC III ¤ÇºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤¿¤á¤Ë¿ä¾©¤µ¤ì¤ë¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤ÎÀá¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹
¥µ¥¤¥º¤ÎÂ礭¤¤¥×¥í¥°¥é¥à¤Î¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥ë®ÅÙ¤¬¤«¤Ê¤ê¹â®¤Ë¤Ê¤ê¤Þ¤¹¡£¤È¤ê¤ï¤±¡¢¥Æ¥ó¥×¥ì¡¼¥È¤ò¿ÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤³¤Î¸ú²Ì¤¬¸²Ãø¤Ë¸½¤ì¤Þ¤¹¡£
°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¼÷Ì¿ -features=tmplife (ɸ½à¥â¡¼¥É¤Î¤ß) ¿·¤·¤¤ -features=tmplife ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢C++ ɸ½àµ¬³Ê¤Î¾ò·ï¤Ë½¾¤Ã¤Æ°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤Ë»Ø¼¨¤·¤Þ¤¹¡£
-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¥Ç¥Õ¥©¥ë¥È¸¡º÷¥Ñ¥¹¤Î̵¸ú²½ -I- ¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷»þ¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£
C++ ¤ËÂФ¹¤ë¶è´Ö±é»»¥µ¥Ý¡¼¥È -xia -library=[no%]interval (SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) C++ ¥³¥ó¥Ñ¥¤¥é¤Î¤³¤Î¥ê¥ê¡¼¥¹¤Ï¡¢¶è´Ö±é»»¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ë C++ ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
Ê£¿ô¸À¸ì¤Î¥ê¥ó¥¯ -xlang -staticlib ¿·¤·¤¤ -xlang ¥ª¥×¥·¥ç¥ó¤Ï¡¢Fortran ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È C++ ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬º®ºß¤·¤¿¥ê¥ó¥¯¤ò¹Ô¤¤¤Þ¤¹¡£
3 ʸ»úɽµ­Ç§¼±¤ÎÍ­¸ú²½¤È̵¸ú²½ -xtrigraphs ¿·¤·¤¤ -xtrigraphs ¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢3 ʸ»úɽµ­ÊÑ´¹¤ò¹Ô¤¦¤«¤É¤¦¤«»ØÄê¤Ç¤­¤Þ¤¹¡£
¥ê¥ó¥«¡¼¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥£¥ë¥¿½èÍý -filt ¿·¤·¤¤ -filt ¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢¥ê¥ó¥«¡¼¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥£¥ë¥¿½èÍý¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢ Éä¹æ²½¤µ¤ì¤¿Ì¾Á°¤òÍ×µá¤Ç¤­¤Þ¤¹¡£
¶¦Í­ libCstd
libCstd ¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó¤¬¡¢C++ ¥³¥ó¥Ñ¥¤¥é¤Î lib ¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
¶¦Í­ libiostream
libiostream ¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó¤¬¡¢C++ ¥³¥ó¥Ñ¥¤¥é¤Î lib ¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
ºÇŬ²½¥×¥é¥°¥Þ
C++ ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¿·¤·¤¤ºÇŬ²½¥×¥é¥°¥Þ¤Ç¤¢¤ë no_side_effects ¤È returns_new_memory ¤òǧ¼±¤·¤Þ¤¹¡£
³ÈÄ¥»Ò .c++ ¤Îǧ¼±
¿·¥ê¥ê¡¼¥¹¤Î C++ ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢.c++ ¤òÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë̾ÀÜÈø¼­¤È¤·¤Æǧ¼±¤·¤Þ¤¹¡£
ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò -xprefetch=...,latx;factor ¤³¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢¥Ç¡¼¥¿¤òÀèÆɤߤ¹¤ë¤¿¤á¤Ë¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤¹¤ëÌ¿Îá¤È¡¢¤½¤Î¸å»ÈÍѤ¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢Ì¿Îá¤Î¥Ç¡¼¥¿¤¬¤É¤ì¤¯¤é¤¤»þ´ÖŪ¤ËÎ¥¤ì¤Æ¤¤¤ë¤«»ØÄê¤Ç¤­¤Þ¤¹¡£


UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È

UltraSPARC III ¥×¥í¥»¥Ã¥µ¾å¤Ç¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤¹¤ë¾ì¹ç¤ËºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

-fast -xcrossfile -xprofile={collect:|use:}

°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¼÷Ì¿

¼°¤òɾ²Á¤¹¤ë¾ì¹ç¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤Ï°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤ä¡¢¥­¥ã¥¹¥È¤¬¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¾ì¹ç¤¬¤½¤¦¤Ç¤¹¡£¸Å¤¤¸À¸ìÄêµÁ¤Ç¤Ï¡¢°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤ËÅþ㤹¤ë¤Þ¤Ç¤ÎǤ°Õ¤Î»þÅÀ¤Ç¤³¤Î¤è¤¦¤Ê°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤Ç¤­¤Þ¤·¤¿¡£¤·¤«¤·¡¢C++ ɸ½àµ¬³Ê¤Ç¤Ï¡¢°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤¬»²¾È¤Î½é´ü²½¤Ë»ÈÍѤµ¤ì¤Ê¤¤¤«¤®¤ê¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë¼°Á´ÂΤκǸå¤Ç¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤ÈÄê¤á¤Æ¤¤¤Þ¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢C++ ¥³¥ó¥Ñ¥¤¥é (5.2) ¤Ï¡¢¸Å¤¤¸À¸ìÄêµÁ¤ò¼ÂÁõ¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ç¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤·¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥é¤Ë C++ ɸ½àµ¬³Ê¤Î¾ò·ï¤Ë½¾¤Ã¤Æ°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤µ¤»¤ë¤Ë¤Ï¡¢¿·¤·¤¤ -features=tmplife ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

Îã¤È¤·¤Æ¡¢¼¡¤Î¥Ö¥í¥Ã¥¯¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

{  foo(ClassA()); bar(ClassB()); some-statement; }

¥³¥Þ¥ó¥É¹Ô¤Ç -features=tmplife ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·½ç½ø¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

tmp1=ClassA(); foo(tmp1); tmp1.~ClassA();
tmp2=ClassB(); bar(tmp2); tmp2.~ClassB(); 
some-statement;

-features=tmplife ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¸Æ¤Ó½Ð¤·½ç½ø¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

tmp1=ClassA(); foo(tmp1); 
tmp2=ClassB(); bar(tmp2); 
some-statement;
tmp2.~ClassB(); 
tmp1.~ClassA();

¤³¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢¸ß´¹¥â¡¼¥É (-compat[=4]) ¤Ç¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡£

-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¥Ç¥Õ¥©¥ë¥È¸¡º÷¥Ñ¥¹¤Î̵¸ú²½

¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷»þ¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£¤³¤ÎÀá¤Ç¤Ï¡¢¤Þ¤º¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¡¢Â³¤¤¤Æ¤³¤ì¤é¤Î¥¢¥ë¥´¥ê¥º¥à¤ËÂФ¹¤ë -I- ¤Î¸ú²Ì¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

°úÍÑÉä¤Ç°Ï¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à

#include "foo.h" ¤È¤¤¤¦·Á¼°¤Î (Æó½Å°úÍÑÉ䤬»ÈÍѤµ¤ì¤ë) ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£

  1. ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (¤Ä¤Þ¤ê¡Ö¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¡×¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê)

  2. -I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê (¸ºß¤¹¤ë¾ì¹ç)

  3. ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë C++ ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¡¢ANSI C ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¡¢¤ª¤è¤ÓÆüìÌÜŪ¥Õ¥¡¥¤¥ë¤Î³Æ¥Ç¥£¥ì¥¯¥È¥ê

  4. /usr/include ¥Ç¥£¥ì¥¯¥È¥ê

»³³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥¢¥ë¥´¥ê¥º¥à

#include <foo.h> ¤È¤¤¤¦·Á¼°¤Î (»³³ç¸Ì¤¬»ÈÍѤµ¤ì¤ë) ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¾ì¹çÇÉ¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£

  1. -I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê (¸ºß¤¹¤ë¾ì¹ç)

  2. ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë C++ ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¡¢ANSI C ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¡¢¤ª¤è¤ÓÆüìÌÜŪ¥Õ¥¡¥¤¥ë¤Î³Æ¥Ç¥£¥ì¥¯¥È¥ê

  3. /usr/include ¥Ç¥£¥ì¥¯¥È¥ê


    Ãí - ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬É¸½à¥Ø¥Ã¥À¡¼¤Î̾Á°¤È°ìÃפ¹¤ë¾ì¹ç¤Ï¡¢¡ØC++ ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤ÎÂè 5 ¾Ï¤Î¡Öɸ½à¥Ø¥Ã¥À¡¼¤Î¼ÂÁõ¡×¤ÎÀá¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-I- ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë¸¡º÷¥¢¥ë¥´¥ê¥º¥à¤ÎÊѹ¹

¿·¤·¤¤ -I- ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷µ¬Â§¤òºÙ¤«¤¯À©¸æ¤Ç¤­¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤Ë -I- ¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¼¡¤Î¤è¤¦¤ËÆ°ºî¤·¤Þ¤¹¡£

¼¡¤ÎÎã¤Ï¡¢prog.cc ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ë -I- ¤ò»ÈÍѤ·¤¿·ë²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

prog.cc
#include "a.h"
#include <b.h>
#include "c.h"
c.h
#ifndef _C_H_1
#define _C_H_1
int c1;
#endif
inc/a.h
#ifndef _A_H
#define _A_H
#include "c.h"
int a;
#endif
inc/b.h
#ifndef _B_H
#define _B_H
#include <c.h>
int b;
#endif
inc/c.h
#ifndef _C_H_2
#define _C_H_2
int c2;
#endif

¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê) ¤«¤é #include "foo.h" ¤È¤¤¤¦·Á¼°¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£inc/a.h Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ï inc ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤«¤é c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£prog.c Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ï¡¢¥×¥í¥×¥í¥»¥Ã¥µ¤Ï¡¢prog.c ¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é c.h ¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£-H ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤Ë»Ø¼¨¤·¤Þ¤¹¡£

example% CC -c -Iinc -H prog.cc
inc/a.h
        inc/c.h
inc/b.h
        inc/c.h
c.h

¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢-I- ¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥é¤Ï¡¢ #include "foo.h" ¤È¤¤¤¦·Á¼°¤Îʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÂè°ì¸õÊä¤È¤·¤Æ¸¡º÷¤·¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë¡¢-I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¥³¥Þ¥ó¥É¹Ô¤Ë¸½¤ì¤ë½ç¤Ë¸¡º÷¤·¤Þ¤¹¡£inc/a.h Æâ¤Î #include "c.h" ʸ¤ò½èÍý¤¹¤ë¾ì¹ç¤Ï¡¢inc/c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯ ./c.h ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£

example% CC -c -I. -I- -Iinc -H prog.cc
inc/a.h
        ./c.h
inc/b.h
        inc/c.h
./c.h

¾ÜºÙ¤Ï¡¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë -I- ¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

C++ ¤ËÂФ¹¤ë¶è´Ö±é»»¥µ¥Ý¡¼¥È

(SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) Sun WorkShopTM 6 update 1 C++ Compilers (5.2) ¤Ï¡¢C++ ¶è´Ö±é»»¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ë C++ ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Î ¡Ö¶è´Ö±é»»¡×¤È¡¢http://docs.sun.com (ForteTM Developer 6 update 1/Sun WorkShop 6 update 1 Collection) ¤Ë·ÇºÜ¤µ¤ì¤Æ¤¤¤ë¡ØC++ Interval Arithmetic Programming Reference¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

´ØÏ¢¤¹¤ë¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ï¡¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¼¡¤Î¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

Ê£¿ô¸À¸ì¤Î¥ê¥ó¥¯

¿·¤·¤¤ -xlang ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢Fortran ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È C++ ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢C++ ¤Î¼ç¥×¥í¥°¥é¥à¤È Fortran ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤Ç¤­¤Þ¤¹¡£

Ê£¿ô¤Î¸À¸ì¤òƱ»þ¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¥É¥é¥¤¥Ð¤ò·èÄꤹ¤ë¤Ë¤Ï¡¢¼¡¤Î¸À¸ì³¬Áؤò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

  1. C++

  2. Fortran 95 (¤Þ¤¿¤Ï Fortran 90)

  3. Fortran 77

Fortran 95¡¢Fortran 77¡¢¤ª¤è¤Ó C++ ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò°ì½ï¤Ë¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢ºÇ¾å°Ì¤Î¸À¸ì¤Î¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢C++ ¤È Fortran 95 ¤Î³Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î C++ ¥³¥ó¥Ñ¥¤¥é¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£

example% CC -xlang=f95 ...

Fortran 95 ¤È Fortran 77 ¤Î³Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë Fortran 95 ¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Þ¤¹¡£

example% f95 -xlang=f77 ...

¾ÜºÙ¤Ï¡¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

3 ʸ»úɽµ­Ç§¼±¤ÎÍ­¸ú²½¤È̵¸ú²½

-xtrigraphs ¥ª¥×¥·¥ç¥ó¤Ï¡¢ISO/ANSI C ɸ½àµ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤¬ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤷ¤Þ¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï -xtrigraphs=yes ¤È²¾Äꤷ¡¢¥³¥ó¥Ñ¥¤¥ëñ°ÌÁ´ÂΤËÅϤäƤ¹¤Ù¤Æ¤Î 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤òǧ¼±¤·¤Þ¤¹¡£

¥³¥ó¥Ñ¥¤¥é¤¬ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤È¤·¤Æ²ò¼á¤·¤Æ¤¤¤ëµ¿ÌäÉä (?) ¤ò´Þ¤à¥ê¥Æ¥é¥ëʸ»úÎ󤬥½¡¼¥¹¥³¡¼¥É¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢-xtrigraph=no ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ 3 ʸ»úɽµ­¥·¡¼¥±¥ó¥¹¤Îǧ¼±¤ò̵¸ú¤Ë¤Ç¤­¤Þ¤¹¡£-xtrigraphs=no ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥ëñ°ÌÁ´ÂΤËÅϤäƤ¹¤Ù¤Æ¤Î 3 ʸ»úɽµ­¤Îǧ¼±¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£

¼¡¤Î trigraphs_demo.cc ¤È¤¤¤¦¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

#include <stdio.h>
 
int main ()
{
 
  (void) printf("(\?\?) in a string appears as (??)\n");
 
  return 0;
}

-xtrigraphs=yes ¤ò»ØÄꤷ¤Æ¤³¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

example% CC -xtrigraphs=yes trigraphs_demo.cc
example% a.out
(??) in a string appears as (]

-xtrigraphs=no ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

example% CC -xtrigraphs=no trigraphs_demo.cc
example% a.out
(??) in a string appears as (??)

-xtrigraphs ¥ª¥×¥·¥ç¥ó¤Î»ÈÍѤξܺ٤ϡ¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£3 ʸ»úɽµ­¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØC ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤Î ANSI/ISO C ¤Ø¤Î°Ü¹Ô¤Ë´Ø¤¹¤ë¾Ï¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¥ê¥ó¥«¡¼¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥£¥ë¥¿½èÍý

¿·¤·¤¤ -filt ¥ª¥×¥·¥ç¥ó¤Ï¡¢Ä̾CC ¤¬¥ê¥ó¥«¡¼¤«¤é¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ¹Ô¤¦¥Õ¥£¥ë¥¿½èÍý¤òÍ޻ߤ·¤Þ¤¹¡£

¼¡¤ÎÎã¤Ï¡¢¼¡¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ë -filt ¤ò»ÈÍѤ¹¤ë¸ú²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

 
// filt_demo.cc
class type {
public:
    virtual ~type(); // ²¿¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó
};
 
int main()
{
    type t;
}

¤³¤Î¥³¡¼¥É¤ò -filt ¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï -filt=names,returns,errors ¤È²¾Äꤷ¡¢°Ê²¼¤Î¤è¤¦¤Êɸ½à¤Î½ÐÎϤòɽ¼¨¤·¤Þ¤¹¡£

example% CC filt_demo.cc
̤ÄêµÁ¤Î             ºÇ½é¤Ë»²¾È¤·¤Æ¤¤¤ë
¥·¥ó¥Ü¥ë                  ¥Õ¥¡¥¤¥ë
type::~type()         filt_demo.o
type::__vtbl          filt_demo.o
[¥Ò¥ó¥È: ¥¯¥é¥¹·¿¤Î¡¢¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Æ¤ª¤é¤º¡¢½ã¿è¤Ç¤Ê¤¤ 1 ¤ÄÌܤβ¾ÁÛ´Ø¿ô¤¬
ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£]
 
ld: ½ÅÂç¤Ê¥¨¥é¡¼: ¥·¥ó¥Ü¥ë»²¾È¥¨¥é¡¼¡£a.out ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë½ÐÎϤϤ¢¤ê¤Þ¤»¤ó¡£


Ãí°Õ - ¾åµ­¤Î¥Ò¥ó¥È¤Ï¡¢ÆüËܸì´Ä¶­¤Ç¤Ïµ»½ÑŪÀ©¸Â¤Î¤¿¤á½ÐÎϤµ¤ì¤Þ¤»¤ó¡£

¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢Éä¹æ²½¤µ¤ì¤¿ C++ ¥ê¥ó¥«¡¼Ì¾¤ÎÉü¹æ²½¤òÍ޻ߤ¹¤ë¤È¤È¤â¤Ë¡¢¥ê¥ó¥«¡¼¥¨¥é¡¼¤Î C++ ÀâÌÀ¤òÍ޻ߤ·¤Þ¤¹¡£

example% CC -filt=no%names,no%errors filt_demo.cc
̤ÄêµÁ¤Î                       ºÇ½é¤Ë»²¾È¤·¤Æ¤¤¤ë
¥·¥ó¥Ü¥ë                             ¥Õ¥¡¥¤¥ë
__1cEtype2T6M_v_                    filt_demo.o
__1cEtypeG__vtbl_                   filt_demo.o
ld: ½ÅÂç¤Ê¥¨¥é¡¼: ¥·¥ó¥Ü¥ë»²¾È¥¨¥é¡¼¡£a.out ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë½ÐÎϤϤ¢¤ê¤Þ¤»¤ó¡£

¾ÜºÙ¤Ï¡¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¶¦Í­ libCstd

Sun WorkShop 6 update 1 Compilers C++ (5.2) ¤Ë¤Ï¡¢libCstd ¥é¥¤¥Ö¥é¥ê¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó¤¬´Þ¤Þ¤ì¤Þ¤¹¡£

libCstd ¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥ê¥ó¥¯¤òÊÌ¡¹¤Ë¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¥ê¥ó¥¯»þ¤Ë¤Ï¡¢¼¡¤ÎÎã¤Ë¼¨¤¹¤è¤¦¤Ë -library=no%Cstd ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥Þ¥ó¥É¹Ô¤Ë¶¦Í­¥é¥¤¥Ö¥é¥ê̾¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£

example% CC -library=no%Cstd *.o \
-o myprog /opt/SUNWspro/WS6U1/lib/libCstd.so.1

Sun WorkShop 6 update 1 ¤¬ /opt °Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ë¼ÂºÝ¤Î¥Ñ¥¹¤ò¤ª¿Ò¤Í¤¯¤À¤µ¤¤¡£


Ãí - C++ ¥½¡¼¥¹¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¥³¥Þ¥ó¥ÉÆâ¤Ë -library=no%Cstd ¤ò»ÈÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï C++ ¤Îɸ½à¥Ø¥Ã¥À¡¼¤ò¸¡º÷¤Ç¤­¤Þ¤»¤ó¡£

¶¦Í­ libiostream

Sun WorkShop 6 update 1 C++ Compilers (5.2) ¤Ë¤Ï¡¢½¾ÍèÊý¼°¤Î iostream ¥é¥¤¥Ö¥é¥ê¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó¡¢libiostream ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¶¦Í­¥Ð¡¼¥¸¥ç¥ó libiostream ¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥ê¥ó¥¯¤òÊÌ¡¹¤Ë¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¥ê¥ó¥¯»þ¤Ë¤Ï¡¢¼¡¤ÎÎã¤Ë¼¨¤¹¤è¤¦¤Ë¥³¥Þ¥ó¥É¹Ô¤Ë¶¦Í­¥é¥¤¥Ö¥é¥ê̾¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¡¢-library=iostream ¥ª¥×¥·¥ç¥ó¤Ï»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£

example% CC *.o -o myprog \
/opt/SUNWspro/WS6U1/lib/lib/libiostream.so.1

Sun WorkShop 6 update 1 ¤¬ /opt °Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ë¼ÂºÝ¤Î¥Ñ¥¹¤ò¤ª¿Ò¤Í¤¯¤À¤µ¤¤¡£


Ãí - ¥×¥í¥°¥é¥à¹½Ãۤˤª¤±¤ë³Æ¥³¥ó¥Ñ¥¤¥ë¤Ç¤Ï -library=iostream ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¡¢¥ê¥ó¥¯»þ¤Ë¤Ï -library=iostream ¤ò»ÈÍѤ·¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

ºÇŬ²½¥×¥é¥°¥Þ

¥ª¥×¥Æ¥£¥Þ¥¤¥¶¤¬¤è¤êÍ¥¤ì¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤è¤¦¤Ë¡¢°Ê²¼¤Î¿·¤·¤¤¥×¥é¥°¥Þ¤ò»ÈÍѤǤ­¤Þ¤¹¡£

¤É¤Á¤é¤Î¥×¥é¥°¥Þ¤â¡¢name ¤Ï¤½¤Î̾Á°¤ò»ÈÍѤ¹¤ë¡¢Ä¾Á°¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò¼¨¤·¤Þ¤¹¡£

¤³¤ì¤é¤Î¥×¥é¥°¥Þ¤Ï¡¢¤½¤ì¤é¤¬»²¾È¤¹¤ë´Ø¿ô¤Îľ¸å¤ËÃÖ¤¤¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢¼¡¤ÎºÇ½é¤Î¥³¡¼¥ÉÎã¤Ï no_side_effects ¥×¥é¥°¥Þ¤ÎÀµ¤·¤¤ÇÛÃÖ¤ò¼¨¤·¤Æ¤ª¤ê¡¢2 ¤ÄÌܤÎÎã¤Ï¸í¤Ã¤¿ÇÛÃÖ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

class good_example {
  void no_op();
  #pragma no_side_effects (no_op) // Àµ¤·¤¤ÇÛÃÖ
} 
 
class bad_example{  
  void no_op(); 
} 
#pragma no_side_effects (no_op) // ¸í¤Ã¤¿ÇÛÃÖ

³ÈÄ¥»Ò .c++ ¤Îǧ¼±

¥³¥Þ¥ó¥É¹Ô¾å¤Ë¥Õ¥¡¥¤¥ë̾¤¬½Ð¸½¤¹¤ë¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤ÏÀÜÈø¼­¤ò¸«¤Æ¤½¤Î¥Õ¥¡¥¤¥ë¤ò¤É¤Î¤è¤¦¤Ë½èÍý¤¹¤ë¤«¤ò·èÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢.o ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡£Sun WorkShop 6 update 1 C++ Compilers (5.2) ¤Ï¡¢°Ê²¼¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò C++ ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤È¤·¤Æǧ¼±¤·¤Þ¤¹¡£

ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò

(SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) Â絬ÌÏ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¾å¤Ç·×»»Î̤襤¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢-xprefetch ¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó latx:factor ¤ò»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ê¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢»ØÄꤵ¤ì¤¿·¸¿ô¤Ë½¾¤Ã¤ÆÀèÆɤߤ«¤é´ØÏ¢¤¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢¤Ë»ê¤ë¤Þ¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÂÔ¤Á»þ´Ö¤òÄ´À°¤¹¤ë¤è¤¦¤Ë¥³¡¼¥É¥¸¥§¥Í¥ì¡¼¥¿¤Ë»Ø¼¨¤·¤Þ¤¹¡£

¾ÜºÙ¤Ï¡¢CC(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

Fortran ¥³¥ó¥Ñ¥¤¥é

Sun WorkShop 6 update 1 ¤Ç¤Ï¡¢Fortran 95 ¥³¥ó¥Ñ¥¤¥é¤È Fortran 77 ¥³¥ó¥Ñ¥¤¥é¤ÎξÊý¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ɽ 1-3 ¤Ï¡¢Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤Î¤¦¤Á Fortran 95 ¥³¥ó¥Ñ¥¤¥é¤È Fortran 77 ¥³¥ó¥Ñ¥¤¥é¤ÎξÊý¤Ë¶¦Ä̤¹¤ëµ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Îµ¡Ç½¤Î°ìÉô¤Ï¡¢É½¤Î¼¡¤ÎÀá¤Ç¤µ¤é¤Ë¾Ü¤·¤¯ÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-3   Fortran ¥³¥ó¥Ñ¥¤¥é¤Î¿·µ¡Ç½
µ¡Ç½ ¥ª¥×¥·¥ç¥ó ÀâÌÀ
UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È -xtarget -xchip ¿·¥ê¥ê¡¼¥¹¤Î -xtarget ¤ª¤è¤Ó -xchip ¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢ultra3 ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£UltraSPARC III ¤ÇºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤¿¤á¤Ë¿ä¾©¤µ¤ì¤ë»ÈÍѥե饰¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤ÎÀá¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
int2 ÁȤ߹þ¤ß¤Î¥µ¥Ý¡¼¥È
int2 ÁȤ߹þ¤ß¤Ï¡¢¸Å¤¤ Fortran 77 ¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥Ç¡¼¥¿°ú¿ô var ¤ò 2 ¥Ð¥¤¥ÈÀ°¿ô¤ËÊÑ´¹¤¹¤ë¾å¤Ç¿ä¾©¤µ¤ì¤ë Fortran 95 ¤Î int (var,2) ÁȤ߹þ¤ß¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Á¤Þ¤¹¡£
-fast ¥ª¥×¥·¥ç¥ó¤Î³ÈÄ¥ -fast ¿·¥ê¥ê¡¼¥¹¤Î -fast ¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢-xprefetch ¥ª¥×¥·¥ç¥ó¤¬´Þ¤Þ¤ì¤Þ¤¹¡£
ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò -xprefetch=...,latx:factor ¤³¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢¥Ç¡¼¥¿¤òÀèÆɤߤ¹¤ë¤¿¤á¤Ë¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤¹¤ëÌ¿Îá¤È¡¢¤½¤Î¸å»ÈÍѤ¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢Ì¿Îá¤Î¥Ç¡¼¥¿¤¬¤É¤ì¤¯¤é¤¤Î¥¤ì¤Æ¤¤¤ë¤«¤ò»þ´ÖŪ¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡£
Ê£¿ô¸À¸ì¤Î¥ê¥ó¥¯ -xlang ¿·¤·¤¤ -xlang ¥ª¥×¥·¥ç¥ó¤Ï¡¢Fortran ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È C++ ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬º®ºß¤·¤¿¥ê¥ó¥¯¤ò¹Ô¤¤¤Þ¤¹¡£


UltraSPARC III ¥×¥í¥»¥Ã¥µ¤Î¥µ¥Ý¡¼¥È

UltraSPARC III ¥×¥í¥»¥Ã¥µ¾å¤Ç¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤¹¤ë¾ì¹ç¤ËºÇÎɤΥѥե©¡¼¥Þ¥ó¥¹¤òÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£

-fast -xcrossfile -xprofile={collect:|use:}

int2 ÁȤ߹þ¤ß¤Î¥µ¥Ý¡¼¥È

¿·¥ê¥ê¡¼¥¹¤Î Fortran 95 ¥³¥ó¥Ñ¥¤¥é¤È Fortran 77 ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢2 ¥Ð¥¤¥ÈÀ°¿ô¤Ø¤Î¥Ç¡¼¥¿·¿ÊÑ´¹¤Ë int2 ÁȤ߹þ¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£int2 ¤ÎÁȤ߹þ¤ß¤È¤·¤Æ¤Î»ÈÍѤϡ¢Â¿¤¯¤Î¸Å¤¤ Fortran 77 ¥³¡¼¥É¤Ç¤Ï M=int2(J) ¤È¤¤¤¦½ñ¼°¤Ç½Ð¸½¤·¤Æ¤¤¤Þ¤¹¡£

Fortran 95 ¤Ç¤Ï¡¢M=int(J,2) ¤ò»ÈÍѤ¹¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£

-fast ¥ª¥×¥·¥ç¥ó¤Î³ÈÄ¥

-fast ¥ª¥×¥·¥ç¥ó¤Ë´Þ¤á¤é¤ì¤ë¥ª¥×¥·¥ç¥ó¤Î°ìÍ÷¤Ë -xprefetch ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Þ¤·¤¿¡£¤³¤ì¤Ë¤è¤ê¡¢¥³¥ó¥Ñ¥¤¥é¤ÏÀèÆɤ߻ØÎá¤òÀïάŪ¤ËÀ¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£-xprefetch ¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ç¡¼¥¿½èÍý¥ë¡¼¥×¤ò»ý¤Ä¥³¡¼¥É¤Ç¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¤«¤Ê¤ê¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£UltraSPARC III ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÎÀèÆɤߵ¡¹½¤Ï¡¢UltraSPARC II ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç»ÈÍѤµ¤ì¤¿µ¡¹½¤è¤ê¤â¤Ï¤ë¤«¤Ë²þÎɤµ¤ì¤Æ¤¤¤Þ¤¹¡£

ÀèÆɤßÀøºß´ü´Ö¤Î»ØÄê»Ò

(SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) Â絬ÌÏ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¾å¤Ç·×»»Î̤襤¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢-xprefetch ¤Î¿·¤·¤¤¥µ¥Ö¥ª¥×¥·¥ç¥ó latx:factor ¤ò»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ê¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢»ØÄꤵ¤ì¤¿·¸¿ô¤Ë½¾¤Ã¤ÆÀèÆɤߤ«¤é´ØÏ¢¤¹¤ë¥í¡¼¥É¤Þ¤¿¤Ï¥¹¥È¥¢¤Ë»ê¤ë¤Þ¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÂÔ¤Á»þ´Ö¤òÄ´À°¤¹¤ë¤è¤¦¤Ë¥³¡¼¥É¥¸¥§¥Í¥ì¡¼¥¿¤Ë»Ø¼¨¤·¤Þ¤¹¡£

¾ÜºÙ¤Ï¡¢f77(1) ¤È f95(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

Ê£¿ô¸À¸ì¤Î¥ê¥ó¥¯

¿·¤·¤¤ -xlang ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢Fortran ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È C++ ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢Fortran ¤Î¼ç¥×¥í¥°¥é¥à¤ò C++ ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤Ç¤­¤Þ¤¹¡£

Ê£¿ô¤Î¸À¸ì¤òƱ»þ¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¥É¥é¥¤¥Ð¤ò·èÄꤹ¤ë¤Ë¤Ï¡¢¼¡¤Î¸À¸ì³¬Áؤò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

  1. C++

  2. Fortran 95

  3. Fortran 77

Fortran 95¡¢Fortran 77¡¢¤ª¤è¤Ó C++ ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò°ì½ï¤Ë¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢ºÇ¾å°Ì¤Î¸À¸ì¤Î¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢C++ ¤È Fortran 95 ¤Î³Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î C++ ¥³¥ó¥Ñ¥¤¥é¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£

example% CC -xlang=f95 ...

Fortran 95 ¤È Fortran 77 ¤Î³Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë Fortran 95 ¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Þ¤¹¡£

example% f95 -xlang=f77 ...

¶è´Ö±é»»

ɽ 1-4 ¤Ï¡¢Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Î¶è´Ö±é»»¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-4   ¶è´Ö±é»»¤Î¿·µ¡Ç½
µ¡Ç½ ÀâÌÀ
C++ ¤ËÂФ¹¤ë¶è´Ö±é»»¥µ¥Ý¡¼¥È (SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à) ¤³¤Î¥ê¥ê¡¼¥¹¤Î C++ ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¶è´Ö±é»»¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ë C++ ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
¿·¤·¤¤ f95 INTERVAL ÁȤ߹þ¤ß±é»»»Ò¤È´Ø¿ô f95 ¶è´Ö±é»»¤Ç¤Ï¡¢°Í¸·¿¤Î¸º»»±é»»»Ò¡¢Àѽ¸¹ç´Ø¿ô¤Ë¤è¤ë½ü»»¡¢¤ª¤è¤ÓÈÆÍÑŪ¤ÊÍð¿ôÀ¸À®¥µ¥Ö¥ë¡¼¥Á¥ó RANDOM_NUMBER ¤Î¶è´Ö¥Ð¡¼¥¸¥ç¥ó¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£


C++ ¤ËÂФ¹¤ë¶è´Ö±é»»¥µ¥Ý¡¼¥È

Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ë¤Ï¡¢Fortran 95 ¶è´Ö±é»»¤Ë´Þ¤Þ¤ì¤ë¶è´Ö´Ø¿ô¤È¶è´Ö±é»»»Ò¤Î C++ ¥Ð¡¼¥¸¥ç¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£C++ ¶è´Ö±é»»¥é¥¤¥Ö¥é¥ê¤Î¾ÜºÙ¤Ï¡¢http://docs.sun.com (ForteTM Developer 6 update 1/Sun WorkShop 6 update 1 Collection) ¤Ë·ÇºÜ¤µ¤ì¤Æ¤¤¤ë¡ØC++ Interval Arithmetic Programming Reference¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

C++ ¤Î¶è´Ö±é»»¥µ¥Ý¡¼¥È¤Ï¡¢C++ ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤È 3 ¤Ä¤Î¶è´Ö¥¯¥é¥¹ (float¡¢double¡¢¤ª¤è¤Ó long double ¤Ë¤½¤ì¤¾¤ì 1 ¤Ä) ¤òÄ󶡤¹¤ë¥é¥¤¥Ö¥é¥ê¤òÄ󶡤·¤Þ¤¹¡£¶è´Ö¥¯¥é¥¹¤Ë¤Ï¼¡¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤Þ¤¹¡£

ɸ½à¥â¡¼¥É¤Î¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¡¢¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤Ï¤¹¤Ù¤Æ̾Á°¶õ´Ö SUNW_interval ¤Ë¤¢¤ê¤Þ¤¹¡£

¥³¥ó¥Ñ¥¤¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢¼¡¤ÎÍ×ÁǤ«¤é¹½À®¤µ¤ì¤Þ¤¹¡£

C++ ¶è´Ö±é»»µ¡Ç½¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥³¡¼¥É¤Ë¼¡¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£

#include <suninterval.h>

¼¡¤Ë¡¢-xia ¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£

example% CC -o filename -xia filename.cc

¿·¤·¤¤ f95 INTERVAL ÁȤ߹þ¤ß±é»»»Ò¤È´Ø¿ô

¤³¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢°Ê²¼¤Îµ¡Ç½¤¬ f95 ¶è´Ö±é»»¤ËÄɲ䵤ì¤Þ¤·¤¿¡£

°Í¸·¿¤Î¸º»»±é»»»Ò

°Í¸·¿¤Î¸º»»±é»»»Ò .DSUB. ¤Ï¡¢¶è´Ö±é»»²Ã»»¤Î°ìÊý¤Î¥ª¥Ú¥é¥ó¥É¤Î²óÉü¤Ë»ÈÍѤǤ­¤Þ¤¹¡£

°ìÊý¤Î¶è´ÖÊÑ¿ô¤¬Â¾Êý¤Î¶è´ÖÊÑ¿ô¤ËŬÍѤµ¤ì¤¿»»½Ñ±é»»¤Î·ë²Ì¤Ç¤¢¤ë¾ì¹ç¡¢¤³¤ì¤é¤Î 2 ¤Ä¤Î¶è´ÖÊÑ¿ô¤Ï°Í¸´Ø·¸¤Ë¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢X = A + B ¤Î¾ì¹ç¡¢X ¤Ï A ¤È B ¤ÎξÊý¤Ë¤è¤Ã¤Æ·è¤Þ¤ê¤Þ¤¹¡£X ¤«¤é A ¤Þ¤¿¤Ï B ¤ò²óÉü¤µ¤»¤ë¾ì¹ç¡¢°Í¸·¿¤Î¶è´Ö¸º»»¤Ï¤è¤ê¶¹Éý¤Î¶è´Ö·ë²Ì¤òÀ¸À®¤·¤Þ¤¹¡£


Ãí - Äê¿ô¤ÏÆÈΩ¤·¤Æ¤¤¤ë¤¿¤á¡¢°Í¸·¿¤Î±é»»¤ò¶è´ÖÄê¿ô¤ËŬÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£°Í¸·¿¤Î±é»»¤ò¶è´ÖÄê¿ô¤ËŬÍѤ¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë»þ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£

X.DSUB.A ¤Î·ë²Ì¤Ë¤Ï¡¢¶è´ÖÅù¼° X = A + B ¤Î B ¤ËÂФ¹¤ë²ò¤¬´Þ¤Þ¤ì¤Þ¤¹¡£²ò¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢·ë²Ì¤Ï [-inf,inf] ¤Ç¤¹¡£

°Ê²¼¤ÎÎã¤Ï¡¢DSUB ¤ÎÆ°ºî¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

Àѽ¸¹ç´Ø¿ô¤Ë¤è¤ë½ü»»

´Ø¿ô DIVIX ¤Ï¡¢¶è´Ö C ¤È¶è´Ö½ü»»±é»» (B/A) ¤Î¶¦ÄÌÉôʬ¤Î¶è´Ö³ÊǼÁõÃ֤Ǥ¢¤ë C Ç (B/A) ¤òÊÖ¤·¤Þ¤¹¡£

A ¤Ë¥¼¥í¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢¶è´Ö½ü»»±é»» (B/A) ¤Î¿ô³Ø¾å¤Î·ë²Ì¤Ï¸ß¤¤¤ËÁǤǤ¢¤ë 2 ¤Ä¤Î¶è´Ö¤ÎϽ¸¹ç¤Ç¤¹¡£Ï½¸¹çÆâ¤Î³Æ¶è´Ö¤Ï¡¢¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¶è´Ö±é»»¥·¥¹¥Æ¥à¤Çɽ¸½¤Ç¤­¤Þ¤¹¡£DIVIX ´Ø¿ô¤Ï¡¢¤³¤ì¤é¤Î¶è´Ö¤Î 1 ¤Ä¤Þ¤¿¤Ï°ìÉô¤òÊÖ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¼¡¤ÎÎã¤Ï¡¢DIVIX ¤Î½ÐÎϤò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

DIVIX( [3.0,5.0] , [6.0,15.0] , [2.0,6.0] )== [2.0,5.0]
DIVIX( [-3.0,5.0] , [8.0,20.0] , [-0.5,1.0] )== [EMPTY]
DIVIX( [-3.0,5.0] , [8.0,20.0] , [-7.0,8.0] )== [-7.0,8.0]
DIVIX ([-1,1], [1], [-Inf,0.0E+0]) == [-Inf,-1.0]
DIVIX ([-1,1], [1], [0,inf])       == [1.0,Inf]

Íð¿ô¥µ¥Ö¥ë¡¼¥Á¥ó

RANDOM_NUMBER(HARVEST) ¤Ï¡¢¶è´ÖÊÑ¿ô HARVEST ¤òÄ̤·¤Æ 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Îµ¿»÷Íð¿ô¶è´Ö¤òÊÖ¤·¤Þ¤¹¡£

0 £ £ < 1 ¤Ï¡¢¶è´Ö½ªÎ»°ÌÃÖ ( ¤Ï²¼°Ì¤Î½ªÎ»°ÌÃÖ¡¢ ¤Ï¾å°Ì¤Î½ªÎ»°ÌÃÖ) ¤Ë¤Ä¤¤¤ÆÅö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á ¤Ï¶è´Ö [0, 1] ¤Ë¶ÑÅù¤ËʬÇÛ¤µ¤ì¡¢ , ¤¬Í¿¤¨¤é¤ì¤ë¤È ¤Ï¶è´Ö ¤Ë¶ÑÅù¤ËʬÇÛ¤µ¤ì¤Þ¤¹¡£

dbx

ɽ 1-5 ¤Ï¡¢dbx ¤Î Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-5   dbx ¤Î¿·µ¡Ç½
µ¡Ç½ ÀâÌÀ
Fortran ¤Ë¤ª¤±¤ë¶è´Ö±é»»¼°¤Î¥µ¥Ý¡¼¥È ¿·¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢Fortran ¤Î¶è´Ö·¿¤È¶è´Ö¼°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£Ã±½ã±é»» (²Ã»»¡¢¸º»»¡¢¾è»»¡¢½ü»»¡¢ÈÝÄê)¡¢°ìÃס¢¤ª¤è¤ÓÉÔ°ìÃפγƱ黻¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


Sun Performance Library

Sun Performance LibraryTM ¤Ï¡¢¿ôÃͤò¿ÍѤ¹¤ëÌäÂê (Àþ·ÁÂå¿ô¤Ê¤É) ¤ò²ò·è¤¹¤ë¤¿¤á¤ÎºÇŬ²½¤µ¤ì¤¿¹â®¤Î¿ô³Ø¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¹¡£Sun Performance Library ¤Ï¡¢Netlib (http://www.netlib.org) ¤«¤éÆþ¼ê¤Ç¤­¤ë°ìÏ¢¤Î¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢µ¡Ç½¤¬³ÈÄ¥¤µ¤ì¡¢ Sun Performance Library ¤È¤·¤Æ¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ɽ 1-6 ¤Ï¡¢Sun Performance Library ¤Î Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤È³ÈÄ¥¤µ¤ì¤¿µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-6   Sun Performance Library ¤Î¿·µ¡Ç½
µ¡Ç½ ÀâÌÀ
UltraSPARC III ¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¶¯²½ ¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ·¿¤ª¤è¤Ó¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ·¿¤Î UltraSPARC III ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÁÐÊý¤ËÂФ¹¤ëºÇÂç¸Â¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹
¹â®¥Õ¡¼¥ê¥¨ÊÑ´¹ (FFT) ¤Î²þÎÉ ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÊѹ¹¡¢¥³¡¼¥É¤ËÂФ¹¤ë¥¨¥é¡¼¥Á¥§¥Ã¥¯¤Î¶¯²½¡¢¤ª¤è¤Ó¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Î¸þ¾å¤¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
FFT ¥É¥­¥å¥á¥ó¥È FFTPACK ¤ª¤è¤Ó VFFTPACK ¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤¿¡ØUsing Sun Performance Library Fast Fourier Transform Routines¡Ù¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿¡£¡ØUsing Sun Performance Library Fast Fourier Transform Routines¡Ù¤Ï¡¢http://docs.sun.com ¤Î ForteTM Developer 6 update 1/Sun WorkShop 6 update 1 Collection ¤ÇÆþ¼ê¤Ç¤­¤Þ¤¹¡£
¥¹¥Ñ¡¼¥¹¥½¥ë¥Ð¡¼ ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Èµ¡Ç½À­¤Î¸þ¾å¡¢³ÈÄ¥¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥ó¥°¥·¥¹¥Æ¥à¡¢ÁȤ߹þ¤ß¤Î SuperLU
ÊÂÎ󲽤ȥ¹¥±¡¼¥é¥Ó¥ê¥Æ¥£¤Î³ÈÄ¥ ÁªÂò¤µ¤ì¤¿¥ë¡¼¥Á¥ó¤È¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¥Ç¡¼¥¿¥Õ¥í¡¼¥×¥í¥°¥é¥ß¥ó¥°¼êË¡¤ò»ÈÍѤ·¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤Þ¤¹¡£
Open MP »ØÎá¤Î»ÈÍÑ Open MP »ØÎá¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤¬¶¯²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¶è´Ö¹ÔÎó¾è»»´Ø¿ô¤Î
¼ÂÁõ
f95 ÁȤ߹þ¤ß¤ËÂФ·¤Æ¶è´Ö¥Ù¡¼¥¹¤Î MATMUL ¤¬³«È¯¤µ¤ì¤Þ¤·¤¿¡£MATMUL ¤Ï¡¢GEMM ¤ª¤è¤Ó GEMV ¥ë¡¼¥Á¥ó¤ÎÈóÃÖ´¹¥±¡¼¥¹¤Ç¤¹¡£


ɸËÜ¥¢¥Ê¥é¥¤¥¶

ɽ 1-7 ¤Ï¡¢É¸ËÜ¥¢¥Ê¥é¥¤¥¶¤Î Sun WorkShop 6 update 1 ¥ê¥ê¡¼¥¹¤Ç»ÈÍѤǤ­¤ë¿·µ¡Ç½¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

ɽ 1-7   É¸ËÜ¥¢¥Ê¥é¥¤¥¶¤Î¿·µ¡Ç½
µ¡Ç½ ÀâÌÀ
¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ê¥ó¥° ¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢·ÚÎÌ¥×¥í¥»¥¹ (LWP) ¤¬Æ°ºî¤·¤Æ¤¤¤ë CPU ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¤Ë¡¢³Æ LWP ¤Î¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯¤òµ­Ï¿¤·¤Þ¤¹¡£
¥¹¥¿¥ó¥É¥¢¥í¥ó¤Î collect ¥³¥Þ¥ó¥É ¿·¤·¤¤ collect ¥³¥Þ¥ó¥É¤Ï¡¢Sun WorkShop ¤ª¤è¤Ó dbx ¤È¤Ï´Ø·¸¤Î¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾å¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¥Ç¡¼¥¿¤ò¼ý½¸¤·¤Þ¤¹¡£
MPI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥Èµ¡Ç½¤Î²þÎÉ ¿·¤·¤¤ collect ¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸°ú¤­ÅϤ·¥¤¥ó¥¿¥Õ¥§¡¼¥¹ (MPI) ¤Î¥µ¥Ý¡¼¥Èµ¡Ç½¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
OpenMP (libmtsk) ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥Èµ¡Ç½¤Î²þÎÉ ¿·¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¹¥ì¡¼¥Ö¥¹¥ì¥Ã¥É¤¬¥Ñ¥é¥ì¥ëÎΰè¤ÎºÇ¸å¤ÇƱ´ü¤òÂÔµ¡¤·¤Æ¤¤¤ë»þ¤È¥³¡¼¥É¤¬¥·¥ê¥¢¥ëÎΰè¤Ë¤¢¤ë¤¿¤á¤ËÂÔµ¡¤·¤Æ¤¤¤ë»þ¤ò¶èÊ̤Ǥ­¤Þ¤¹¡£
¥Þ¥Ã¥×¥Õ¥¡¥¤¥ëÀ¸À®µ¡Ç½¤Î²þÎÉ ¿·¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢´Ø¿ô¥ê¥¹¥È¤Î¥½¡¼¥È¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥á¥È¥ê¥Ã¥¯ (·×¬¥Ç¡¼¥¿) ¤Ë¤«¤«¤ï¤é¤º¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ËÌ¿Îá¤Ç¤­¤ë¤è¤¦¤Ë¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
¡Ö¥Õ¥£¥ë¥¿¤òÁªÂò¡×¥À¥¤¥¢¥í¥°¤Ø¤ÎÄɲà ¡Ö¼Â¸³¥Õ¥¡¥¤¥ë¡×¥ê¥¹¥È¡¢¤ª¤è¤Ó¡Ö¥Õ¥£¥ë¥¿¤òÁªÂò¡×¥À¥¤¥¢¥í¥°Æâ¤Î¡Ö¤¹¤Ù¤Æ¤òÁªÂò¡×¡¢¡Ö¤¹¤Ù¤Æ¤òÁªÂò²ò½ü¡×¡¢¡Öȿž¡×³Æ¥Ü¥¿¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢É½¼¨¤µ¤ì¤ë¥Ç¡¼¥¿¤òÊѹ¹¤¹¤ë¼Â¸³¤òÁªÂò¤Ç¤­¤Þ¤¹¡£¡Ö¤¹¤Ù¤Æ¤òÍ­¸ú¡×¡¢¡ÖÁªÂòÃæ¤Î¤¹¤Ù¤Æ¤òÍ­¸ú¡×¡¢¡Ö¤¹¤Ù¤Æ¤ò̵¸ú¡×¡¢¤ª¤è¤Ó¡ÖÁªÂòÃæ¤Î¤¹¤Ù¤Æ¤ò̵¸ú¡×¥Ü¥¿¥ó¤Ï¡¢¼Â¸³¤Î¥Ç¡¼¥¿É½¼¨¤Î¥ª¥ó / ¥ª¥ÕÀÚ¤êÂؤ¨¤Ë»ÈÍѤǤ­¤Þ¤¹¡£


¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°

¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢·ÚÎÌ¥×¥í¥»¥¹ (LWP) ¤¬Æ°ºî¤·¤Æ¤¤¤ë CPU ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¤Ë¡¢³Æ LWP ¤Î¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯¤òµ­Ï¿¤·¤Þ¤¹¡£µ­Ï¿¤µ¤ì¤ë¥Ç¡¼¥¿¤Ë¤Ï¡¢CPU ¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤È ID¡¢¥¹¥ì¥Ã¥É¡¢LWP ¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤¬¹Ô¤¨¤ë¤Î¤Ï¡¢Solaris 8 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶­ SPARC Platform Edition ¤ò»ÈÍѤ·¤Æ¤¤¤ë UltraSPARC III ¥·¥¹¥Æ¥à¾å¤È¡¢Solaris 8 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶­ Intel Platform Edition ¤ò»ÈÍѤ·¤Æ¤¤¤ë Intel ¥·¥¹¥Æ¥à (Pentium II ¤« III) ¾å¤À¤±¤Ç¤¹¡£¾ÜºÙ¤Ï¡¢Sun WorkShop ¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤Î¡Ö¥Ï¡¼¥É¥¦¥§¥¢¥«¥¦¥ó¥¿¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥×¥í¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¡×¤È¡Ö¼ý½¸¤¹¤ë¥Ç¡¼¥¿¤ÎÁªÂò¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¥¹¥¿¥ó¥É¥¢¥í¥ó¤Î collect ¥³¥Þ¥ó¥É

¿·¤·¤¤ collect ¥³¥Þ¥ó¥É¤Ï¡¢Sun WorkShop ¤ª¤è¤Ó dbx ¤È¤Ï´Ø·¸¤Î¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾å¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¥Ç¡¼¥¿¤ò¼ý½¸¤·¤Þ¤¹¡£collect ¥³¥Þ¥ó¥É¤Ï¡¢¼ý½¸¤µ¤ì¤ë¥Ç¡¼¥¿¤Î·¿¤ò»ØÄꤹ¤ë°ú¿ô¡¢¼Â¸³¤ª¤è¤Ó¼Â¸³¥°¥ë¡¼¥×¤Ë̾Á°¤òÉÕ¤±¤ë°ú¿ô¡¢exec ¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤é¤Î½Ð¸ý¤ÇÂÐ¾Ý¥×¥í¥»¥¹¤òÄä»ß¤·¤¿¤Þ¤Þ¤Ë¤·¤Æ¥Ç¥Ð¥Ã¥¬¤¬¤³¤Î¥×¥í¥»¥¹¤ËÏ¢·ë¤Ç¤­¤ë¤è¤¦¤ËÍ׵᤹¤ë°ú¿ô¤Ê¤É¤òÄ󶡤·¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢collect(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

MPI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥Èµ¡Ç½¤Î²þÎÉ

¿·¤·¤¤ collect ¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸°ú¤­ÅϤ·¥¤¥ó¥¿¥Õ¥§¡¼¥¹ (MPI) ¥µ¥Ý¡¼¥Èµ¡Ç½¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


¥µ¥ó¡¦¥Þ¥¤¥¯¥í¥·¥¹¥Æ¥à¥º³ô¼°²ñ¼Ò
Copyright information. All rights reserved.
¥Û¡¼¥à   |   Ìܼ¡   |   Á°¥Ú¡¼¥¸¤Ø   |   ¼¡¥Ú¡¼¥¸¤Ø   |   º÷°ú