²Ä¤T³¹¡@¨ó¤O¦¡³]­p¨t²Î¼Ò¦¡


¨ó¤O¦¡³]­p¨t²Î¡A´N¬O¾ã¦Xª¾ÃÑ®w¡]¸gÅç©Êª¾ÃÑ¡^¤Î¼Æ¾Ç¹Bºâ¡]µ{§Ç©Êµ{¦¡¡^ªº¸ÑÃD¤èªk¡C¦b¥»³¹±N¸Ô­z¨ó¤O¦¡³]­p¨t²Î¬[ºcªº»Ý¨D¡A¥]¬A¤F¼Æ¾Ç¹Bºâ»P¸gÅ窾ÃѪº¤ÀÂ÷¡B³z©úªºª¾ÃѪí¥Üªk¡B¤@­Pªº¹B§@¤è¦¡¡B¥­¶¶ªº¸ê®Æ¬y¦V»P¾÷·|¦¡ªº±À²z¹Lµ{¡C¥»¬ã¨s¬O¥H¶ÂªO¬[ºc§@¬°¨t²Îªº¾ã¦X¤u¨ã¡A¦Ó¶ÂªOªº°ò¥»¬[ºc«h¥Ñ±À²z¾÷¨î¡B¶ÂªO»Pª¾ÃÑ®w©Ò²Õ¦¨ªº¡A¨ä¨t²Î¬O¥Hª«¥ó¾É¦Vªº§Î¦¡¨Óªí¥Ü¡A¥»³¹¥ç»¡©ú¤F¶ÂªO¬[ºcªº±±¨îª«¥ó¡B¸ÑÃDª«¥ó¡B¦æ¬°ª«¥ó»P¥~³¡µ{¦¡ª«¥óªºª¾ÃÑ»P¨Ï¥Î¤è¦¡¡A¨Ã¦b³Ì«áÁ|¥X¤À§O¬°¥HFORTRAN»PC»yªk©Ò¼g¦¨ªº¨â­Óµ{¦¡¹ê¨Ò»¡©ú¥~³¡µ{¦¡ªº¹B§@¬yµ{¡C

3.1¡@¨ó¤O¦¡³]­p¬[ºcªº­n¥ó

¡@¡@

¡@3.1.1¡@¼Æ¾Ç¹Bºâ»P¸gÅ窾ÃѬ[ºcªº¤ÀÂ÷

¤@­Ó¨å«¬ªºµ²ºc³]­p¨t²Î¤º§t¨â¤jÃþªºª¾ÃÑ¡G¹Bºâ©Êª¾ÃÑ»P¸gÅç©Êª¾ÃÑ¡C¹Bºâ©Êª¾ÃѬO¦³Ãö¼Æ­È­pºâ¤ÀªR¤Î¦³­­¤¸¯Àªk¡F³o¬Oµ²ºc¤uµ{ªº¤@¯ë©Ê±M·~ª¾ÃÑ¡A³q±`¤SºÙ¬°²`¼hª¾ÃÑ¡]deep knowledge¡^¡C¥t¤@¤è­±¡A¸gÅç©Êª¾ÃѬO«ü¯S®í°ÝÃD»â°ì¤º¥H¸gÅ笰¥DÅ骺ªí¼hª¾ÃÑ¡]surface knowledge¡^¡C¦Ó¨ó¤O¦¡³]­p¼Ò¦¡«K¬O­n§Q¥Î¦¹¨âºØ¤£¦Pªºª¾ÃÑ¡CµM¦Ó¡A¦]¬°ª¾ÃѤÀÃþ¤Î¨t²ÎºûÅ@ªº­ì¦]¡A¦bµ{¦¡¤¤§¹¥þ«O«ù¨âªÌ¬[ºcªº¤ÀÂ÷¬O«Ü­«­nªº¡F¦Ó¬ã¨sªº¥Øªº¤£¥u¬O¥H±M®a¨t²ÎÁp¦X¼ÆºØ¯S§Oªº¤ÀªRµ{¦¡¡A¦Ó¬Oµo®i¤@­Ó¯à°÷¾ã¦Xª¾ÃÑ®w¨t²Î¤Îµ{§Ç©Êµ{¦¡ªº¤@¯ë©Ê³]­p¼Ò¦¡¡C©Ò¥H¡A²M·¡ªº¤ÀÂ÷¼Æ¾Ç¹Bºâ»P¸gÅç©Êª¾ÃѬO«Ø¿v¤@­Ó¤@¯ë©Êµ²ºc³]­p¤Î¤ÀªR¨ó¤O¦¡¨t²Îªº­º­n¦Ò¶q¡C

¡@

¡@3.1.2¡@³z©úªºª¾ÃѪí¥Üªk

¡@¡@¬°¤F¹ê²{¼u©Ê¤Æ¤Î³z©ú¤Æªºª¾ÃѪí¥Ü¡A¦bµ²ºc³]­p¤¤¨Ï¥Îªº¤£¦P§Î¦¡ª¾ÃÑ¡AÀ³¸Ó¯à°÷¸g¥Ñ¤ÀªR¡B²Õ´ªºµ{§Ç¥H©ú½Tªºª¾ÃѪí¥Üªk§Î¦¨­Ó§O³æ¤¸¡C¦ý¬O²Õ¦¨¹Bºâµ{¦¡ªº·§©À¤Î¥¦­Ì©¼¦¹¤§¶¡ªº¬Û¤¬Ãö«Y¬O¤°»ò©O¡HÁÙ¦³¥¦­Ì¦p¦ó»P²Å¸¹±À²zªº¸gÅ窾ÃѲզX¦b¤@°_¡H¦b¦³Ãöª¾ÃѪí¥Üªº¤åÄm¤¤¡A¹ï¦¹Ãþ°ÝÃD¤w¦³©Ò´y­z¡CÁ`¦Ó¨¥¤§¡A©ú½Tªº«Å§i©Êª¾ÃѪí¥Ü¬O¸Ñ¨M³o¨Ç°ÝÃDªºÃöÁä¡A¦Ó¥B¸Ô²Óªºªí¥Ü¤è¦¡¬O¥»½×¤åªº­«­n¬ã¨s¤º®e¡C

¡@

¡@3.1.3¡@¤@­Pªº¹B§@¤è¦¡

³]­pªº¹Lµ{¥Ñ¦UºØ¤£¦P§Î¦¡ªº³]­p°Ê§@²Õ¦X¦Ó¦¨(¨£1.2¸`)¡F¥¦À³¯à¾A·í¦a¨Ï¥Î¥ô¦ó¸Ó¥Îªºª¾ÃÑ¡A¦ý¬O¡A¦U­Ó³]­p°Ê§@¦b¹B§@¤Îªí¥Ü¤WÀ³¸Ó¬O¤@­Pªº¡C¦b¨t²Îªº±±¨îªí¼h¤W¥H¤@³eªº¤è¦¡³B²z¸gÅç©Ê»P¼Æ¾Ç¹Bºâ°Ê§@¡A¨Ã«O«ù±±¨î»P»â°ìª¾ÃѪº¿W¥ß¬O«D±`­«­nªº¡C

¡@3.1.4¡@¥­¶¶ªº¸ê®Æ¬y¦V

¦]¬°¤£¦Pªº³]­p°Ê§@¤]³\¨Ï¥Î¤£¦Pªº³nÅéÀô¹Ò¡A¨Ò¦p³]­p©Ð«Î«Ø¿vªºETABS¤Î³]­p¹w¤O¾ô¼ÙªºSTDSµ¥°Ó¥Î³nÅé¡C¦b¤@¯ëªº³]­p·í¤¤¡A¸ê®ÆÀ³¸Ó¬O«Ü¥­¶¶¦a¦b¾ã­Ó¨t²Î·í¤¤¬y³q¡C¨C¤@­Ó³]­p°Ê§@³£»Ý­n±q¨t²Îªº¸ê®Æ¬[ºc¤¤¨ú±o¸ê°T¡A¦P®É¥»¨­ªº³]­pµ²ªG¥ç»ÝÀx¦s©ó¤@¯S©wªº¸ê®Æ§Î¦¡¤¤¡A¥H«K¨ä¥L³]­p°Ê§@¤]¯à°÷¨Ï¥Î¡C¦]¦¹¡A¤@¯ë©Ê¸ê®Æ¬[ºcªº©w¸q»P²Õ´¬O¦³¨ä¥²­nªº¡F¦Ó¥B«Ø¥ß¸ê®Æ¦b¤£¦PÀô¹Ò¤§¤Uªº¿é¥X»P¿é¤JºÞ¹D¤]¬O¥²»Ýªº¡C

¡@3.1.5¡@¾÷·|¦¡ªº±À²z¹Lµ{

¦b¹Ï1-1¤¤¡A¾ã­Ó³]­p¬yµ{¤¤ªº¨C¤@­Ó¨BÆJ©Ò§Î¦¨ªº³]­pªÅ¶¡¡A³q±`¤j¨ì¤£¾A©y§@·j´M¦¡ªº¸ÑÃD¡C¦]¦¹¡A¡u³]­p¤À¸Ñ¡v¬O±`¥Îªº¤@ºØÁY´î³]­pªÅ¶¡ªº¤èªk¡A¤]´N¬O¥i¥H§â­ì¨Óªº°ÝÃD¦P®É¥H¤@²Õ¸û¤pªº°ÝÃD¨Ó¨ú¥N¡C§Q¥Î¦¹³]­p¤À¸Ñªº¹Lµ{¡A¦b¨ó¤O¦¡³]­p¨t²Î¤¤¡A³]­p¥i¥H³Q¤À¦¨¦n´X­Ó¦¸¯Åªº°Æ¤u§@¡A¦Ó¥B±q¨Æ¦U§O¤u§@ªºª¾ÃѳQ³æ¿W¦s©ó¨t²Î·í¤¤¡C¦¹¨t²Î«K§Q¥Î³o¼Ëªº¤è¦¡µo®i¨C¤@­Ó°Æ¤u§@ªº³]­p¸Ñµª¡CµM¦Ó¡A­Ó§O°Æ¤u§@ªº½ÆÂøµ{«×¤Î©¼¦¹¤§¶¡ªº¬Û¤¬¼vÅT¡A¤´µM¨Ï±o³]­p¦¨¬°¤@­Ó¤ÏÂЪº¹Lµ{¡C¥H¦¹¹Lµ{²£¥Íªº³]­p¥²¶·­n²Å¦X³W½dªº­­¨î¡A¦p¦³¤£¯àº¡¨¬­­¨î±ø¥óªºª¬ªp¡A«h¬ÛÃöªº³]­p¥²¶·­×§ï¡C³o¼Ëªº¹Lµ{¥i¯à­n­«ÂЦn´X¦¸¡A¤@ª½¨ì¥X²{¤F¥i¥H±µ¨üªº³]­p¬°¤î¡C ¸gÅç©Ê©Î¼Æ­È¹Bºâ©Êªº³]­p¤è¦¡¾A¥Î©ó¤£¦PÃþ§Oªº³]­p¡C¦b¨C­ÓÃþ§O¤º¡A³]­p¤S¯à¶i¤@¨B¦a¤À¸Ñ¦¨°Æ¤u§@¡A¨C­Ó°Æ¤u§@¥i¾A¦X¨Ï¥Î¤£¦Pªº³]­p¤èªk¡C¨ó¤O¦¡³]­p¨t²ÎÀ³¸Ó¯à°÷¦b³o­Ó¶¥¼h¨Ï¥Î¤WÅÜ´«¤£¦Pªº³]­p¤è¦¡¡C¦b²z·Q¤W¡A¨C­Ó°Æ¤u§@­n¯à°÷¹F¨ì¬J¥i¨Ï¥Î¸gÅç©Êªk«h¤S¥i¨Ï¥Î¼Æ¾Çµ{§Ç¹Bºâ¡C¥B¨t²Î­n¦³¼u©Ê¡A®Ú¾Ú¥Ø«eªº³]­pª¬ªp¤Î©Ò¦³ªº³Ì¨Îª¾ÃѬ°¨C­Ó³]­p°Æ¤u§@¡A¾÷°Ê¦a¬D¿ï¥X¤@­Ó³Ì¾A¦Xªº³]­p°Ê§@¡C

3.2¡@¶ÂªO¨t²Î¬[ºc

¦b¶ÂªO¦¡¬[ºc¤U¡A¸Ñ¨M¤@­Óµ²ºc³]­p°ÝÃD©Ò»Ýªºª¾ÃѳQ¤À¸Ñ¡B²Õ´¦¨­Ó§Oªº³æ¤¸¡A³o¨Çª¾Ãѳ椸ºÙ¤§¬°ª¾ÃÑ·½¡C¬ÛÃö¤§ª¾ÃÑ·½¤S¥i²Õ¦¨ª¾ÃѼҲաA¥Nªí¦PÃþªº»â°ìª¾ÃѩάۦP¥Ø¼Ðªº¸ÑÃD§Þ¥©¡C¾ã­Ó±M®a¨t²Î§Y¥Ñ¼Æ­Óª¾ÃѼҲեH¤À¨Éª¾ÃÑ®wªº¤è¦¡©Òºc¦¨¡C¬°¤F¥h·j´M°ÝÃDªº¸Ñµª¡A¨C¤@­Óª¾ÃÑ·½³£¥u¯à­×§ï§ó¥¿¤@­ÓÁ`Å骺¸ê®Æµ²ºc¡]¤]´N¬O¶ÂªO¨t²Î¤¤¤§¶ÂªO¡^¡A¦P®É¥H³Ì¨Î¤§¦æ¬°¨Ó¦^À³¶ÂªO¤Wªº­p¹º¡C ¨ó¤O¦¡¬[ºc¨t²Î¦³¨â­Ó¥D­nªºª¾ÃѼҲաG¸gÅç±Òµo¦¡»P¼Æ¾Ç¹Bºâ¦¡(¨£¹Ï3-1©Ò¥Ü)¡C¸gÅç±Òµo¼Ò¦¡ªºª¾ÃѪí¥Ü¤è­±¬O¦³Ãö°ÝÃD»â°ì¤Î°ÝÃD¸Ñ¨M¶¥¬q¡C¦Ó¼Æ¾Ç¹Bºâ¼Ò¦¡¬O¨Ï¥Îµ{§Ç©Êµ{¦¡ªº³]­p­pºâ¡B¤ÀªR¡B°õ¦æ¡B²Õ´µ¥µ¥¡C ¥»¬ã¨sªºµ²ºc¤ÀªR¬O¥HFORTRAN¤ÎC»y¨¥ªºµ{§Ç©Êµ{¦¡§@¨ÒÃD´ú¸Õ¡C¦Ó¸gÅ窾Ãѵ{¦¡½s¼g³¡¤À¬O¥H¤ý¤Hªª³Õ¤h©Òµo®iªº¾ã¦X«¬¶ÂªO¦¡±M®a¨t²Î¬°ÂÅ¥»[21¡A22]¡Aª¾ÃÑ»yªk¤¶­±¥HKEE»PCommon Lisp²Å¸¹»y¨¥¤u¨ã©Ò½s¼g§¹¦¨¡C

¡@¡@

¡@3.2.1¡@¶ÂªO¨t²Î²¤¶

¡@¡@¥»¸`¥H¤ñ³ëªº¤è¦¡¨Ó»¡©ú¶ÂªO¦¡¨t²Î¸ÑÃD¦æ¬°¤§¯S©Ê¡C¾ã­Ó¶ÂªO¨t²Î¬[ºc»P¥»¬ã¨s¦³Ãö³¡¤À¨£¹Ï3-2©Ò¥Ü¡C¥H¤U´N¹ï©ó¶ÂªO¨t²Î§@¸Ô²Óªº¤¶²Ð¡C ¶ÂªO¨t²Îªº¬[ºc¤U¡A¸Ñ¨M¹B§@¼Ò¦¡¥i¥Î¤U­±³o­Ó²³æªº¤ñ³ë¨Ó¥[¥H»¡©ú¡C»P«Ø¿v¤@¶¡©Ð«Î¤@¼Ë¡A¾ã­Ó¨t²Î¥i·í¦¨¬O¤@­Ó©Ð«Î«Ø³y¤p²Õ¡A·í­n«Ø³y®É©Ó¥]°Ó«K©Û¶°¤ì¤u¡B¤ôªd¦K¡B¤ôºÞ¤u¤H¡B¹q®ð¤u¤Hµ¥¦UºØ¤u¤H¦b¤@°_¡C¥¦ªº²Õ¦¨¦³¤U¦C´XºØ[23]¡G 1. ª¾ÃÑ·½¡G´N¹³¤@¸s¦³±M·~»â°ìª¾ÃѪº¤H¤~¡A¦p¤ì¤u¡B¤ôªd¦K¡B¤ôºÞ¤u¤H¤Î¹q®ð¤u¤Hµ¥¡C¥L­Ì©¼¦¹¨Ã¤£¤F¸Ñ¹ï¤èªº§Þ³N¤Îª¾ÃÑ¡A¦ý³£¬O­n¹F¨ì¦P¤@­Ó¥Øªº¡A´N¬O§â©Ð¤l§¹¤u¡C 2. ±±¨î¾¹¡G´N¹³¬O­Ó©Ó¥]°Ó¡A¥L¥²¶·­n§i¶D¤ôºÞ¤u¤H­n¦b¹q®ð¤u¤H°t½u¤§«e´N­n§¹¦¨¦w¸ËºÞ¤lªº¤u§@¡C 3. ¶ÂªO¡G¥Ñ«Ø¿v©Ð«ÎªºÂŹϡB¸Ô²Ó¬I¤u¬yµ{¤Î¤u¦a©Ò²Õ¦¨¡A©Ò¦³ªº°ÝÃD¤Î¸Ñ¨Mªºµª®×³£¼g¦b¬I¤u¬yµ{­p¹º¤W¡C¤@­Ó¸ÑÃDµo®i¡]«Ø«Î¡^¡A¦³¥i¯à­n§ó§ï¤u¦a¤Wªº¬I¤u¬yµ{­p¹º¡CÁ|­Ó¨Ò¤l¡A¤ôºÞ¤u¤H¥i¯àµo²{¤»¦Tªº¤ôºÞ©ñ¤£¶iÂŹϩҳ]­pªº¤T¦T¤Õ¤º¡A³o®É­Ô¤ôºÞ¤u¤H«K¥i¥H¨Ì¾Ú¥L­Ìªºª¾Ãѧiª¾«Ø¿v®v­×§ïÂŹϡC

·í¤ôªd¦K§¹¦¨©Ð¤lªº°ò¦¡B¤ì¤u§¹¦¨©Ð«Îªº¬[ºc¡A³£¬O§¹¦¨¤u§@ªº¤@­Óª¬ºA¡C¨ä¥Lªº±M®a¡]¤ôºÞ¤u¤H¡B¹q®ð®v³Å¡^­nÀH®Éª`·N¤u¦a¤W¡]¶ÂªO¡^ªºª¬ºA¡A·í½ü¨ì¸Ó¥L­Ì¤u§@ªº®É­Ô¡A´N¨Ì±¡ªp¼W¥[¤ôºÞ©Î°t½uªº¤u§@¡C¨Ò¦p¤ôºÞ¤u¤H¡A¥L­Ì¨S¦³¿ìªkª½±µ»P¤ôªd¦K¡B¤ì¤u©Î¹q®ð¤u¤H¥æ½Í¡]¦]¬°©¼¦¹ªº±M·~§Þ³N¤£¦P¡^¡F¥L­Ì¥²»ÝÀH®Éª`·N¶ÂªO¡]À˵ø¤u¦a¤Wªºª¬ªp¡A¨Ã¨Ì¬I¤u¬yµ{­p¹ºªº¨BÆJ¬I¤u¡^µM«á¸Ñ¨M¥L­Ìªº°ÝÃD¡A§¹¦¨©Ð¤l¸ÌÄÝ©ó¥L­Ìªº³¡¥÷¡]¦w¸Ë¤ôºÞ¡^¡C·í¥L­Ìªº¤u§@µ²§ô«á¡A¨º»ò¤ôºÞ¤u¤H«K§¹¤u¦ÓÂ÷¶}¤F¡C ¤]´N¬O»¡¨C­Ó¤u¤H¤â¤¤¥i¯à¦³¤@­Ó©Î¤@­Ó¥H¤Wªº«Ø³y¥i¯à¡A¦ý¦b¾ã­Ó«Ø³y¹ÎÅ餤¨S¦³¥ô¦ó¤@­Ó¤u¤H¥i³æ¿W§¹¦¨¾ã­Ó¤uµ{¡A¤£¹L¨C­Ó¤u¤H³£¦³«Ø¿v¾ã­Ó©Ð«Î¬Y³¡¥÷ªº¯à¤O¡A¦¹¥~¨C­Ó¤u¤H³£«Ü²M·¡¦Û¤v¥i¥H°µ¤°»ò¤u§@¡A·í¥»¨­¥i¸Ñ¨Mªº¤u§@¥X²{®É«K·|°µ¨Æ«e·Ç³Æ¡A§¹¦¨«Ý©Rªº¤u§@¡C ¦b¦P¤@®É¶¡¤¤¡A¥i¯à¦³¦n´X­Ó¤u¤H¦P®Éµo²{¨Ãªí¥Ü¦Û¤v¥i¸Ñ¨M¥Ø«eªº¤u§@¡A¦¹®É©Ó¥]°Ó´N¨Ì¾ÚÂŹϤWªº«Ø³y¨BÆJ¤Î¤u¦a¤Wªºª¬ªp¡A¬D¿ï¥X¤@­Ó¾A¦X¥Ø«e¤u§@ªº¤u¤H¡]°²¦p¦¹¤u¤H¦³¶W¹L¤@­Ó¥H¤Wªº«Ø³y¥i¯àªº¸Ü¡A¥u¦³¤@­Ó«Ø³y°Ê§@±N¤¤¿ï¡A¨Ò¦pªoº£¯»¨ê¤u¤H¥i¯à¦³¯»¨ê¼ÓªO»PÀð¾À¨âºØ°Ê§@¡^¡A¦Ó³Q¬D¤¤ªº¤u¤H«K¦bÂŹϡ]¶ÂªO¡^¤W´y­z¥L©Ò¯à¸Ñ¨Mªº°ÝÃD¡A¨Ã¥B°õ¦æ¥Lªº¤u§@¡C©Ó¥]°Ó¨Ì¾Ú¥Ø«eªº«Ø³y±¡ªp¡A¾÷°Ê¦a±q¤£¦Pªº¤u¤H¤¤¿ï¾Ü¤@­Ó¤u¤H¨Ó§¹¦¨¤@³¡¥÷ªº¤u§@¡C¦b¾ã­Ó«Ø³y¹Lµ{¤¤ªº¨C­Ó¨BÆJ¡A¥ô¦ó¤@­Ó¤u¤H¬Ò¦³¥i¯à³Q¬D¿ï¥X¨Ó¡C©Ò¥H¡A¾ã­Ó«Ø³y©Ð«Î¤p²Õªí²{¥X¦@¦P¦X§@»P¾÷·|¦¡ªº¤u§@­·®æ¡C ¡C

¡@3.2.2¡@±À²z¾÷¨î

±À²z¾÷¨î¥]¬A¤F±Æµ{¾¹¡]scheduler¡^»PºÊ±±¾¹¡]monitor¡^¡C©Ð«Î«Ø³y¤p²Õ¤¤ªº©Ó¥]°Ó´N¬O±Æµ{¾¹¡F¦Ó«Ø¿v®v´N¬O¶ÂªOªººÊ±±¾¹¡C©Ð«Î«Ø³y¤p²Õ¤¤¨C¤@­Ó¤u¤H³QºÙ¬°ª¾ÃÑ·½¡]knowledge source¡^¡A²ºÙ¬°KS¡F¦Ó«Ø³y°Ê§@«h³QºÙ¬°ª¾ÃÑ·½±Ò¥Î°O¿ý¡]knowledge source activation record¡AKSAR¡^¡C¨C­Óª¾ÃÑ·½¦b¶ÂªO¨t²Î¤¤³£ªí²{¤@ºØ¸Ñ¨M°ÝÃDªºª¾ÃÑ¡A¨C­Óª¾ÃÑ·½¡]¤u¤H¡^ª¾¹D¦Û¤v¦b¤°»ò®É­Ô¥i¤u§@¡A¦P®É·í¥¦³Q°õ¦æ®É¤]ª¾¹D¦Û¤vÀ³¸Ó±Ä¨ú¤°»ò¼Ëªº¤u§@¡C¦]¦¹¡A·í¦³¦h©ó¤@ºØªº«Ø³y±¡ªp¥X²{®É¡Aª¾ÃÑ·½´N¥i²£¥Í¦h­ÓKSAR¡A¨C­ÓKSAR¥Nªí¦P¤@ª¾ÃѨӷ½¤U¡A®Ú¾Ú¯S®í¶ÂªOª¬ªp©Ò²£¥Íªº¤£¦P³]­p¿ï¾Ü¡C «Ø«Î¤¤ªº©Ó¥]°Ó¬O¨t²Î¤¤ªº±Æµ{¾¹¡A¥¦ÁaÆ[¾ã­Ó«Ø³y¤uµ{¡A¦b¨C¤@­Ó«Ø³y¤u§@¤¤¡A¥Ñ©Ò¦³¥i¦æªº¤è®×¤¤¿ï¾Ü¤@­Óª¾ÃÑ·½¬¡°Ê°O¿ý¨Ó§¹¦¨³o¶¥¬qªº¤u§@¡A¦Ó±Æµ{¾¹©Ò°µªº¨M©w¬O°ò©ó³Q±Ä¥ÎªºKSAR¬O§_»P²{¶¥¬qªº¤u§@µ¦²¤¬Û²Å¦X¡C¦b³o­Ó¨t²Î¤¤¡A¨S¦³¹w¥ý³]©w°õ¦æªº¶¶§Ç¡C¤u§@µ¦²¤¬O¥H­pµe¡]plan¡G¦p§¹¦¨©Ð«Î«Ø³]¡^©M¥Ø¼Ð¡]goal¡G¦p§¹¦¨¦w¸m¤ôºÞ¡B¸Ë°t¹q½u¡B¤ôªd°ò¦¡B¯»¨êÀð¾Àµ¥µ¥¡^¨Óªí¥Ü¡A¤@­Ó¥Ø¼Ð¥Nªí¤F¨t²Îµû¦ôKSARªº¤@­Ó«Ø³y¦Ò¶q¡A¦Ó¤@­Ó­pµe«h¬O¥Ñ¤@³s¦êªí¥Ü¤u§@µ¦²¤ªº«Ø³y¥Ø¼Ð©Òºc¦¨¡A­pµe¤¤ªº¨C¤@­Ó¥Ø¼Ð³£¥Nªí¤F¤@­Ó¤u§@¥Øªº¡C¶ÂªO¤W¥i¦P®É¦s¦b¼Æ­Ó­pµe¡A¥Nªí¤£¦P¦Ò¶q¤Uªº¤u§@¤è°w¡C¤@­Ó¾ãÅ骺µû»ù¶·¥Ñ¨ä¹ï¶ÂªO¤W©Ò¦³­pµeªººî¦Xµû¤À¨Ó¨M©w¡AKSARªºµû¤À¬O¥H¤@­Ó¼Æ¦r¨Óªí¥Ü¡A¨ä½d³ò¦b¹s¨ì¤@¦Ê¤§¶¡¡]¹s¥Nªí¤F¤£¾A¦X¦Ó¤@¦Ê¥Nªí§¹¥þ¦X¾A¡^¡C¦b¨C¤@­Ó¸ÑÃD´`Àô¤¤¡A±Æµ{¾¹¿ï¾Üµû¤À³Ì°ªªº¨Ó°õ¦æ¡]¨Ï¥ÎªÌ¤]¥i¥H±À½¨t²Îªº«ØÄ³¡A¿ï¾Ü¤£¦PªºKSAR¡^¡C«Ø¿v®v§Y¬O¨t²Î¤¤ªº±À²zºÊ±±¾¹¡A¥¦¤£Â_ª`·N¶ÂªO¤W­pµe©M¥Ø¼Ðªºª¬ªp¡A¨ÃºûÅ@¤v§¹¦¨³]­p¨Æ¹êªº¤@­P©Ê¡C

¡@3.2.3¡@¶ÂªO

¶ÂªO¬O¤@­Ó¶°¤¤ªº¸ê®Æµ²ºc¡A¥¦­t³dÀx¦s¦b³]­p¹Lµ{¤¤©Ò²£¥Íªº¸ê°T¡A¬O¶ÂªO¨t²Î¤¤¦U³æ¤¸¶¡¸ê®Æ¥æ¬yªº´C¤¶¡C©Ò¦³ªº³]­p¸ê°T³£¬O¥H¶ÂªO¨t²Î¤¤ªºª«¥ó¨ÓÀx¦s¡CÁ|¨Ò¨Ó»¡¡A©Ð«ÎÂŹϡB¼Ó¶¡­p¹º¹Ï¡BºÞ½u°t¸m¹Ï¡B¤u§}­p¹º¹Ïµ¥µ¥¡A³£¬O¥Nªí©Ð«Î«Ø³yªº·§©À¡C¦Ó¶ÂªO¨t²Î¤¤ªº¶ÂªOµ²ºc¥i¤À¦¨±±¨î¶ÂªO¡]control blackboard¡^»P³]­p¸ê°T¶ÂªO¡]design information blackboard¡^¨âºØ¶ÂªO¡A¨£¹Ï3-2©Ò¥Ü¡C ¡± ±±¨î¶ÂªO¡G¶°¦X­pµe¡B¥H¤Î¥Ø¼Ð³o¨âºØÃþ«¬ªº±±¨îª«¥ó¡]control object¡^©Ò²Õ¦¨¡C¶ÂªO¤Wªº±±¨îª«¥ó¥Nªí¤F¨t²Îªº¸ÑÃDµ¦²¤»P³]­p¦Ò¶q¡C ¡± ³]­p¸ê°T¶ÂªO¡G¥]§t¤F¥Ñ¦U­Ó³]­pª¾ÃÑ·½¦b³]­p¹Lµ{¤¤©Ò²£¥Íªº¸ÑÃDª«¥ó¡]solution object¡^¡B¦æ¬°ª«¥ó¡]action object¡^¤Î¥~³¡µ{¦¡ª«¥ó¡]foreign program object¡^µ¥¡C

¡@3.2.4¡@ª¾ÃÑ®w

ª¾ÃÑ®w¥i¤À¬°¨âÃþªºª¾ÃѼҲաF¤@Ãþ¬°¸gÅ窾ÃÑ¡A¥]¬A¡G³]­p²£¥Í¾¹¡]design generator¡^¡B­­¨îÀËÂо¹¡]constraint checker¡^¡B¦^·¹µo°_¾¹¡]backtracking provoker¡^¡B»P­«³]­p­×¥¿¾¹¡]redesign adviser¡^¡F¥t¤@Ãþ¬°¼Æ­È¹Bºâµ{¦¡¤¶­±¡]¥~³¡µ{¦¡ª«¥ó¡^¡A¥]¬A¡G¥~³¡µ{¦¡°õ¦æ¾¹¡]foreign program executor¡^¡B¿é¤JÀɫغc¾¹¡]input file constructor¡^¡B¿é¥XÀÉ¸ê®ÆÅª¨ú¾¹¡]output file reader¡^¡C¼Æ­È¹Bºâµ{¦¡¤¶­±ªºª¾ÃÑ®w¸Ô­z¦b¤U­Ó³¹¸`¡F¥H¤U¬°¸gÅ窾ÃѤ譱ªºª¾ÃÑ®w°Q½×¡C 1. ³]­p²£¥Í¾¹¡G ³]­p²£¥Í¾¹ªº¥\¯à¡]function¡^¦b©ó§Q¥Î³]­pª¾ÃѨӲ£¥Í³]­p­È¡C¦b¦¹¼Ò²Õªºª¾ÃÑ·½¦³¯à¤O¨Ó¹ï¬Û¦Pªº³]­pÅܼƨϥΤ£¦Pªº»â°ìª¾ÃÑ¡]¥]¬A³]­p¤ÀªR¡B³]­p­pºâ¡B³]­pªº¸gÅç©Êªk«h¡Kµ¥¡^¡A¨Ó²£¥Í¤£¦Pªº³]­p­È¡C 2. ­­¨îÀˮ־¹¡G ­­¨îÀˮ־¹ª¾ÃѼҲլO¥Î¨Ó½T»{­­¨î±ø¥óªºª¬ºA¡C·íµo²{­­¨î±ø¥óµLªkº¡¨¬®É¡A¨t²Î«K·|¦b¶ÂªO¤Wµo¥X"ºû­×¥¼º¡¨¬­­¨î±ø¥ó"¡]fix constraint violation¡^ªº¥Ø¼Ð¡A¥Î¨Ó´£¿ô¶ÂªO¨t²Î¥h°µ³]­p­×¥¿¡C 3. ¦^·¹°_µo¾¹¡G ¦^·¹°_µo¾¹³o­Óª¾ÃѼҲզb³]­p¥¢±Ñ«á¡A¶}©l¦A³]­pµ{§Ç¡C¥¦±±¨î¤F¶ÂªO¨t²Î¦^·¹ªº¶¥¼h¡C¬Y¨Ç¥Ø«e¦s¦b¶ÂªO¤Wªº³]­p­È´N·|³Q¨ú®ø¡A·í¶ÂªO¤¤¦³¥¼º¡¨¬¡]unsatisfied¡^ªº­­¨î±ø¥ó¥X²{®É¡A¦¹ª¾ÃÑ·½«K·|³Q»¤µo¡C ·í¦¹ª¾ÃÑ·½³Q»¤µo«á¡A¨t²Î«K·|¨Ì´`¥¼º¡¨¬ªº­­¨î±ø¥ó¡A§ô¨î¦¨©Ò¦³¥i¯à¼vÅT¦¹­­¨î±ø¥óªº¨C­Ó³]­p­È¡C¦p¦¹¡A¨Ï¥ÎªÌ¦b­«·s³]­p®É¡A«K¥i¿ï¾Ü¯S©w³]­pª«¥ó¤¤¯S©wªº­È¡A¥H¥Î¨Ó±±¨î¦^·¹ªº¶¥¼h¡C·í¦¹¦^·¹°_µo¾¹³Q°õ¦æ®É·|¯B²{¤@­Óªí®æ¡AÅý¨Ï¥ÎªÌ¦bªí®æ¤¤¿ï¾Ü¤@­Ó»P¥Ø«e¥¼º¡¨¬­­¨î¦³Ãöªºªº³]­p­È¡C¦p¦¹¤@¨Ó¡AKEE¤¤ªººû¥¿¨t²Î«K·|¦]³o­Ó³]­p­È¬O¥¼³]­p§¹¥þªº¡]¦¹®É³]­p­È¤w³Q²¾¨«¤§¬G¡^¦Ó¦^·¹­«·s³]­p¦¹³]­p­È¡A¥Hºû«ù³]­p¬Û¤¬Ãö«Yªº¥¿½T©Ê¡C¦¹®É¶ÂªO¨t²Î¤¤ªººû¥¿¨t²Î¡]truth maintenance system¡A²ºÙTMS¡^´N·|­«·s³]©w¶ÂªOªºª¬ªp¡A¦Ó¥B©Ò¦³ªºª¾ÃÑ·½³£·|®Ú¾Ú·sªº¶ÂªOª¬ªp¦A¤@¦¸Ävª§¥H¸Ñ¨M°ÝÃD¡C 4. ­«³]­p­×¥¿¾¹¡G ­«³]­p­×¥¿¾¹³o­Óª¾ÃѼҲժº¥\¯à¡A¥D­n¬O¥Î¦b­«·s³]­p®É¡A«ØÄ³·sªº³]­p­È¡A¥¦¦³§O©ó¦^·¹°_µo¾¹¡A«eªÌ¬O¥Î¨Ó«ØÄ³¤°»ò³]­p­È»Ý­n­×§ï¡A«áªÌ«h¬O«ØÄ³¦p¦ó­×§ï³]­p­È¡C­«³]­p­×¥¿¾¹¬O¦b¦^·¹°_µo¾¹±N³]­p­È±q¸Ñµª¶ÂªO¤¤²¾¨«®É¤~³Q»¤µo¡A¨Ã°µ¥X¤@¨Ç­×¥¿³]­pªº°Ê§@¡C ¦b¥t¤@¤è­±¡A¥~³¡µ{¦¡¤¶­±ªºª¾ÃѼҦ¡¬O°õ¦æ¨Ã¦s¨ú¥~³¡µ{§Ç©Êµ{¦¡ªº¸ê®Æ¤ÎÂà´«³]­p¡]©Î¤ÀªR¡^ªºµ²ªG¨ì¥Ø«eªº³]­p¤u§@¡C¨ä¶ÂªOªºª¾ÃÑ®w¥Ñ¥~³¡µ{¦¡°õ¦æ¾¹¡]foreign program executor¡^¡B¿é¤JÀɫغc¾¹¡]input file constructor¡^¡B¿é¥XÀÉ¸ê®ÆÅª¨ú¾¹¡]output file reader¡^¤TºØ²Õ¦¨¼Æ­È¹Bºâµ{¦¡¤¶­±¡C¦p¹Ï3-3©Ò¥Ü

1. ¿é¤JÀɫغc¾¹¡]input.file.constructor¡^¡G

¿é¤JÀɫغc¾¹¥D­n¥Î¦b¬°¥~³¡µ{¦¡ªº¿é¤JÀɧ@·Ç³Æ¡C¦b¶ÂªO¤Wªº³]­pµ²ªG»P¦bª¾ÃÑ®w¸Ì­±ªº¨Æ¹ê³£¦³¥i¯à­n¥]§t¦b³o­Ó¸ê®ÆÀɤº¡C¿é¤JÀɫغc¾¹®Ú¾Ú¥~³¡µ{¦¡ªº»Ý­n¡A¨ú±o¶ÂªO¤W¤§³]­p­È¡A¥Hµ{¦¡­n¨Dªº®æ¦¡«Ø¥ß¸ê®Æ¿é¤JÀɮסC¥Ø«e¤@¯ëªºµ{§Ç©Êµ{¦¡³£¦³¨ä¤@©wªº¿é¤JÀɮ榡¡A¦Ó¿é¤JÀɫغc¾¹«K¬O¥ÑÀx¦s¦b¥~³¡µ{¦¡ª«¥ó¤¤ªº¸ê°T¡A¨Ì¤@¯ë¤Æªº§Î¦¡¨Ó«Øºc¿é¤JÀÉ¡C

2. ¥~³¡µ{¦¡°õ¦æ¾¹¡]foreign.program.executor¡^¡G

¦³¤F¥~³¡µ{¦¡ªº¿é¤JÀɤ§«á¡A¨äKS«K¯à¦b¶ÂªO¤W¥X²{¡]ªí¥Ü¨ä¥i¤u§@¡^¡A¥~³¡µ{¦¡°õ¦æ¾¹´N®Ú¾Ú¦bª¾ÃÑ®w¤¤Àx¦sªº¥~³¡µ{¦¡ª«¥ó¦Ó¥h°õ¦æ¥~³¡µ{¦¡¡C¦Ó°õ¦æªºµ²ªG«K¦s©ñ¦b¦U§Oªº¿é¥XÀÉ·í¤¤¡C¦p¹Ï3-3©Ò¥Üªºexecute.one.program¹ê¨Ò«K¥i¥H°õ¦æ¥i¤u§@ªº¥~³¡µ{¦¡¡C

3. ¿é¥XÀÉ¸ê®ÆÅª¨ú¾¹¡]output.file.reader¡^¡G

¡@¡@¬°¤F»P¨ä¥Lª¾ÃѼҲզ@¦P¤À¨É°õ¦æ¥~³¡µ{¦¡«á©Ò±oªºµ²ªG¡A´N»Ý­n§â¸ê®Æ©ñ¦b¶ÂªO¤W¡A¥B­n¹ïÀ³¨ì³]­pª«¥óªºÄÝ©Ê·í¤¤¡C¿é¥XÀÉ¸ê®ÆÅª¨ú¾¹±q°õ¦æ¥~³¡µ{¦¡©Ò²£¥Íªº¸ê®ÆÀɤ¤¨ú¥X¦³¥Îªº¸ê°T¡A¨ÃÅܧó³]­p¶ÂªO¤W¤§³]­p­È¡C¦p¹Ï3-3©Ò¥Üªºread.output.file.data¹ê¨Ò«K¬OŪ¨ú¥~³¡µ{¦¡©Ò­pºâ¥X¨Óªº­È¡C

3.3¡@¨t²Îª¾ÃѪºªí¥Ü¤è¦¡

¨ó¤O¦¡³]­p¨t²Î¬O¥Hª«¥ó¾É¦V¡]©Î®Ø¬[¦¡¡^ªº¤èªk¶i¦æ¡C¤£¦P»â°ìªºª¾Ãѫإߦb¤£¦Pªºª¾ÃÑ®w¤¤¡A¨Ã¥B¨ä¯S©Ê¥i¥H¦b©¼¦¹¤§¶¡¦@¥Î¡C¨Ò¦p¤@¯ë¬Ò¥i¨Ï¥Î¨ìªº¸ê®Æ«Ø¥ß¦b¡uddis-concept¡vª¾ÃÑ®w¤¤¡A¨ä¥Lªºª¾ÃÑ®w¬Ò¥iÄ~©Ó¨ä¯S©Ê¡F¦Ó¦³ÃöÄaÁu¾ôª¾ÃѪº³¡¥÷«h©ñ¦b¡uc-bridge¡vª¾ÃÑ®w¤¤¡C¸ê®ÆÃþ§Oªº§Î¦¡»P¹ê¨ÒªºÄ~©Ó¬O¨Ì¾Ú¦s©ñ¦b¤£¦P¶¥¼hªºª¾ÃÑ®w¤¤¥Hª«¥ó¾É¦V¨ú±o¡C¦¹ªí¥Üªk·|§â¨ã¦³¬Û¦P¯S©Êªºª«¥óÂk¦¨¤@Ãþ§O¡A©¼¦¹¶¡ÂÇ¥ÑÄ~©Óªº¯S©Ê¦Ó¾Ö¦³¦@¦Pªº¸ê®Æµ²ºc»P¤èªk¡A³Ì«á´N¬O¥Ñ³o¨ÇÃþ§O²Õ¦¨¾ã­Ó¨t²Î¡A±N±M®aª¾Ãѧ¹¾ã¦aªí¹F¥X¨Ó¡C ¦b¨t²Î¤¤´X¥G©Ò¦³ªºª¾Ãѳ£¦s©ñ¦b³Ì§C¶¥¼hªºª«¥ó¸Ì¡]¨Ò¦pª«½èª«¥ó¡B³]­p°Ê§@¡B­p¹º¡B¥Ø¼Ð¡B­­¨î¤Î¥~³¡µ{¦¡ª«¥óµ¥¡^¡C¹Ï3-4»¡©ú¤F¨ó¤O¦¡³]­p°Ê§@ª«¥ó¥]§t¤F¦U§O°ò¥»ªºª¾ÃÑ¡A¨C¤@­Óª«¥óªº§Î¦¡¹ï©ó³]­pª«¥óªºÃþ§O©Îª¾ÃÑ¡A©w¸q¯S§Oªº­È¤Îµ{§Ç¡C©Ò¥Hª¾ÃÑ®w¬O¥Ñ¨Æ¥ý©w¸qªºª«¥ó§Î¦¡¡]¦p³]­pª«¥ó¡BÅܼơB­­¨î¡B¤èªk¡B­p¹º¡B¸gÅç¤Î¼Æ­È¹Bºâµ{¦¡¡^©Ò²Õ¦¨ªº¡C ¦b¥»½×¤å¡Aª¾ÃÑ®w³]­p¨t²Îªº¼ÆºØ¤u§@´£¨Ñª¾ÃѪí¥Üªº°ò¥»¤è®×¡C¨t²Î¤¤¡A¦³¤@­Ó©ú½Tªºªí¥Üªk¬J¥]§t¤F¸gÅç»P¼Æ­È¹Bºâª¾ÃÑ¡A¦¹¸`¸Ô²Ó¦a´y­z¤F¦³Ãö¼Æ­È¹Bºâµ{¦¡¦b¦X§@³]­pªº¸ê°T¡C ¨ä¤¤¡Aª¾ÃѪºªí¥Ü¤èªk¥]§t¤F¦³±±¨îª«¥ó¡B¸ÑÃDª«¥ó¡B¦æ¬°ª«¥ó»P¥~³¡µ{¦¡ª«¥ó¡A¦p¹Ï3-2©Ò¥Ü¡A¥H¤U«K¸Ô²Ó¦a¤¶²Ð¦Uª«¥óªº©Ê½è¡C

¡@3.3.1¡@±±¨îª«¥ó¡]Control Objects¡^

¡@¡@¶ÂªO¤¤ªº±±¨îª«¥ó¬O¥Î¨Ó©w¸q¶ÂªO¨t²Î¤¤±±¨î¸ÑÃDµ¦²¤»P¤èªkªºª¾ÃÑ¡C·í¬Y¤@­Ó±±¨îª«¥ó³Q±±¨î¶ÂªO©Ò±Ä¥Î®É¡A¶ÂªO¨t²Î´N¥Î¥]§t¦b¦¹±±¨îª«¥óªº¸ê°T¨Ó¹ïKSAR¶i¦æµû¦ô»P±Æ§Ç¡C¥¦§â¯S§O»â°ìªºª¾ÃÑ·½¤À§O¥X¨Ó¡A¥Ñ¶ÂªOªºª¾ÃÑ®w¥H¾÷·|¦¡ªº¤è¦¡ªí²{¥X¸ÑÃDªºª¬ªp¡C¥Ñ«Ø¿v©Ð«Îªº¨Ò¤l¬°¡G©Ó¥]°Ó­n¥Ñ©Ò»Ýªºª¬ºA¿ï¾Ü¤@­Ó¤u§@¡A´N¹³¦b¦P¤@­Ó©Ð¶¡¤º¤£¯à¦P®É¸Ë°t¹q½u¡A¦w¸m¤ôºÞ»P¾Q³]¥Û»IªO¡C±±¨îªº¤H´N­n§i¶D¤ôºÞ¤u¤H­n¦b°t¹q½u¤§«e§¹¦¨¡C¦Ó¦¹ª«¥ó´N¬O¥H­p¹º¤Î¥Ø¼Ð¨Ó±±¨î¶ÂªO¸ÑÃD§Î¦¡¡F¥H¤U¬O´N¥Ø¼Ð»P­pµe¨âºØ±±¨îª«¥ó§@²­z¡G 1. ¥Ø¼Ð¡]Goals¡^¡G ¬O¥Î¨Óµû¦ôKSARÀu¥ý¦¸§Çªº³Ì°ò¥»ª«¥ó¡C¥¦¥i¥H¬O¤@­Ó­pµe¤¤ªº¤@³¡¤À©Î¬O¤@­Ó¿W¥ßªº¥Ø¼Ð¡F¦p§¹¦¨¦w¸m¤ôºÞ¡B¸Ë°t¹q½u¡B¤ôªd°ò¦¡B¯»¨êÀð¾Àµ¥µ¥¡A¨C¤@­Ó³£¬O¤@­Ó¥Ø¼Ð¡C 2. ­p¹º¡]plans¡^¡G ¥Nªí¶ÂªO¨t²Îªº¸ÑÃDµ¦²¤¡C­pµe¤¤¸Ô²Ó³¯­z¦³­þ¨Ç»Ý­n§¹¦¨ªº¥Ø¼Ð¡A³o­Ó³]­p­pµe¤¤¨C­Ó¥Ø¼Ðªº³]­p­È¬Ò¯àº¡¨¬©Ò¦³ªº­­¨î±ø¥ó¡A¦¹­p¹º«K§¹¦¨¡A¨Ãµ²§ô¤u§@¡C¨Ò¦pªoº£¯»¨êªº­p¹º´N¥]§t¤F¯»¨êÀð¾À¡B¼ÓªO¤Î«Î³»µ¥¥Ø¼Ð¡C

¡@

¡@3.3.2¡@¸ÑÃDª«¥ó¡]Solution Objects¡^

¡@¡@¸ÑÃDª«¥ó¬O¥Î¨Ó´x±±¦b³]­p¹Lµ{¤¤©Ò²£¥Íªº³]­p¸ê®Æ¡A¥¦­Ì¥]§t¤F¥H¤U´XºØÃþ«¬¡G 1. ¹ê»Úª«¥ó¡]physical object¡^¡G ¥Î¨Óªí¥Ü¹ê»Ú³]­p°ÝÃD¤¤ªºª«¥ó¡A¦bª¾ÃÑ®w¤¤³]­pª«¥ó¡]design object¡^³o­ÓÃþ§O¡]class¡^ªº¹ê¨Ò¡]instance¡^¡A«Kªí¥Ü¨t²Î©Ò»Ý³]­pªº¹ê»Úª«¥ó¡C 2. Åܼƪ«¥ó¡]variable object¡^¡G ¥Î¨Ó¥Nªí³]­p¹Lµ{¤¤¤@¨Ç³]­p­pºâ©ÎÀËòò­­¨î±ø¥ó©Ò»ÝªºÅܼơC°£¤F¦b³]­pª«¥ó»Pª¾ÃѤW¨Ï¥Î¤@¯ëªºª«¥ó¾É¦V¼Ò¦¡¥~¡A¶ÂªO¨t²Î§ó¨Ï¥Î¤Fª«¥ó¾É¦V³]­p³W½d¼Ò¦¡[24]¡C©Ò¦³ªºÅÞ¿è±Ô­z»PÅܼƦb³]­p¼Ð·Ç¤U³£³Qªí¥Ü¦¨ª«¥ó¡]object¡^¡A¦Ó³o¨Çª«¥óºÙ¬°¸ê®Æ¶µ¡]data item¡^¡C¨C¤@­Ó¤º§tªº¸ê®Æ¶µ³£¦³¦Û¤vªº­È¡B¸ê®Æ«¬¦¡¡B¥H¤Î¥Î¨Ó¨M©w¥»¨­­Èªº¤èªk¡]method¡^¡C 3. ­­¨îª«¥ó¡]constraint object¡^¡G ¥]¬A¤F±j«×­­¨î±ø¥ó¡]strength constraint¡^¡A´X¦ó­­¨î±ø¥ó¡]geometric constraint¡^»P¨Ï¥ÎªÌ¦Û¿ï­­¨î±ø¥ó¡]user specified constraint¡^¡A¦¹¤TªÌ¥Nªí¤£¦PÃþ§Oªº³]­p­n¨D¡C±j«×­­¨î±ø¥ó¥Nªí¤Fµ²ºc³]­p¤¤¡A³]­p±j«×¤è­±ªº­­¨î±ø¥ó¡F´X¦ó­­¨î±ø¥ó«h¥Nªí¤F³]­p®É¡A´X¦ó§Îª¬¤è­±ªº­­¨î±ø¥ó¡F¦Ó¨Ï¥ÎªÌ¦Û¿ï­­¨î±ø¥ó¬°¨Ï¥ÎªÌªþ¥[ªº­­¨î±ø¥ó¡C

¡@3.3.3¡@¦æ¬°ª«¥ó¡]Action Objects¡^

¦b¶ÂªO¨t²Î¤¤¡A³]­pª¾ÃѬO¥Hª¾ÃÑ·½ª«¥óÀx¦s©óª¾ÃÑ®w¤¤¡C¦Ó¹ê»Ú¦b³]­p¸ê®Æ¶ÂªO¤¤©Ò°õ¦æªºª«¥ó¡A«h¬O¬°¨º¨Ç³Q»¤µoªºª¾ÃÑ·½©Ò²£¥Íªºª¾ÃÑ·½±Ò¥Î°O¿ý¡A¦p¹Ï3-2©Ò¥Ü¡C¥H¤U¬°ª¾ÃÑ·½¡]KS¡^»Pª¾ÃÑ·½±Ò¥Î°O¿ý¡]KSAR¡^¤§Â²­z¡C 1. ª¾ÃÑ·½¡]KS¡^¡G ¦b¨C­Óª¾ÃÑ·½¤¤³£¸Ô­z¤F³]­p¦æ°Êªº¨Ï¥Î®É¾÷¡B¥¦ªº­I´ºÅܼƦp¦ó½T»{¡B»P¥¦À³±Ä¨ú¤°»ò¦æ°Ê¡L¡Lµ¥¸ê®Æ¡C¨C¤@­Óª¾ÃÑ·½¦b¶ÂªO¨t²Î¤¤³£µø¬°¨ã¦³¬Û¦P¾÷·|ªºÄvª§ªÌ¡A¦b¨C¤@¦¸ªº³]­p¶g´Á¤¤¡A³o´XÃþªºª¾ÃÑ·½³£·|©¼¦¹Ävª§¡A¦Ó¦P¤@Ãþ§O¤¤ªºª¾ÃÑ·½¤]·|µø¥»¨­¬O§_¯à¸Ñ¨M¥Ø«e¶ÂªO¤W©Ò§i¥Üªº°ÝÃD¨Ó©¼¦¹Ävª§¡A³o¤]´N¬O¶ÂªO¦¡¨t²Î¾÷·|¦¡±À²zªº¥Ñ¨Ó¡C´N¹³«Ø³y©Ð¤l¥Ø«e»Ý­nÄé»s°ò¦¡A¦¹®É´NÀ³¸Ó¥Ñ¤ôªd¤u¤H¥X¨Ó«Ø³y¡F¦ý¥L¥u¬O¥¼«Ø³y§@·Ç³Æ¦Ó¤w¡A¨Ã¥¼¯u¥¿«Ø³y¡C©Ò¥Hª¾ÃÑ·½¨Ã¤£¬O¸Ñ¨M°ÝÃDªº°Ê§@¡A¦Ó¬O¯à°÷¸Ñ¨M°ÝÃDªºª¬ºA¡C 2. ª¾ÃÑ·½±Ò¥Î°O¿ý¡]KSAR¡^¡G KSAR¬O¥Ñ³Q»¤µoªºª¾ÃÑ·½©Ò²£¥Íªº¡CKSAR¤~¬O¯u¥¿§ïÅܶªO°ÝÃDª¬ºAªº¦æ¬°ª«¥ó¡C¶ÂªO¨t²Î¤¹³\¤@­Ó³Q»¤µoªºª¾ÃÑ·½¥i¥H¨Ì¥»¨­­I´ºÅܼƪº²Õ¼Æ¨Ó²£¥Í¬Û¦P²Õ¼ÆªºKSAR¡A³o¼Ë²¤Æ¤Fª¾ÃÑ·½ªº±Ô­z¦¡¨Ã¥i¦b¦P¤@­Óª¾ÃÑ·½¤¤´y­z³\¦h¤£¦Pªº³]­p¿ï¾Ü¡CKSAR¬O¥Ñ»¤µoªºª¾ÃÑ·½»P½T»{«áªº­I´ºÅܼƲզX¦Ó¦¨ªº¡C¥Ñ¬Û¦Pª¾ÃÑ·½©Ò²£¥Íªº¼Æ­ÓKSAR¥i¥H¦]ÅܼƽT»{ªº¤£¦P¦Ó¦³¤£¦Pªº¦WºÙ¡CKSARªºÄݩʤj³¡¥÷³£¥Ñ¨ä¨Ó·½ª¾ÃÑ·½¤¤Ä~©Ó¦Ó¨Ó¡C

¡@3.3.4¡@¥~³¡µ{¦¡ª«¥ó¡]Foreign Program Objects¡^

¥~³¡µ{¦¡ª«¥ó¬O¥Î¨Ó´x±±°õ¦æ¥~³¡µ{¦¡©Ò»Ý­nªº¸ê®Æ¡A¥]¬A´ú¸Õ©Ò»Ýªº¿é¤JÀÉ¸ê®Æ¬O§_¦s¦b¡AµM«á°õ¦æ¡A²£¥Í¿é¥XÀÉ«á¦A±N©Ò»Ýªº¸Ñµª¨ú¦^¡C»P¼Æ­È¹Bºâµ{¦¡¦³Ãöªºª¾ÃѦs¦b©óª¾ÃÑ®wªº¥~³¡µ{¦¡ª«¥ó¤¤¡C¨t²Î¤¤¹w¥ý©w¸qªºª«¥ó»P¥¦­Ìªº¶¥¼hÃö«Y¦p¹Ï3-5©Ò¥Ü¡C¦b¦X§@³]­p¨t²Î¤¤¡A¹ê¨Ò¥Ñ¶¥¼hª¾ÃѾ𪺥½ºÝ²£¥Í¡A¥¦­Ì¬O¼Æ­È¹Bºâ¬ÛÃö¸ê°Tªí¥Üªº°ò¦¡C©³¤U´N¬O³o¨Çª«¥óÃþ§Oªº¸Ô²Ó´y­z¡G ¡± ¥~³¡µ{¦¡ª«¥ó¡]foreign.program.object¡^¡G¬O³Ì¤W¼hªº®ÚÃþ§O¡C¨ä¦³¤@­ÓÄÝ©Êpath·|³Q¤U¼hªº¤lÃþ§O¨Ï¥Î¡A¥H¦r¦êÀx¦sÀɮשε{¦¡ªº¸ô®|¡C¤]¦³¤èªk¡]method¡^¥i³Q¤lÃþ§Oªºª«¥ó©Ò¨Ï¥Î¡C¦b³o­Óª«¥ó¤¤¤]³]©w¤F¤@­Ó¥i¥H§PÂ_path©Òµ¹ªºÀɮצbUNIXÀô¹Ò¤¤¬O§_¦s¦bªº¤èªk¡A´N¬Oprobe-file¡C ¡± Àɮס]file¡^¡G¬O¨t²Î¤¤Àx¦sÀɮ׿é¤J/¿é¥X¬ÛÃöª¾ÃѤ§«Ê¸Ë©Êª«¥óªº¤W³¡Ãþ§O¡Cpositions¬O©Ò¦³Àɮת«¥ó¥Î¨ÓÀx¦sÀɮפ¤»Ý­n³B²z¸ê®Æ©Ò¦b¦æ»P¦C¦ì¸mªºÄݩʡC¦b³o­Óª«¥ó¤¤¤]³]©w¤F¤@­Ó«þ¨©Àɮתº¤èªk¡A´£¨Ñ©Ò¦³ÀÉ®×¹ê¨Òª«¥ó¨Ï¥Î¡A´N¬Ocopy-file¡C ¡± ¿é¤JÀÉ¡]input.file¡^¡G¬Ofileªº¤@­Ó¤lÃþ§O¡Cinput.fileªº¤@­Ó¹ê¨Ò¥Nªí¤@­Ó¹ïÀ³ªº¥~³¡µ{¦¡ªº¿é¤J¸ê®ÆÀɮסA¦Ó¥B¨ä¥]§t¤F¦p¦ó²Õ¦¨¦¹Àɮתº¬ÛÃö¸ê°T¡Cinput.file¦³­ÓÄݩʥs°µvalues-required¡A¥¦Àx¦sªº¬O¤@¹ï¹ïªºª«¥óÄݩʦê¦C¡C¦ê¦C¤¤¨C¤@­Óª«¥óÄݩʭȳ£±N¸g¥Ñ¹Bºâµ{¦¡¤¶­±ª¾ÃѼҲդ¤ªº¡u¿é¤JÀɫغc¾¹¡v¼g¤JÀɮ׸̭±¡C¦ÓÀɮפºÄݩʭȪº¦ì¸m¬O¨Ìpositions³o­ÓÄ~©ÓªºÄݩʥH¦¨¹ï¤§¦æ»P¦C¦ì¸mªº¦ê¦C¨Óªí¥Ü¡C¦Ópositions¤Îvalues-required³o¨â­Ó¦ê¦Cªºªø«×­n¬Û¦P¡A¦]¬°¥L­Ìªº¤¸¯À¬O¤@¹ï¤@ªºÃö«Y¡]values-requiredªº­È­n¦s¤Jpositions©Ò«üªº³o­Ó¦ì¸m¡^¡C ¡± ¿é¥XÀÉ¡]output.file¡^¡G¬Ofileªº¤@­Ó¤lÃþ§O¡Coutput.fileªº¤@­Ó¹ê¨Ò¥Nªí¤@­Ó¥~³¡µ{¦¡°õ¦æ«áªº¿é¥XÀɮסA¥B¨ä¥]§t¤F¦p¦ó±q¦¹Àɮרú±o¬ÛÃö¸ê°Tªºª¾ÃÑ¡Coutput.file¦³­Ó±qfileÄ~©ÓªºÄݩʥs°µpositions¡A¦b³oÄݩʤºÀx¦s¤F¤@¹ï¹ï¦æ»P¦C®y¼Ðªº¦ê¦C¡C¨C¤@¹ï¦æ»P¦C¦ì¸m³£¥Nªí¤F¹Bºâµ{¦¡¤¶­±ª¾ÃѼҲդ¤ªº¡u¿é¥XÀÉ¸ê®ÆÅª¨ú¾¹¡v¡A©Ò»ÝŪ¨úªº³]­p­È¦bÀɮפ¤ªº¦æ»P¦C®y¼Ð¦ì¸m¡C«ü©w¨ú¦^ªº­È¦s©ñ©óoutput.fileªºvalue-designationsÄݩʤ¤¥H¤@¹ï¹ïªºª«¥óÄݩʦê¦C¨Óªí¥Ü¡C¤]´N¬O³]­p­È¥ÑÀɮפ¤¨ú¦^¡A¦s¦b¶ÂªO¤W¤§³]­pª«¥óªºÄݩʤº¡F»Pinput.file¬Û¦ü¡Apositions¤Îvalues-designations³o¨â­Ó¦ê¦Cªºªø«×­n¬Û¦P¡A¦]¬°¥L­Ìªº¤¸¯À¬O¤@¹ï¤@ªºÃö«Y¡]value-designationsªº­È­n±qpositions©Ò«üªº³o­Ó¦ì¸m¨ú±o¡^¡C ¡± °Ñ¼Æ¡]parameter¡^¡G¬O¤@­Óª«¥óÃþ§O¡AÀx¦s­n°õ¦æ¥~³¡µ{¦¡©Ò»Ý­nªº°Ñ¼Æ¸ê®Æ¡Cparameter¦³­ÓÄݩʥs°µvalue-form¡A´y­z¤F©Ò»Ý°Ñ¼Æªº¨Ó·½¡Cvalue-form¥i¥H¬°¨t²Î¤¤¥ô¦ó¸ê®Æ¶µ¡]data item¡^©Ò©w¸qªºª«¥ó¡A¥i¥H¬O¤@­ÓÀɮת«¥ó¡B¤@­Ó¨ç¼Æ¹Bºâ¦¡©Î¬O¤@­Ó¯S©wªº­È¡]¨Ò¦p¤@­Ó©ú½Tªº¼Æ­È¡A¤å¦r¦r¦êµ¥µ¥¡^¡C·í»Ý­n°Ñ¼Æªº­È®É¡A¹w¥ý©w¸qªº¤èªk«K·|µû¦ôvalue-form¥H±o¨ì¦¹­È¡C¦b³o­Óª«¥ó¤¤¤]³]©w¤F¤@­Ó´ú¸Õvalue-form¤º©Ò¶ñªº°Ñ¼Æ¬O§_¦s¦bªº¤èªk¡A´£¨Ñµ¹©Ò¦³¹ê¨Òª«¥ó¨Ï¥Î¡A´N¬Ovalue?¡C ¡± µ{¦¡¡]program¡^¡G¬O©Ò¦³¥~³¡µ{¦¡ª«¥óªº­ì«¬¡C·í¥»¨­¤lÃþ§Oªº¹ê¨Ò¦bª¾ÃÑ®w¤¤³Qªí¥Ü¥X¨Ó®É¡A¨ó¤O¦¡¨t²Î«K»{¬°¥¦­Ì¬O¯à°÷¥H¼Æ­È¹Bºâµ{¦¡¤¶­±¨Ó°µ¹Bºâªº³]­pµ{¦¡¡Cpath³o­ÓÄ~©ÓÄݩʫü¥X¥~³¡µ{¦¡Àɮתº¸ô®|¦WºÙ¡Cprogramªºinput-filesÄÝ©ÊÀx¦s¤@­Ó¡]©Î¦h­Ó¡^input.fileªºª«¥ó¡A¥i¥HÁpµ²¨ìµ{¦¡ªº¿é¤JÀÉ¸ê®Æ«ü©wªº¸ô®|¡C¦P²z¡A¼g¦boutput-filesÄݩʪºoutput.fileª«¥ó¦WºÙ¬O¥Î¨Ó«ü©wµ{¦¡°õ¦æ«á¿é¥XÀɪº¸ô®|¦WºÙ»P¦p¦ó³B²zµ{¦¡¿é¥X­Èªº¬ÛÃö¸ê°T¡Cknown-design-values¤Îunknown-design-values³o¨â­ÓÄݩʬO«Å§i¤°»ò­ÈÀ³¸Ó¦b¶ÂªO¤W¡A¦Ó¥B¤°»ò­È¦b°õ¦æµ{¦¡¤§«e¤£À³¦b¶ÂªO¤W¡C³o¨â­ÓÄݩʪº­È¬O¥H¤@¹ï¹ïª«¥óÄݩʩҧΦ¨ªº¦ê¦C²Õ¦¨¡C³q±`¡Aknown-design-valuesªº­È¬O·Ç³Æ¿é¤JÀɩһݪº³]­p­È¡A¦Óunknown-design-valuesªº­È¬O¥~³¡µ{¦¡©Ò¯à­pºâªº³]­p­È¡C¥~³¡µ{¦¡°õ¦æ¾¹ª¾ÃѼҲմN¬O¨Ï¥Î³o¨â­ÓÄݩʭȥh²Õ¦¨³]­p°Ê§@ªº¥ý¨M±ø¥ó¡C ¡± ½s͵{¦¡¡]compiled.program¡^¡G¬Oprogramªº¤@­Ó¤lÃþ§O¡C¥¦±qprogramÄ~©Ó©Ò¦³ªºÄݩʻP¤èªk¡C¥»ª«¥ó¦³¤@ªþÄݤ§¤èªk¡]method¡^¹ê»Ú¦bUNIXÀô¹Ò¤U°e¥X°õ¦æ¥~³¡µ{¦¡ªº«ü¥O´£¨Ñµ¹©Ò¦³µ{¦¡¹ê¨Òª«¥ó¨Ï¥Î¡A´N¬Oexecute-program¡C ¡± ­ì©lµ{¦¡¡]source.program¡^¡G¬Oprogramªº¤@­Ó¤lÃþ§O¡C¥¦»P¨ä¥LÃþ§Oµ{¦¡ªº°Ï¤À¦b©ó¥»¨­¦³³B²zµ{¦¡½sĶªº¸ê°T»P¤èªk¡C ¡± µL°Ñ¼Æªºµ{¦¡¡]program.without.parameter¡^¡G¬Oprogramªº¤@­Ó¤lÃþ§O¡C¥¦¥Nªí¤@­Ó¤£»Ýµ¹¤©¥ô¦ó°Ñ¼Æ¦Ó¯à°÷°õ¦æªº¥~³¡µ{¦¡¡Aª`·N¡A¥»¨t²Î¤ä´©¦h­«Ä~©Ó¡A¤@­Óµ{¦¡ª«¥óªº¹ê¨Ò³q±`ÄÝ©ó¨â­Óµ{¦¡ªºÃþ§O¡]¨Ò¦p¤@­Óµ{¦¡¥i¦P®ÉÄÝ©ócompiled.program»Pprogram.without.parameter¨â­ÓÃþ§O¡^¡C ¡± °Ñ¼Æ©Êµ{¦¡¡]program.with.parameter¡^¡G¬Oprogramªº¤@­Ó¤lÃþ§O¡C¥¦¥Nªí¤@­Ó¥~³¡µ{¦¡»Ý­n¦b«ü¥O«áª½±µ±µ¦³°Ñ¼Æ¤~¯à°õ¦æ¡C¥»ª«¥ó¦³¤@­ÓargumentsªºÄݩʡA¥Hparameterª«¥ó§Î¦¡Àx¦s¥~³¡µ{¦¡ªº°Ñ¼Æ¡C¥¦¦³¤@­Ó¤èªk¡]method¡^¯à¹ïarguments¤¤ªº¨C¤@­Óparameterª«¥ó¶Ç°e°T®§¥H¨M©w©Ò¦³ªº°Ñ¼Æ¬O§_¦s¦b¤Î¯à§_­pºâ¨ä­È¡C

3.4¡@¨t²ÎKSARµû¦ô

§Q¥Î¥Ø«e¦b±±¨î¶ÂªO¤Wªº­pµe»P¥Ø¼Ðª«¥ó¤¤ªº±±¨îª¾ÃѨӵû¦ôKSAR¡A±±¨îª¾ÃѦs©ó¥Ø¼Ð¤¤ªºµû¦ô¨ç¼Æ¡]FUNCTION¡^¡C©Ò¥H¨C­Ó¦b°õ¦æÄ³µ{¤WªºKSAR³£·|¨Ì²{¶¥¬q¥Ø¼Ð¤¤µû¦ô¨ç¼Æ³o­ÓÄݩʭȡA­Ó§Oµû¦ô¨ä¬Û¹ïµû¤À¡Cµû¤À¤½¦¡¦p¤U¡G ²Ä¤­³¹¹Ï5-4¤¤¡ARUN.SECTION.TYPE.C.PROGRAMªºµû¤À¬°36.24¡A¨ä­pºâ¹Lµ{¦p¤U¡G ¥Ø«e±±¨î¶ÂªO¤Wªº±Ò¥Î¥Ø¼Ð¡]active goal¡^¦³¤U¦C¤­­Ó¡G ¡]1¡^ CANTILEVER.BRIDGE.DESIGN.PLAN¡]Åv­«weight¡×5¡^ªº³]­p¥Ø¼ÐCANTILEVER.BRIDGE.DESIGN¡]Åv­«¡×5¡^¡C ¡]2¡^ CANTILEVER.BRIDGE.DESIGN.SUBPLAN.1¡]Åv­«¡×5¡^ªº³]­p¥Ø¼ÐDESIGN.SEGMENTS¡]Åv­«¡×5¡^¡C ¡]3¡^ FOREIGN.PROGRAM.PLAN¡]Åv­«¡×10¡^ªº³]­p¥Ø¼ÐCALCULATE.SEGMENT.SECTION¡]Åv­«¡×10¡^¡C ¡]4¡^ ¨t²Î¤º«Ø¥Ø¼ÐFAVOR.CONTROL.ACTIONS¡]Åv­«¡×8¡^ ¨C­Ó¥Ø¼Ð¹ïrun.section.type.c.program­Ó§Oªºµû¤À¬°¡G ¡]1¡^ CANTILEVER.BRIDGE.DESIGNªºµû¤À¬°45¡C ¡]2¡^ DESIGN.SEGMENTSªºµû¤À¬°45¡C ¡]3¡^ CALCULATE.SEGMENT.SECTIONªºµû¤À¬°45¡C ¬G¨t²Î¹ïrun.section.type.c.programªºÁ`µû¤À¬°¡G

3.5¡@¥~³¡µ{¦¡¹B§@¬yµ{

¡@3.5.1¡@¥~³¡µ{¦¡¤¶­±ªºªí¥Ü

¨t²Î¤¤°õ¦æ³]­p°Ê§@ªºª¾ÃѦs©ñ¦bª¾ÃÑ®w¸Ìªºª¾ÃÑ·½ª«¥ó·í¤¤¡C¦b³]­p¸ê°T¶ÂªO¤Wªº³]­p°Ê§@ª«¥ó¬O±Ò°Êª¾ÃÑ·½¦Ó²£¥ÍªºKSAR¡]ª¾ÃÑ·½±Òµo°O¿ý¡^¡C ¦b¥~³¡µ{¦¡¤¶­±ª¾ÃѼҲդºªº³]­p°Ê§@³£¬O¼Ð·Çªº¦æ¬°ª«¥ó¡C¨C¤@­Óª«¥ó³£¥]§t¤F¦³Ãö¥»¨­³]­p¦æ¬°ªº¸ê°T¡A¨Ò¦p¡G³]­p®É¾÷¡BÅܼƧô¨î¡B³]­p¶i¦æ¥H¤Î³]­p­«­n©Êµ¥¡CIJµo¤Î°õ¦æ¼Æ­È¹Bºâµ{¦¡ªº¸ê°T¥i¥H¦b¥H«Å§i©Ê¤è¦¡Àx¦s©óª¾ÃÑ®w¤¤ªº¥~³¡µ{¦¡ª«¥ó¤º§ä¨ì¡C¥~³¡µ{¦¡¤¶­±¥]§t¤F¯à°÷¨Ì³o¨Ç¥~³¡µ{¦¡ª«¥ó¦Ó½Õ¾ã¨ä³]­p¦æ¬°ªº¤@¯ë©Êª¾ÃÑ·½¡C

¡@3.5.2¡@¥~³¡µ{¦¡¹B§@ª¾ÃÑ·½Â²¤¶

¡@¡@¨ó¤O¦¡³]­p¨t²Î¤¤ªº¨C­Óª¾ÃÑ·½¬Ò¥Nªí¤F»P¥~³¡µ{¦¡¥æ¬yªº¯S§Oª¾ÃÑ¡C¦]¦¹¡A¥»¬ã¨s¤§¥~³¡µ{¦¡¤¶­±ª¾ÃѼҲդD¬O±N¥~³¡µ{¦¡¬ÛÃöªºª¾ÃÑ¡A§Q¥Î¨t²Îªºª¾ÃѪí¥Üªk¥[¥H¼¶¼g¦¨ª¾ÃÑ·½¡C¥H¤U´N²­z¡u¥~³¡µ{¦¡¤¶­±¡vforeign.program.interface©Ò¥]§tªº»â°ìª¾ÃÑ·½¡C ¥~³¡µ{¦¡¤¶­±¡G ¥]¬A¦³¤T­Ó¤lÃþ§O¡]¨£¹Ï3-3¡^¡A¤À§O¬°foreign.program.executor¡Binput.file.constructor¤Îoutput.file.reader¡C¨ä¤¤execute.one.program¬OÄÝ©óforeign.program.executor³o­ÓÃþ§O¤Uª¾ÃÑ·½¡F¦Óread.output.file.data¬OÄÝ©óoutput.file.reader³o­ÓÃþ§O¤Uª¾ÃÑ·½¡C¨ä¥D­nªº¥\¯à¤À§O¬°°õ¦æ¡B¿é¤J¤ÎŪ¨ú¥~³¡µ{¦¡¡A¥H¤U´N¦C¨â­Óª¾ÃÑ·½ªº¤º®e¨Ó¤¶²Ð¤£¦Pª¾ÃÑ·½ªº¥Îªk¡C (a) execute.one.program¡G¥»ª¾ÃÑ·½¬OÄÝ©óforeign.program.executorªº¹ê¨Ò¡A¥Nªí¤F¬O§_¯à°÷°õ¦æ¥~³¡µ{¦¡¬ÛÃöªº±ø¥ó¤Îª¾ÃÑ¡C 1 »¤µo±ø¥ó¡]trigger¡Oconditions¡^¡G¬O¤@³s¦ê¥ÑLISP»y¨¥½s¼gªº±ø¥ó¦¡¡A¨ä¥\¯à¬O¥Î¨Ó§P§Oª¾ÃÑ·½ªº¾A¥Î©Ê¡C·í»¤µo±ø¥óªº­È¬°¯u¡]true¡^®É¡A³o­Óª¾ÃÑ·½´N·|³Q»¤µo¨Ã¶i¦æ¨Òµýªº°Ê§@¡Aª`·N¦b»¤µo±ø¥ó¤¤¤£±o¨Ï¥Î­I´ºÅܼơC¥»ª¾ÃÑ·½¤¤¡A±Ô­z¤F·íprogram¦³¹ê¨Ò¡]instance¡A°õ¦æÀɮס^®É¡A«K¯à»¤µoexecute.one.program³o­Óª¾ÃÑ·½¡C 2 ­I´ºÅܼơ]context¡Ovariable¡^¡G¥Î¨Ó±qª¾ÃÑ·½²£¥ÍKSARªº³æ¤@ÅܼƩΦh²ÕªºÅܼƹï¡C³o¨ÇÅܼƦbª¾·½»¤µo«á«K³Q«ü©w¦¨¯S©wªº­È¡A¦b¥»¨­ª¾ÃÑ·½¤¤ªºKSAR³£³Q´À´«¦¨¦¹­I´ºÅܼơC³o¨ÇÅܼƳq±`³Q©w¸q¦¨ªþ¦³"$"²Å¸¹ªº¦WºÙ¡C¦b¨C­Óª¾ÃÑ·½¤¤°£¤F»¤µo±ø¥ó¥H¥~ªºÄݩʳ£¥i¥H¨Ï¥Î­I´ºÅܼơC¦p¥»ª¾ÃÑ·½¤¤ªº±Ô­z¬°¡G"¦bprogramÃþ§O¤¤ªº¹ê¨Ò¡]instance¡A°õ¦æÀɮס^³£³Q«ü©w¬°­I´ºÅܼơA¨Ò¦p¥»¨Ò¦³section.type.c.program¡Bconstant.d.seg.property. program¡Blongitudinal.profile.program¡Bsection. type.fortran.program¡Bsegment.number.length. program¤Îvariable.d.seg.property.programµ¥¡]¸Ô¨£¹Ï3-6©Ò¥Ü¡^¡C 3 ¦WºÙ²£¥Í¾¹¡]name¡Ogenerator¡^¡G¥Î¨ÓÂàĶ¥Ñª¾ÃÑ·½©Ò²£¥ÍªºKSARªº¦WºÙ¡C·íª¾ÃÑ·½¥i²£¥Í¶W¹L¤@­Ó¥H¤WªºKSAR®É¡A¦¹ÄݩʴNÅܱo¬Û·í­«­n¡C¦]¬°¨t²Î¦b¦WºÙ²£¥Í¾¹¨S¦³­È®É·|¥Hª¾ÃÑ·½ªº¦WºÙ¨Ó¥N´À¡A¦Ó¦h²Õ¬Û¦P¦WºÙªºKSAR·|¦b¶ÂªO¤¤³y¦¨²V²c¡A¥H­P³y¦¨¨t²Î¿ù»~¡C¨Ò¦p¥»ª¾ÃÑ·½ªº¦WºÙ²£¥Í¾¹¬°¡]run $program¡^¡A·í­I´ºÅܼƳQ«ü©w¬°section.type.c.program«á¡A³o­ÓKSARªº¦WºÙ´N·|Åܦ¨¬°¡Grun.section.type.c.program¡C 4 ¥ý¨M±ø¥ó¡]precondition¡^¡G·íKSAR¥Ñª¾ÃÑ·½²£¥Í«á¡Aª¾ÃÑ·½¤¤ªº¦¹¶µÄݩʴN·|Åܦ¨³o¨ÇKSARªº¥ý¨M±ø¥ó¡A§Y½T»{¥ý¨M±ø¥ó³Qº¡¨¬ªºKSAR¤~¦³³Q°õ¦æªº¥i¯à¡C¦p¥»ª¾ÃÑ·½¤¤¡A·í¨C­Ó¥~³¡°õ¦æª«¥óªºcan-be-executed-pÄݩʦ^À³true®É¡A¥ý¨M±ø¥ó¤~·|º¡¨¬¡A©Ò¥H¥u­n¬O¨C­ÓKSARªºcan-be-executed-pÄݩʦ^À³true®É¡AKSAR«K·|¥X²{¦b¶ÂªOªºª¾ÃÑ®w¤W 5 °õ¦æ°Ê§@¡]action¡Ocode¡^¡G¬O¤@­ÓLISP»yªkªº±Ô­z¡A¥NªíKSAR°õ¦æ¸Ñ¨M¶ÂªO°ÝÃDªº°Ê§@¡A¦¹°Ê§@¬O¦bKSAR³Q½T©w°õ¦æ«á¡A¤~·|µo¥Í§@¥Î¡C¥»ª¾ÃÑ·½¤¤¡A·|·Ç³Æ­I´ºÅܼƩҫü©wµ{¦¡ªº¿é¤JÀÉ¡A¨Ã¥B°õ¦æ¨Ì¥»¨­¹ê¨Ò¤¤pathÄݩʩҶñ¼gªº¥~³¡µ{¦¡¦WºÙ¡C 6 Àu¥ýÅv¡]priority¡^¡G¥Nªíª¾ÃÑ·½ªºÀu¥ýÅv¤j¤p¡C¦¹Äݩʪº­È¥i¬°±`¼Æ©Î¥ÑLISP»y¨¥©Ò¼gªºµ{¦¡¡]ª`·N¡Gµ{¦¡©Ò¶Ç¦^ªº­È¥²¶·¬O¤@­Ó¼Æ¦r¡^¡CÀu¥ýÅvªº¤j¤p¥Nªí¤Fª¾ÃÑ·½¦b¤£¦Pª¬ªp¤Uªº­«­n©Ê¡A¦P®É¤]¬O¶ÂªO¨t²Î¥Î¨Óµû¦ôµû¤Àªº­n¯À¤§¤@¡CÀu¥ýÅvªº­È°ì½d³ò¬°±q0¨ì100¡A¼Æ­È·U°ª¥Nªí­«­n©Ê·U¤j¡C¥»¨Ò¤¤¡AÀu¥ýÅv¬°±`¼Æ90¡C 7 ª¬ºA¡]status¡^¡G¦¹Äݩʪº­È¤£¬O¬°"¥i°Ê§@ªº"¡]operative¡^´N¬O¬°"¤£¥i°Ê§@ªº"¡]inoperative¡^¡C¦pªGª¾ÃÑ·½ªºª¬ºA¬O¤£¥i°Ê§@ªº¡A¨º»ò¦b¸ÑÃD¹Lµ{¤¤¡A¨t²Î«K¤£·|¦Ò¼{¨Ï¥Î¦¹ª¾ÃÑ·½¡C ¥H¤U¤¶²Ðoutput.file.readerªºª¾ÃÑ·½¡Gread.output.file.data¡AµÛ­«©ó­«­nÄݩʻ¤µo±ø¥ó¡B¥ý¨M±ø¥ó¡B­I´ºÅܼơB¦WºÙ²£¥Í¾¹»P°õ¦æ°Ê§@¡C (b) read.output.file.data¡G¥»ª¾ÃÑ·½¬OÄÝ©óoutput.file.readerªº¹ê¨Ò¡A¥Nªí¤F·í°õ¦æ¹L¥~³¡µ{¦¡«á­n¨ú¦^¿é¥XÀÉ­pºâ­Èªº±ø¥ó¤Îª¾ÃÑ¡C 1 »¤µo±ø¥ó¡]trigger¡Oconditions¡^¡G¥»ª¾ÃÑ·½ªº»¤µo±ø¥ó¬°¡A·íoutput¡Ofile³o­ÓÃþ§O¤¤¦³¥ô¦ó¤@­Ó¹ê¨Ò¡]instance¡A¿é¥XªºÀɮס^¦s¦b®É¡Aread.output.file.dataª¾ÃÑ·½«K³Q»¤µo¡C 2 ­I´ºÅܼơ]context¡Ovariable¡^¡G³o­Óª¾ÃÑ·½ªº­I´ºÅܼơ]$property¡^±Ô­z¬°¡G"§âoutput.fileª«¥ó¤Uªº¨C¤@­Ó¹ê¨Ò¡]instance¡A¿é¥XªºÀɮס^«ü©w¬°­I´ºÅܼÆ"¡C 3 ¥ý¨M±ø¥ó¡]precondition¡^¡G¥»ª¾ÃÑ·½¤¤¡A·|´ú¸Õ¨Ì­I´ºÅܼÆ$property©Ò«ü©wªº­È¡]¿é¥XÀÉ¡^¬O§_¤w¦s¦b¡A¦pªG¦¹®É§ä¨ì¦¹¿é¥XÀÉ¡A³o­ÓKSARªº¥ý¨M±ø¥ó¤~·|º¡¨¬¡A¤]¤~¦³³Q°õ¦æ¤§¥i¯à¡C 4 ¦WºÙ²£¥Í¾¹¡]name¡Ogenerator¡^¡G¶ÂªO¨t²Î®Ú¾Ú­I´ºÅܼƤ§¦WºÙ¥H¤Î¦WºÙ²£¥Í¾¹¤¤¤§±Ô­z±N²£¥Íread $property dataªº³o­ÓKSAR¦b¶ÂªOªºª¾ÃÑ®w¤W¡C 5 °õ¦æ°Ê§@¡]action¡Ocode¡^¡G¤@­ÓLISP»yªkªº±Ô­z¡A¥NªíKSAR°õ¦æ¸Ñ¨M¶ÂªO°ÝÃDªº°Ê§@¡A¦¹°Ê§@¬O¦bKSAR³Q½T©w°õ¦æ«á¡A¤~·|µo¥Í§@¥Î¡C¥»ª¾ÃÑ·½¤¤¡A·|±q­I´ºÅܼƩҫü©wªº¿é¥XÀɤ¤¨Ì¥»¨­ª¾ÃÑ·½©Ò©w¸qªºput-value-&-values-designations³o­Ó¤èªk¨ú­È¡A¨Ã©ñ¤J¯S©wªºÄݩʤº¡C 6 Àu¥ýÅv¡]priority¡^¡G¥Nªíª¾ÃÑ·½ªºÀu¥ýÅv¤j¤p¡C¦¹Äݩʪº­È¥i¬°±`¼Æ©Î¥ÑLISP»y¨¥©Ò¼gªºµ{¦¡¡]ª`·N¡Gµ{¦¡©Ò¶Ç¦^ªº­È¥²¶·¬O¤@­Ó¼Æ¦r¡^¡CÀu¥ýÅvªº¤j¤p¥Nªí¤Fª¾ÃÑ·½¦b¤£¦Pª¬ªp¤Uªº­«­n©Ê¡A¦P®É¤]¬O¶ÂªO¨t²Î¥Î¨Óµû¦ôµû¤Àªº­n¯À¤§¤@¡CÀu¥ýÅvªº­È°ì½d³ò¬°±q0¨ì100¡A¼Æ­È·U°ª¥Nªí­«­n©Ê·U¤j¡C¥»¨Ò¤¤¡AÀu¥ýÅv¬°±`¼Æ90¡C 7 ª¬ºA¡]status¡^¡G¦¹Äݩʪº­È¤£¬O¬°"¥i°Ê§@ªº"¡]operative¡^´N¬O¬°"¤£¥i°Ê§@ªº"¡]inoperative¡^¡C¦pªGª¾ÃÑ·½ªºª¬ºA¬O¤£¥i°Ê§@ªº¡A¨º»ò¦b¸ÑÃD¹Lµ{¤¤¡A¨t²Î«K¤£·|¦Ò¼{¨Ï¥Î¦¹ª¾ÃÑ·½¡C

¡@3.5.3¡@¥~³¡µ{¦¡ª«¥ó¹ê¨Ò

¦b¦¹Á|¥X¨â­Ó¥~³¡µ{¦¡ª«¥ó¹ê¨Ò¡A¨ä¤¤¤@¨Ò¬°°õ¦æ®Éµ{¦¡¤£»Ý­n°Ñ¼Æ¡Gsegment.number.length.program¡]¤]´N¬Oª½±µ¥Ñµ{¦¡©I¥s¿é¤JÀÉ¡^¡F¥t¤@¨Ò¬°°õ¦æ®Éª½±µµ¹¤©µ{¦¡©Ò»Ý¤§­È¡A¦Ó¤£©I¥s¿é¤JÀÉ¡Gsection.type.c.program¡A¸Ô¨£¹Ï3-6©Ò¥Ü¡C¨ä¤¤²Ä¤@­Ó¨Ò¤l¬O¥HFORTRAN»y¨¥¼g¦¨ªº¡F¦Ó²Ä¤G­Ó¨Ò¤l¬O¥HC»y¨¥©Ò¼g¦¨ªº¡C Á|¨Ò¤@ ¡± segment.number.length.program¡]¸`¶ô¼Æ¥Ø¤Îªø«×ªº¥~³¡µ{¦¡ª«¥ó¡^¡G¦¹ª«¥ó¥]¬A¤U¦CªºÄÝ©Ê ¡]1¡^ PATH ¡]path and name¡^ Values¡G "~/fortran/seg-profile.exe" ¡]2¡^ INPUT-FILES¡]input file slot name¡^ Values¡G segment.number.length.in ¡]3¡^ OUTPUT-FILES¡]output file slot name¡^ Values¡G segment.number.length.out ¡]4¡^ KNOWN-DESIGN-VALUES¡]values we have known¡^ Values¡G ¡]CANTILEVER.BRIDGE top-slab-thickness¡^ ¡]5¡^ UNKNOWN-DESIGN-VALUES¡]values we required¡^ Values¡G ¡]CANTILEVER.BRIDGE segment-number¡^ ¡]6¡^ VALUE-EXIST-P¡]test the value exist or not¡^ ValueClass¡G method Value¡G ·íknown-design-valuesªº­È(³»ªO«p)¦s¦b¡A¦Óunknown-design-valuesªº­È(¸`¶ô¼Æ¥Ø)¤£¦s¦b®É¡A¦¹¤èªk«K¦^À³true¡F§_«h«h¦^À³nil¡C¦¹Äݩʴ£¨Ñ¤Fª¾ÃÑ·½execute.one.programªº¥ý¨M±ø¥ó(precondition)§PÂ_¬O§_»¤µoKSAR¡C ¡]7¡^ PREPARE-INPUT¡]write values to input files¡^ ValueClass¡G method Values¡G ·ívalue-exist-p¦^À³true®É¡A¦¹¤èªk«K±Nµ{¦¡©Ò¶·ªº¿é¤JÀɨ̪«¥ó¥»¨­¤w©w¸qªºvalues-requiredÄݩʤ§­È¦s¤Jpositions©Ò«üªº¦ì¸m¤W¡C ¦Ó¦¹µ{¦¡ª«¥ó¤S»ÝÁpµ²¨ìÀɮת«¥ó¡]FILE object¡^¡A¨ä¤¤¥]¬A¤F¿é¤JÀɪ«¥ó¡]segment.number.length.in¡^¤Î¿é¥XÀɪ«¥ó¡]segment.number.length.out¡^¨â­Óª«¥ó¡A¦p¹Ï3-6©Ò¥Ü¡G ¡± segment.number.length.in¡]¸`¶ô¼Æ¥Ø¤Îªø«×ªº¿é¤JÀɪ«¥ó¡^¡G ¡]1¡^ PATH¡]path and name¡^ Values¡G "~/fortran/seg-profile.in" ¡]2¡^ POSITIONS¡]value's position in input file¡^ Values¡G (1 1) ¡]3¡^ values-required¡]the require value of input file¡^ Values¡G (CANTILEVER.BRIDGE span-length¡^ ¡]4¡^ WRITE-INPUT-OUT¡]write values to input files¡^ ValueClass¡G method Values¡G ¨ú¥Xvalues-required©Ò«ü©wªº­È¶ñ¤Jpositions©Ò«ü©wªº¦ì¸m¡C ¡± segment.number.length.out¡]¸`¶ô¼Æ¥Ø¤Îªø«×ªº¿é¥XÀɪ«¥ó¡^¡G ¡]1¡^ PATH¡]path and name¡^ Values¡G "~/fortran/seg-profile.out" ¡]2¡^ POSITIONS¡]value's position in output file¡^ Values¡G (1 1) (1 5) ¡]3¡^ VALUES-DESIGNATIONS¡]the designation slot values write to¡^ Values¡G ¡]CANTILEVER.BRIDGE segment-number¡^¡B¡]CANTILEVER.BRIDGE segment-length¡^¡C ¡]4¡^ PUT-TO-POSITION-&-VALUE-DESIGNATION¡]get the output file values and assert to designation slot¡^ ValueClass¡G method Values¡G ¦Û¥~³¡¿é¥XÀɨú¥Xpositions©Ò«ü©w¦ì¸m¤§­È¡A¨Ã¶ñ¤Jvalues-required©Ò¹ïÀ³Äݩʪº¼Ñ(slot)¤¤¡C Á|¨Ò¤G ¡± section.type.c.program¡G¡]¾îÂ_­±©Ê½èªº¥~³¡µ{¦¡ª«¥ó¡^¡G¦¹ª«¥ó¥]¬A¤U¦Cªº¼Ñ¡]slots¡^¡G ¡]1¡^ PATH Values¡G "~/c/sectionc.exe" ¡]2¡^ ARGUMENTS¡]require arguments for program¡^ Values¡G values ¡]3¡^ CAN-BE-EXECUTED-P¡]test KSAR can be executed¡^ Values¡G ¦¹¨Ò·ívalue-exist-p¦^À³true¡A¦Ó¥B¥~³¡µ{¦¡ªº¿é¥XÀɤ£¦s¦b¡A¨Ã¥Bvalue?¦^À³true¤T­Ó±ø¥ó¬Òº¡¨¬«á¡A«K¦^À³true¡A©Ò¥Hª¾ÃÑ·½execute.one.program«K»¤µo¦¹KSAR¡A¨Ã¥X²{¦b¶ÂªO¤W¡C ¡]4¡^ INPUT-FILES Values¡G nil ¡]5¡^ OUTPUT-FILES Values¡Gsection.type.c.out ¡]6¡^ KNOWN-DESIGN-VALUES Values¡G ¡]CANTILEVER.BRIDGE bridge-width¡^¡B¡]CANTILEVER.BRIDGE construction-method¡^¡B¡]CANTILEVER.BRIDGE longitudinal-profile¡^ ¡]7¡^ UNKNOWN-DESIGN-VALUES Values¡G ¡]CANTILEVER.BRIDGE bridge-section¡^ ¦]¬°¦¹µ{¦¡ª«¥ó¤§¸ê®Æª½±µ¥Ñ°Ñ¼Æ´£¨Ñ¡A©Ò¥H¨S¦³¿é¤JÀɪ«¥ó¡A¦Ó¥u¦³°Ñ¼Æª«¥ó¡]parameters¡^»P¿é¥XÀɪ«¥ó¡]section.type.c.out¡^¡C¨£¹Ï3-6©Ò¥Ü¡G ¡± values¡]¾ô¼Ù¼eª«¥ó¡^¡G ¡]1¡^ VALUE-FORM Values¡G bw¡]¾ô¼e¡A¨t²Î©w¸qªº¬M®g¸ê®Æ¶µ¡^ ¡]2¡^ VALUE? ¡]test the value-form slot has values¡^ ValueClass¡G method Values¡G ¬O¤@­Ó­pºâ°Ñ¼Æ­Èªº¤èªk¡]method¡^¡A·í«e¤@ÂIvalue-formªº­Èbw­pºâ¥X¦³­È®É¡A¦¹¤èªk«K¦^À³¡]true¡^¡A§_«h«K¦^À³¡]nil¡^¡C ¡± section.type.c.out¡]¾îÂ_­±©Ê½èªº¿é¥XÀɪ«¥ó¡^¡G ¡]1¡^ PATH Values¡G"~/c/section.out" ¡]2¡^ POSITIONS Values¡G (1 1) (2 1) (5 1) (7 1) (9 1) (11 1) ¡]3¡^ VALUES-REQUIRED Values¡G (CANTILEVER.BRIDGE bridge-section¡^¡B(CANTILEVER.BRDIGE section-width)¡B(CANTILEVER.BRDIGE bottom-slab-width)¡B(CANTILEVER.BRDIGE web-thickness)¡B(CANTILEVER.BRDIGE web-spacing) ¡]4¡^ PUT-TO-POSITION-&-VALUES-DESIGNATION Values¡G ¦¹¤èªk±Nvalues-designationªº­È±q¥~³¡µ{¦¡ªº¿é¥XÀÉ¥Hpositions³o­ÓÄݩʩҫüªº¦ì¸m¨ú¦^¡C

¡@3.5.4¡@³]­p°Ê§@¡]KSAR¡^¹B§@¹ê¨Ò

¡@¡@¦b¦¹Á|¥X«e­zªºsection.type.c.program³o­Ó­pºâ¾îÂ_­±©Ê½èµ{¦¡ªºKSAR§@¤¶²Ð¡A±Ô­z¦¹KSAR¬O¦p¦ó¹B§@¡G 1. ·í¾ô¼Ù¼e«×¡B¾ô¼Ù«Øºc¤èªk¡BÁaÂ_­±§Î¦¡¡]known-design-values³o­ÓÄݩʩҶñªº­È¡^¬°¤wª¾¡A¦Ó¾ô¼Ù¾îÂ_­±©Ê½è¡]unknown-design-values©Ò¶ñªº­È¡^¬°¥¼ª¾®É¡A«h¦¹section.type.c.program¤ºªº¤èªk¡]method¡^¡Gcan-be-executed-p«h¦^À³true¡A§_«h¦^À³nil¡C 2. ·ísection.type.c.program¤ºªº¤èªk¡]can-be-executed-p¡^¦^À³true®É¡A«hexecute.one.program³o­Óª¾ÃÑ·½¡]¨£¹Ï3-3©Ò¥Ü¡^±N³Q±Ò°Ê¡A¦bprogram¤U©Ò¦³ª«¥ó¤Z¬O²Å¦X¥ý¨M±ø¥ó(precondition)¡A³£·|³Q»¤µo¦¨¬°KSAR¡A¨Ã±N¥X²{¦b¶ÂªO¤W¡A§Y¬°run.section.type.c.program¡C«h¦¹®Éexecute.one.program©Ò©w¸qªºexecute-parameter-program¤èªk±N·|³QIJ°Ê¡C¦]¦¹¨Ò¤£¶·¿é¤JÀÉ¡A¬Gwrite-input-file-out³o­Ó¤èªk¨Ã¤£³QIJ°Ê¡C¨Ã°õ¦æpathÄݩʤº©Ò«ü©wªº¸ô®|¤¤ªºÀɮסG"~/c/sectionc"¡C 3. ¦Ó·í¥~³¡µ{¦¡ªº¿é¥XÀɲ£¥Í«á¡]¾ô¼Ù¼e«×¡B¸`¶ô¼e«×¡B©³ªO¼e«×¡B¸¡ªO¼e«×¤Î¸¡ªO¶¡¶Z¤wª¾¡A¦ý¥¼Åª¤Jª¾ÃÑ®wª«¥óªºÄÝ©ÊùØ¡^¡A«hrun.section.type.c.programª«¥ó«K±q¶ÂªO¤W¥h°£¡F¦¹®Écreate.segment.output.file.objª«¥ó«K¦boutput.filesªº¤lÃþ§Oegment.property.outª«¥ó¤U¨Ì©Ò±oªº¸`¶ô¼Æ«Ø¥X15²Õ¸`¶ô©Ê½èªº¹ê¨Ò¡A¦¹®É«K¬O»¤µo¤F15²ÕªºKSAR¡C¨C­ÓKSAR³Q¿ï¾Ü°õ¦æ®É«h¨äput-to-position-&-value-designation.designations³o­Ó¤èªk³£³Q°õ¦æ¡A¨Ã±N¿é¥XÀɪº­È¨ú¦^¨Ì¨C­ÓKSARªºÄݩʪºpositions©Ò«ü©wªº¦ì¸m¦s©ñ¦Ü¦U§Ovalues-designations©Ò«ü©wªº¼Ñ¡]slot¡^¤º¡C 4. ·ísection.type.c.program¤ºªºvalue-designations(slot¡^©Ò«ü©wªº­È¬Ò¶ñ¤J«á¡Aread.output.file.data¤ºªº¥ý¨M±ø¥ó«K¤£º¡¨¬¡A©Ò¥Hread.section.type.c.out.data«K±q¶ÂªO¤W¸õ¨«¡A¶i¦Ó°õ¦æ¤U¤@­Ó³]­p°Ê§@¡C

¡@
ºK­n¡@¥Ø¿ý¡@²Ä¤@³¹¡@²Ä¤G³¹¡@²Ä¥|³¹¡@²Ä¤­³¹¡@²Ä¤»³¹¡@°Ñ¦Ò¤åÄm

¦^§Úªº½×¤å ¡@