ã¬ã¬ã·ãŒCOBOLã·ã¹ãã ã¯ãéè¡ãä¿éºãå»çãæ¿åºæ©é¢ãªã©ã®ããã·ã§ã³ã¯ãªãã£ã«ã«ãªã€ã³ãã©ãæ¯ãç¶ããŠããŸãããããã®ã¢ããªã±ãŒã·ã§ã³ã¯é·å¹Žã®å®çžŸãèªããŸããããã°ãã°åé¡ãæ±ããŠããŸãã é ããèåŒ±æ§ æ·±å»ãªã»ãã¥ãªãã£ããã³éçšãªã¹ã¯ãããããè匱æ§ãäžã§ãæãèŠèœãšãããã¡ã§ãããªããã倧ããªåœ±é¿ãäžããã®ããããŒã¿ãåºå®ã¡ã¢ãªå²ãåœãŠã®å¢çãè¶ ããéã«çºçãããããã¡ãªãŒããŒãããŒãšã©ãŒã§ãã
çŸä»£ã®ããã°ã©ãã³ã°èšèªãšã¯ç°ãªããCOBOLã¯ã¡ã¢ãªã®å®å
šæ§ãèæ
®ããŠèšèšãããŠããŸããã§ããããã®å³æ ŒãªããŒã¿å®çŸ©ãåºå®é·ãã£ãŒã«ããžã®äŸåããããŠä»¥äžã®ãããªæ§é ã®äœ¿çšã¯ã MOVE, STRING, REDEFINES ãããã¯ãã¹ãŠãæå³ããªãäžæžãã«ã€ãªããå¯èœæ§ããããŸããç¹ã«ãè€æ°ã®ããŒã ã«ãã£ãŠæ°å幎ã«ããã£ãŠä¿å®ãããŠããåºå€§ãªã³ãŒãããŒã¹ã§ã¯ããããã®åé¡ããã¹ãã ãã§æ€åºããããšã¯å°é£ã§ãã
é ãããªãŒããŒãããŒãæããã«ãã
Smart TS XL ã¯ãCOBOL ã¢ããªã±ãŒã·ã§ã³ã«ããããµã€ã¬ã³ã ãããã¡ ãªãŒããŒãããŒãæ£ç¢ºãã€è¿ éã«æ€åºããã®ã«åœ¹ç«ã¡ãŸãã
ä»ããæ¢çŽ¢ããã³ã³ãã©ã€ã¢ã³ã¹ãã»ãã¥ãªãã£åŒ·åãã·ã¹ãã ã®ä¿¡é Œæ§ã«å¯ŸããéèŠã®é«ãŸãã«ãããããããè匱æ§ãç¹å®ããæé€ããããšãäžå¯æ¬ ã«ãªã£ãŠããŸããå€§èŠæš¡ãªã³ãŒãã¬ãã¥ãŒã§ã¯ãæäœæ¥ã«ããã³ãŒãã¬ãã¥ãŒã¯çŸå®çã§ã¯ãªãããšãå€ããçµç¹ã¯ããæ·±ãæŽå¯ãåŸãããã«èªååãããææ³ã«é ŒããããåŸãŸããã éçè§£æ é害ã䟵害ãçºçããåã«ãããã®åé¡ãçºèŠãã匷åãªææ®µãæäŸããŸãã
COBOLã«ããããããã¡ãªãŒããŒãããŒã®æ€åºã«ã¯ãç¹æ®ãªã¢ãããŒããå¿ èŠã§ããè€éãªããŒã¿æ§é ã®è§£æããã£ãŒã«ãã¬ãã«ã®ã¡ã¢ãªäœ¿çšã®ã»ãã³ãã£ã¯ã¹ã®çè§£ããããŠããã·ãŒãžã£ãã³ããŒããã¯ãããã«ã¯JCLã¹ã¯ãªããã«ãããããŒã¿ãããŒã®ãã¬ãŒã¹ãªã©ãå«ãŸããŸããçŸä»£ã®èšèªåãã«æ§ç¯ãããåŸæ¥ã®ããŒã«ã§ã¯ããã®åéã§ã¯äžååã§ãã
é©åãªæ¹æ³è«ãçšããããšã§ããããã¡ãªãŒããŒãããŒã®ãªã¹ã¯ãæ£ç¢ºã«ç¹å®ãã誀æ€ç¥ãåæžããã¬ã¬ã·ãŒã¢ããªã±ãŒã·ã§ã³ã®é·æçãªä¿å®æ§ãšå®å šæ§ãåäžãããããšãã§ããŸããæ§é åãããèªååãããã¢ãããŒããæ¡çšããããšãããããã®ã·ã¹ãã ãéèŠãªåœ¹å²ãå®å šãã€ç¢ºå®ã«æããç¶ããããã®éµãšãªããŸãã
COBOLã«ããããããã¡ãªãŒããŒãããŒã®çè§£
COBOLèšèªã¯é«æ°Žæºã§æ§é åãããŠãããšããè©å€ããããããã¡ãªãŒããŒãããŒã®åé¡ã¯ãã°ãã°èŠéããããã¡ã§ããããããåºå®é·ãã£ãŒã«ããåå®çŸ©ãããã¡ã¢ãªã»ã°ã¡ã³ãããããŠéå®çãªå®è¡æãã§ãã¯ã«äŸåããCOBOLã®ããŒã¿åŠçã¢ãã«ã¯ãæœåšçã«å±éºãªãªãŒããŒãããŒç¶æ ã«å¯ŸããŠè匱ã§ãããããã®ãªãŒããŒãããŒã¯ããµã€ã¬ã³ããªããŒã¿ç Žæãè«çãšã©ãŒããããŠææªã®å Žåãã·ã¹ãã é害ãããŒã¿æŽåæ§ã®äŸµå®³ã«ã€ãªããå¯èœæ§ããããŸãã
COBOLã¯çŽæ¥çãªã¡ã¢ãªã¢ã¯ã»ã¹ãæœè±¡åããŠããŸãããäžé©åãªããŒã¿ç§»åãæ€èšŒãããŠããªãæååæäœãå ±æã¡ã¢ãªã»ã°ã¡ã³ãã®èª€çšãªã©ã«ããã飿¥ãããã£ãŒã«ããäžæžããããå¯èœæ§ããããŸããããã¯ãããŒã¿ã®ä¿¡é Œæ§ã極ããŠéèŠã§ãé害ãäŸåã·ã¹ãã ã«é£éçã«åœ±é¿ãåãŒãå¯èœæ§ã®ããéèã·ã¹ãã ãå»çèšé²åŠçããããæåã®ã¡ã€ã³ãã¬ãŒã ã¯ãŒã¯ãããŒã«ãããŠç¹ã«å±éºã§ãããããã®ãªãŒããŒãããŒãã©ã®ããã«çºçããããçè§£ããããšã¯ãå®å šã§å®å®ããCOBOLã®ä¿å®ã«ãšã£ãŠäžå¯æ¬ ã§ãã
ãããã¡ãªãŒããŒãããŒãšã¯äœã§ãã?
ãããã¡ãªãŒããŒãããŒã¯ãã¡ã¢ãªãã£ãŒã«ãã«æžã蟌ãŸããããŒã¿ãå²ãåœãŠãããé åãè¶
ãã飿¥ããã¡ã¢ãªã«ããŒã¿ã溢ãããšãã«çºçããŸããCOBOLã§ã¯ãããã¯éåžžãæ¬¡ã®ãããªæäœã«ãã£ãŠçºçããŸãã MOVE, STRINGãŸã㯠UNSTRINGããŒã¿é·ã®äžäžèŽãããå Žåã§ãèŠåãåºãªãå¯èœæ§ããããŸãã
COBOLã«ã¯ãã€ã³ã¿æŒç®ãåçã¡ã¢ãªå²ãåœãŠæ©èœã¯ãããŸãããããã£ãŒã«ããµã€ãºãé©åã§ãªãã£ãããããŒã¿é·ã®æ³å®ãééã£ãŠããããããšããããã¡ãªãŒããŒãããŒãçºçããå¯èœæ§ããããŸãããã®åé¡ã¯ã倿°ãå³å¯ã«å®çŸ©ãããŠããèšèªèšèšã«ãã£ãŠæªåããããšããããããŸãã PIC å¥ã§ãããå®è¡äžã®é·ãã®å¢çã®åŒ·å¶ã¯æå°éã«æããããŸãã
äŸïŒ
01 CUSTOMER-NAME PIC X(10).
...
MOVE "JonathanSmith" TO CUSTOMER-NAME.
ãã®äŸã§ã¯ã CUSTOMER-NAME 10ãã€ããå²ãåœãŠãããŸãã13æåã®æååãç§»åããããšãããšã "JonathanSmith" ããŒã¿ã¯èªåçã«åãæšãŠããã "JonathanSm"ãšã©ãŒãçºçãããã«éèŠãª ID ããŒã¿ã倿Žããå¯èœæ§ããããŸãã
COBOLã«ãããäžè¬çãªãããã¡ãªãŒããŒãããŒã®ã·ããªãª
çããã£ãŒã«ããžç§»å:
ãã® MOVE ã¹ããŒãã¡ã³ãã¯ãæå³ããªããªãŒããŒãããŒã®æãäžè¬çãªåå ã®1ã€ã§ããCOBOLã§ã¯ãé·ãå€ãå°ããªãã£ãŒã«ãã«ç§»åããã®ãé²ãããšãã§ããªããããåãæšãŠãæå³ããªãäžæžããçºçããå¯èœæ§ããããŸãã
01 ACCOUNT-NUMBER PIC X(8).
01 INPUT-DATA PIC X(20).
...
MOVE INPUT-DATA TO ACCOUNT-NUMBER.
If INPUT-DATA 8æåãè¶
ããå Žåãè¶
éæåã¯èªåçã«åãæšãŠãããŸããç¹ã«è²¡åã·ã¹ãã ã顧客èšé²ã·ã¹ãã ã§ã¯ãæ
å ±ãäžå®å
šã«ãªã£ããã誀解ãæãå¯èœæ§ããããŸãã
STRING ãš UNSTRING ã®èª€çš:
é¢é£ããæ¥å STRING ã®äžèãš UNSTRING åºåãã£ãŒã«ãã®ãµã€ãºãåºåããé©åã§ãªãå Žåãè匱ã«ãªããŸããåºåãã£ãŒã«ããçãããå ŽåãããŒã¿ã飿¥ãããã£ãŒã«ãã«ãªãŒããŒãããŒããããäžé©åã«çµäºãããããå¯èœæ§ããããŸãã
01 FULL-NAME PIC X(15).
01 FIRST-NAME PIC X(10).
01 LAST-NAME PIC X(10).
...
STRING FIRST-NAME DELIMITED BY SPACE
LAST-NAME DELIMITED BY SIZE
INTO FULL-NAME.
åèšé·ãã FIRST-NAME ã®äžèãš LAST-NAME 15 æåãè¶
ãããšããªãŒããŒãããŒã«ããå§ã®äžéšãåãåãããããäžæ£ãªããŒã¿ãçæããããããŸãã
誀çšãåå®çŸ©ããŸã:
ãã® REDEFINES å¥ã¯ãç°ãªã倿°ãåãã¡ã¢ãªç©ºéãå
±æããããšãå¯èœã«ããŸãããããã£ãŒã«ãããªãŒããŒãã£ã«ããããšãã¡ã¢ãªã¬ã€ã¢ãŠããå
±æããå¥ã®å€æ°ã®ããŒã¿ãç Žæããå¯èœæ§ããããŸãã
01 PAYMENT-RECORD.
05 PAYMENT-TYPE PIC X(1).
05 PAYMENT-AMOUNT REDEFINES PAYMENT-TYPE
PIC 9(6)V99.
...
MOVE 1234.56 TO PAYMENT-AMOUNT.
ãã®å Žåã䜿çšãããã¡ã¢ãªé å㯠PAYMENT-TYPE ãšå
±æãããŠããŸã PAYMENT-AMOUNTãã«ããã€ãæ°å€ãæžã蟌ã PAYMENT-AMOUNT å
ã®æåãäžæžãããŸã PAYMENT-TYPE.
äžä»ãæåãšã©ãŒãçºçããŸã:
COBOLã®é
åã€ã³ããã¯ã¹ã§ã¯ãããã©ã«ãã§ã¯å¢çãã§ãã¯ã匷å¶ãããŸããã宣èšãããã€ã³ããã¯ã¹ç¯å²å€ã®èŠçŽ ãåç
§ãããšãã¡ã¢ãªäžã®æ¬æ¥èªã¿æžããããã¹ãã§ãªãå Žæã§èªã¿æžããè¡ãããå¯èœæ§ããããŸãã
01 TRANSACTIONS.
05 TRANSACTION OCCURS 10 TIMES
PIC 9(5).
...
MOVE 10000 TO TRANSACTION(11).
ãã®æã¯ã10èŠçŽ ã®é åå¢çãè¶ ããèŠçŽ ã«æžã蟌ã¿ãŸããã¡ã¢ãªã¬ã€ã¢ãŠãã«ãã£ãŠã¯ãç¡é¢ä¿ãªããŒã¿ãç Žæããããå®è¡æã«äžå®å®ãªç¶æ ã«ãªã£ããããå¯èœæ§ããããŸãã
ã¬ã¬ã·ãŒã·ã¹ãã ã«ããããããã¡ãªãŒããŒãããŒãéèŠãªçç±
çŸåšã䜿çšãããŠããå€ãã®COBOLã·ã¹ãã ã¯ãæ©å¯æ§ã®é«ã財åããŒã¿ã®åŠçãèŠå¶å ±åãå»çèšé²ã®ç®¡çãªã©ã«å©çšãããŠããŸããããããç°å¢ã§ã¯ããã£ã1ã€ã®ãããã¡ãªãŒããŒãããŒã§ããããŒã¿ãããå šäœã®æŽåæ§ãæãªãããããèšç®ãšã©ãŒãçºçããããäžæµã®ã·ã¹ãã ã«é£éçãªé害ãåŒãèµ·ããããããå¯èœæ§ããããŸããCOBOLã«ã¯ææ°ã®ã©ã³ã¿ã€ã ä¿è·æ©èœããªãããããããã®ãšã©ãŒã¯å®ç€ŸäŒã«åœ±é¿ãäžãããŸã§æ€åºãããªãããšããããããŸãã
èŠå¶å¯Ÿè±¡åéã§ã¯ããããã¡ãªãŒããŒãããŒã¯ã³ã³ãã©ã€ã¢ã³ã¹éåãã»ãã¥ãªãã£ç£æ»ã®äžåæ ŒããããŠè©å€ã®äœäžã«ã€ãªããå¯èœæ§ããããŸããã¯ã©ãã·ã¥ãããäŸå€ãã¹ããŒãããããå¯èœæ§ã®ããçŸä»£ã®ãœãããŠã§ã¢ãšã¯ç°ãªããCOBOLããã°ã©ã ã¯ç ŽæããããŒã¿ã®ãŸãŸå®è¡ãç¶ç¶ããããšããããããŸãããã®ããããªãŒããŒãããŒãªã¹ã¯ã®ããã¢ã¯ãã£ããªæ€åºãšä¿®åŸ©ã¯ããã¹ããã©ã¯ãã£ã¹ã§ããã ãã§ãªããé·æçãªéçšã®å®å šæ§ã確ä¿ããããã«äžå¯æ¬ ã§ãã
ãããããªã¹ã¯ã軜æžããã«ã¯ããªã¹ã¯ãã©ã®ããã«ãã©ãã§çºçããããèªèããããšããå§ãŸããŸãã COBOLã³ãŒãã®éçè§£æ ããã¯ãæ¬çªç°å¢ã§æå®³ãçºçããåã«ãã®ãããªåé¡ãæ€åºã§ãããã¹ã±ãŒã©ãã«ãã€éäŸµå ¥çãªæ°å°ãªãæ¹æ³ã® 1 ã€ã§ãã
COBOLã®éçè§£æå ¥é
éçè§£æãšã¯ããœãŒã¹ã³ãŒããå®è¡ããã«æ€èšŒããææ³ã§ããããããžã§ããã¡ã€ã³ãã¬ãŒã ç°å¢ã§å®è¡ãããããšãå€ãã芳枬æ§ãéãããŠããCOBOLã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãéçè§£æã¯é ããè匱æ§ãçºèŠããããã®å®å šãã€ã¹ã±ãŒã©ãã«ãªææ®µãšãªããŸããããã«ãããçµç¹ã¯éçºãµã€ã¯ã«ãä¿å®ãµã€ã¯ã«ã®æ©ã段éã§ããããã¡ãªãŒããŒãããŒããããã³ãŒããããŒã¿ç Žæãã¹ãæ€åºã§ããŸãã
COBOLã·ã¹ãã ã¯æ°çŸäžè¡ã«åã¶ã³ãŒããæ°å幎ã«ãããããžãã¹ããžãã¯ããããŠå€éšã®ã³ããŒããã¯ãJCLãã¡ã€ã«ãããŒã¿å®çŸ©ã«äŸåããå ŽåããããŸãããã®ãããªç¶æ³ã§ã®æåã¬ãã¥ãŒã¯æéããããããšã©ãŒãçºçãããããªããŸãã éçè§£æããŒã« ã³ãŒãããŒã¹ãè§£æãããã®æ§é ã®æå³ãçè§£ããããã°ã©ã ãå®è¡ããããšãªãããŒã¿ãããŒãå¶åŸ¡ããžãã¯ãã¡ã¢ãªã¬ã€ã¢ãŠãããã¬ãŒã¹ããŸããããã¯ãã·ã¹ãã ãäžæã§ããªãå Žåããæ¬çªç°å¢ã®ãã¹ãç°å¢ãåçŸããããšãé£ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
éçã³ãŒãåæãšã¯äœã§ãã?
éçè§£æã§ã¯ãå®è¡åã®ãœãŒã¹ã³ãŒãã®ç¶æ ãè©äŸ¡ããè«çãšã©ãŒãã»ãã¥ãªãã£ãªã¹ã¯ãæ§é äžã®æ¬ é¥ãæ€åºããŸãããã¹ãã±ãŒã¹ãå«ãã³ãŒãã®å®è¡ãå¿ èŠãšããåçãã¹ããšã¯ç°ãªããéçè§£æã¯ã³ãŒãããŒã¹ã«çŽæ¥é©çšã§ãããããå®è¡ãã¹ã«é¢ä¿ãªãæœåšçãªåé¡ã«é¢ããæŽå¯ãåŸãããŸãã
COBOLã«ãããéçè§£æã¯ãããŒã¿ãã£ãŒã«ãã®èª€çšãäžé©åãªã¡ã¢ãªå ±æãç¡å¶éã®ããŒã¿ç§»åãå®å šã§ãªãæååæäœã®ç¹å®ã«éç¹ã眮ããŠããŸãããŸãã ããŒã¿ã®äŸåé¢ä¿ãæ€åºãã ã³ããŒããã¯ãããã°ã©ã ãããã«ã¯ãµãã·ã¹ãã éã®ãã£ãŒã«ãé¢ä¿ã
äž»ãªã¡ãªããïŒ
- ã³ãŒãã£ã³ã°ã®æ¬ é¥ãæ¬çªç°å¢ã«å°éããåã«æ©æã«æ€åº
- ã©ã³ã¿ã€ã ã·ã¹ãã ã«åœ±é¿ãäžããã«ã¢ããªã±ãŒã·ã§ã³å šäœãã¹ãã£ã³ããæ©èœ
- ç£æ»ãææžåãã³ã³ãã©ã€ã¢ã³ã¹ã®ããã®ãã¬ãŒãµããªãã£
- ã¡ã³ããã³ã¹ãµã€ã¯ã«äžã®ç¹°ãè¿ãå¯èœãªã³ãŒããã«ã¹ãã§ãã¯ã®èªåå
COBOLç¹æã®éçè§£æã®èª²é¡
éçåæã¯çŸä»£ã®ããã°ã©ãã³ã°èšèªã§ã¯äžè¬çã§ãããCOBOL ã§ã¯ãã¬ã¬ã·ãŒèšèšãæç¶ãåæ§é ãããªããã»ããµ ãã£ã¬ã¯ãã£ããžã®äŸåã«ãããç¬ç¹ã®èª²é¡ãçããŸãã
1. æ¹èšã®å€æ§æ§
COBOLã«ã¯ãIBM Enterprise COBOLãMicro Focus COBOLãRM/COBOLãªã©ãå€ãã®æ¹èšãååšããŸãããããã®æ¹èšã¯ãæ§ææ¡åŒµãã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãåäœãããããç°ãªããŸãã广çãªåæããŒã«ã¯ããããã®éããçè§£ããé©å¿ããå¿
èŠããããŸãã
2. ã³ããŒããã¯ã®äœ¿çšãšJCLçµ±å
COBOLããã°ã©ã ã¯èªå·±å®çµçãªãã¡ã€ã«ãšããŠååšããå Žåãã»ãšãã©ãããŸãããããã°ã©ã éã§åå©çšãããããŒã¿æ§é ãå®çŸ©ãããã€ã³ã¯ã«ãŒããããã³ããŒããã¯ã«äŸåããŠããŸãããããã®å€éšãã¡ã€ã«ã¯ãè§£ææã«å®å
šã«è§£æ±ºãããå¿
èŠããããŸããããã«ãããã°ã©ã ã¯JCLã¹ã¯ãªãããã¡ã€ã³ãã¬ãŒã ã®ã©ã³ã¿ã€ã æ§æã«çµã³ä»ããããå Žåããããç¶æ³ã«å¿ããè€éããå ãããŸãã
3. è€éãªããŒã¿å®çŸ©ãšåå®çŸ©
éçè§£æã§ã¯ã倿°ãã¡ã¢ãªå
ã§ã©ã®ããã«çžäºäœçšããããè§£éããå¿
èŠããããç¹ã«ã REDEFINES, OCCURSãéå±€çãªã°ã«ãŒããã£ãŒã«ããªã©ã§ãããããã®é¢ä¿ã誀ã£ãŠè§£éãããšããªãŒããŒãããŒæ€åºãäžæ£ç¢ºã«ãªã£ããã誀æ€ç¥ãçºçãããããå¯èœæ§ããããŸãã
4. æç€ºçãªåæå®ã®å¶éãšå¶åŸ¡ãããŒã®æç¢ºã
COBOLã¯åŒ·ãåä»ãããªããæé»çãªå¶åŸ¡ãããŒã䜿çšããããšãå€ããããæ·±ãæå³è§£æãªãã§ã¯å€æ°ã®å¢çãå®è¡ãã¹ã決å®ããããšãå°é£ã§ãããã¹ãããã PERFORM, GO TO, THRU ã¹ããŒãã¡ã³ãã«ãã£ãŠè«çåå²ããããã«ãããªãå ŽåããããŸãã
5. åã蟌ã¿SQLãŸãã¯CICS/IMSåŒã³åºã
å€ãã®COBOLããã°ã©ã ã¯SQLãåã蟌ãã ããæ¬¡ã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã·ã¹ãã ã䜿çšããŸãã CICS IMS ãªã©ã§ãããããã¯å€éšäŸåé¢ä¿ãšå¯äœçšããããããéçã¢ãã©ã€ã¶ãŒã¯ããããã·ãã¥ã¬ãŒããããå®å
šã«æœè±¡åããå¿
èŠããããŸãã
è€éãªå€æ°ã®éè€ã®äŸ:
01 EMPLOYEE-RECORD.
05 EMP-ID PIC 9(5).
05 EMP-NAME PIC X(20).
05 EMP-DATA REDEFINES EMP-NAME.
10 EMP-FIRST PIC X(10).
10 EMP-LAST PIC X(10).
ãã®æ§é ã§ã¯ããã£ãŒã«ãã®é·ãã EMP-NAME å
¥åãããšãäžéšãäžæžããããå¯èœæ§ããããŸã EMP-LAST ããŒã¿å¢çãå°éãããŠããªãå Žåãåªããéçè§£æããŒã«ã¯ããªãŒããŒãããŒã®ãªã¹ã¯ãæ€åºããããã«ããããã®åå®çŸ©ããããã£ãŒã«ãéã®ã¡ã¢ãªé¢ä¿ãçè§£ããå¿
èŠããããŸãã
COBOLç¹æã®è€éããçè§£ããããšã¯ãéçè§£æãæ£ããèšå®ããè§£éããããã«äžå¯æ¬ ã§ããé©åã«èšå®ããã°ãé ãããªãŒããŒãããŒãæããã«ããã¬ã¬ã·ãŒã³ãŒãããŒã¹ã®ä¿¡é Œæ§ãšã»ãã¥ãªãã£ãåäžããã匷åãªææ®µãšãªããŸãã
Smart TS XLã䜿çšããŠCOBOLã®ãããã¡ãªãŒããŒãããŒãæ€åºãã
å€§èŠæš¡COBOLã·ã¹ãã ã«ã¯ãèšèªæ§é ãã¡ã¢ãªã¢ãã«ãå®è¡ç°å¢ãæ±ãããã«ç¹å¥ã«æ§ç¯ãããåæããŒã«ãå¿ èŠã§ãããã®ãããªç¶æ³ã«ããããããã¡ãªãŒããŒãããŒã®æ€åºã«ã¯ãåçŽãªãã¿ãŒã³ãããã³ã°ä»¥äžã®ãã®ãå¿ èŠã§ããã¡ã€ã³ãã¬ãŒã æ¹èšã®è§£æãéå±€çãªããŒã¿å®çŸ©ã®è§£éãã³ããŒããã¯ãJCLãªã©ã®å€éšäŸåé¢ä¿ã®è§£æ±ºããããŠåå®çŸ©ãé åæ§é ãä»ããããŒã¿ãããŒã®ã¢ãã«åãªã©ãããŸããŸãªæ©èœãåãããšã³ãžã³ãå¿ èŠã§ããSmart TS XLã¯ãŸãã«ããããããŒãºã念é ã«çœ®ããŠæ§ç¯ãããŠãããCOBOLã¢ããªã±ãŒã·ã§ã³ã®ãªãŒããŒãããŒè匱æ§ã®æ€åºã«æé©ã§ãã
ãã®ãã©ãããã©ãŒã ã¯ãæ§æãã§ãã¯ã«ãšã©ãŸããŸãããã»ãã³ãã£ãã¯è§£æãã¡ã¢ãªå¢çã®çè§£ãã¢ããªã±ãŒã·ã§ã³å šäœã«ãããããŒã¿ã€ã³ã¿ã©ã¯ã·ã§ã³ã®ãããã³ã°ãªã©ãè¡ããŸããããã«ããããã¹ããæåã¬ãã¥ãŒã§ã¯èŠéãããŠããŸãå¯èœæ§ã®ããå±éºãªãªãŒããŒãããŒãçºèŠããã®ã«åœ¹ç«ã¡ãŸããããŒã¿ã®æŽåæ§ãšãã¬ãŒãµããªãã£ãå¿ é ãšãªãèŠå¶ç£æ¥ã«ãããŠããã®åœ¹å²ã¯ç¹ã«éèŠã«ãªããŸãã
Smart TS XLã®æŠèŠ
Smart TS XLã¯ãCOBOLãPL/IãJCLãšãã£ãã¬ã¬ã·ãŒããã°ã©ãã³ã°èšèªã®éçè§£ææ©èœãæäŸããããã«èšèšãããŠããŸãããã©ã³ã¶ã¯ã·ã§ã³ããã»ããµãããŒã¿ããŒã¹ã¢ã¯ã»ã¹å±€ãè€éãªãžã§ãå¶åŸ¡ãããŒãªã©ãã¡ã€ã³ãã¬ãŒã ã·ã¹ãã ã®ãã¥ã¢ã³ã¹ãçè§£ããããã«èšèšãããŠããŸãã
äž»ãªç¹åŸŽã¯æ¬¡ã®ãšããã§ãã
- COBOLã³ããŒããã¯ããã¹ããããããŒã¿æ§é ãREDEFINESã®å®å šãªè§£æãµããŒã
- ããŒã¿ã®ç§»åãå¯å€ãµã€ãºãå¶åŸ¡ããžãã¯ã®ã»ãã³ãã£ãã¯ã¢ããªã³ã°
- æ°çŸäžè¡ãåŠçã§ããå€§èŠæš¡ãªèªåã³ãŒãããŒã¹åã蟌ã¿
- ã¡ã¿ããŒã¿ãªããžããªãDevOpsããŒã«ãã§ãŒã³ãã«ã¹ã¿ã ã¬ããŒãã¬ã€ã€ãŒãšã®çµ±å
ãã£ãŒã«ãã¬ãã«ã®ã¡ã¢ãªäœ¿çšãã¢ãã«åããããŒã¿ã®ç§»åãã·ãã¥ã¬ãŒãããæ©èœã«ããããããã¡ãªãŒããŒãããŒãçºçããå¯èœæ§ã®ããå Žæãæ£ç¢ºã«æ€åºã§ããŸãã
ãããã¡ãªãŒããŒãããŒæ€åºã®äž»ãªæ©èœ
Smart TS XLã¯ãCOBOLã«ãããŠãªãŒããŒãããŒãçºçããããç¹å®ã®æ§é ã«çŠç¹ãåœãŠãŠããŸããå ·äœçã«ã¯ä»¥äžã®ãšããã§ãã
- äžäžèŽãªãã£ãŒã«ãé·éã®MOVEæäœ
- STRING ãš UNSTRING ãäžååãªãµã€ãºã®ã¿ãŒã²ããã«æ¿å ¥ãã
- åå®çŸ©ãªãŒããŒã¬ã€ã§ã¯ãããããŒã¿æ§é ãå¥ã®ããŒã¿æ§é ã®å¢çãè¶ ããŠæžã蟌ãŸããã
- ç¯å²å€ã®æ·»åã§ã¢ã¯ã»ã¹ãããã€ã³ããã¯ã¹ä»ã OCCURS ããŒãã«
äŸ â MOVEäžäžèŽæ€åº:
01 PRODUCT-NAME PIC X(12).
01 INPUT-FIELD PIC X(30).
...
MOVE INPUT-FIELD TO PRODUCT-NAME.
åæãšã³ãžã³ã¯ãã®è¡ã«ãã©ã°ãç«ãŠãŸãããœãŒã¹ãã£ãŒã«ããã¿ãŒã²ãããã£ãŒã«ããããå€§å¹ ã«å€§ãããåãæšãŠé²æ¢çãäºåæ€èšŒããžãã¯ããªãããã飿¥ãããã£ãŒã«ããäžæžãããå¯èœæ§ã®ããæœåšçãªãµã€ã¬ã³ããªãŒããŒãããŒãšããŠèªèãããŸãã
Smart TS XL ã¯ã段èœãããã°ã©ã éã®è€æ°ã®ç§»åãéããŠããŒã¿ãã©ã®ããã«æµãããã远跡ããå ¥åå€ããªã¹ã¯ ãã€ã³ãã«ã©ã®ããã«äŒæãããã®å®å šãªããããæ§ç¯ããããšãã§ããŸãã
Smart TS XLãéçè§£æã«ã©ã®ããã«åœ¹ç«ã€ã
ãã®ããŒã«ã¯ãCOBOLã³ãŒãããŒã¹ã®æœè±¡ã¢ãã«ãæ§ç¯ãããã¹ãŠã®ã€ã³ã¯ã«ãŒããåå®çŸ©ãå¶åŸ¡è»¢éã解決ããŸãããã£ãŒã«ããµã€ãºã倿°ã®ã¹ã³ãŒããå ±æã¡ã¢ãªã»ã°ã¡ã³ããå«ãçµ±åããŒã¿ãã£ã¯ã·ã§ããªãäœæããããŒã¿ã®æäœãšç§»åæ¹æ³ãè§£æããŸãã
ãªãŒããŒãããŒæ€åºã«é¢é£ããæ©èœã¯æ¬¡ã®ãšããã§ãã
- ããã°ã©ã éã®ããŒã¿è¿œè·¡ïŒäŸïŒå ¥åããæçµäœ¿çšãŸã§ã®ãã£ãŒã«ãã®è¿œè·¡ïŒ
- ãã£ãŒã«ãã®é 眮ãšãµã€ãºã®åŒ·å¶ããžãã¯
- ãªãŒããŒãããŒãã€ã³ãã«ã€ãªããããŒã¿ãããŒãã¹ã®èŠèŠçãªãããã³ã°
- COBOLæ¹èšã®ããªãšãŒã·ã§ã³ãšå®è¡æãªãã·ã§ã³ãèæ ®ããã³ã³ããã¹ãèªèè§£æ
ãã®ã¢ããªã³ã°ã«ãããããŒã«ã¯æãããªé·ãã®äžäžèŽãæ€åºã§ããã ãã§ãªããè€éãªã¡ã¢ãªã®åå©çšã鿥çãªå²ãåœãŠãã¿ãŒã³ãå«ããšããžã±ãŒã¹ããã£ããã§ããŸãã
Smart TS XLã䜿çšããå©ç¹
COBOLã®éçè§£æã§ã¯ãæ·±ãã粟床ãèŠæš¡ã®ãã©ã³ã¹ãéèŠã§ããSmart TS XLã¯ãããã3ã€ã®èŠçŽ ããã¹ãŠæºãããŸãã
- åæã®ããã«ã¬ã¬ã·ãŒã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããã倿ãããããå¿ èŠã¯ãªã
- COBOLç¹æã®æ§æãšããŒã¿ã»ãã³ãã£ã¯ã¹ãé«ãå¿ å®åºŠã§èªè
- å®çšçãªãªãŒããŒãããŒãªã¹ã¯ã®ã¿ã匷調衚瀺ããããã«èšå®ããŠããã€ãºãåæžã§ããŸãã
- ã³ã³ãã©ã€ã¢ã³ã¹ããŒã ãéçºããŒã åãã«è¿œè·¡å¯èœã§ç£æ»å¯èœãªã¬ããŒããäœæããŸã
ããŒã¿ãšã©ãŒã財åäžã®äžäžèŽãèŠå¶éåã顧客察å¿ã®å€±æã«ã€ãªããå¯èœæ§ãããç°å¢ã«ãããŠããã®æçšæ§ãå®èšŒãããŠããŸãã粟床ãšã¬ã¬ã·ãŒã·ã¹ãã ãšã®äºææ§ã«éç¹ã眮ãããšã§ããã®ãã©ãããã©ãŒã ã¯åŸ¹åºçãã€å®çšçãªãªãŒããŒãããŒæ€åºãå®çŸããŸãã
Smart TS XLã䜿ãå§ãã
ãããã€ã¡ã³ãã«ã¯ã以äžãå«ãå®å šãª COBOL ã¢ããªã±ãŒã·ã§ã³ç°å¢ã®ã¹ãã£ã³ãå«ãŸããŸãã
- ãœãŒã¹ã³ãŒãïŒããã°ã©ã ãã³ããŒããã¯ïŒ
- JCLãã¡ã€ã«ãšé¢é£ããæ§æ
- æ¹èšè§£éã®ããã®ç°å¢åºæã®ããžãã¯
åã蟌ãã åŸã¯ããã©ãããã©ãŒã ã䜿çšããŠãããŒã ã¯ã«ã¹ã¿ã ã«ãŒã«ãå®çŸ©ãããªã¹ã¯ã®çš®é¡ã«åªå é äœãä»ããè¡ã¬ãã«ã®åé¡ãå¶åŸ¡ãããŒå³ããªã¹ã¯ã®æŠèŠãå«ã詳现ãªåºåãçæã§ããŸãã
åæèšå®ã«ã¯ãæ¢åã®éçºãã€ãã©ã€ã³ãQAã·ã¹ãã ãšã®çµ±åãå«ãŸããå ŽåããããŸããæåã®ã¹ãã£ã³åŸãçµç¹ã¯ç¶ç¶çãªåæãã¹ã±ãžã¥ãŒã«ããããçµæã倿Žç®¡çããã»ã¹ã«çµ±åãããããããšãã§ããŸãã
Smart TS XL ã®èšèšã¯ãããŠã³ã¿ã€ã ãèš±ãããããããã¡ ãªãŒããŒãããŒãªã©ã®é ããåé¡ãæ€åºããããšãå®éã®éçšäžã®äŸ¡å€ãæã€ãå®çšŒåã¬ãã«ã®ã·ã¹ãã ã«åãããŠèª¿æŽãããŠããŸãã
ãããã¡ãªãŒããŒãããŒãæ€åºããããã®ã¹ããããã€ã¹ãããã®ããã»ã¹
COBOLã«ããããããã¡ãªãŒããŒãããŒã®æ€åºã®ããã®éçè§£æã«ã¯ãæ§é åãããå埩å¯èœãªã¯ãŒã¯ãããŒãå¿ èŠã§ããã¬ã¬ã·ãŒã·ã¹ãã ã¯ãå¯çµåããã¢ãžã¥ãŒã«ãåã蟌ã¿ã³ããŒããã¯ãå ±æã¡ã¢ãªå®çŸ©ããããŠæ°å幎ã«ããããªããžã§ã³ã«ãããããžãã¹ããžãã¯ã§æ§æãããããšããããããŸããã¬ã€ãä»ãã®ããã»ã¹ããªããã°ãåªããè§£æããŒã«ã§ãã£ãŠãäžå®å šãªçµæã誀解ãæãçµæããåŸãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãçµç¹ããããã¡ãªãŒããŒãããŒã®ãªã¹ã¯ãæ£ç¢ºãã€å¹ççã«æ€åºããããã«æŽ»çšã§ããå®çšçãªææ³ã«ã€ããŠæŠèª¬ããŸãã
ç®æšã¯ãã³ãŒãããŒã¹å šäœãã¹ãã£ã³ããããŒã¿ã®æµããã¢ãã«åãããã£ãŒã«ããµã€ãºã®äžäžèŽç®æãæ€åºãããªãŒããŒãããŒãåŒãèµ·ããå¯èœæ§ã®ããæäœãæããã«ããããšã§ããåã¹ãããã¯åã®ã¹ãããã«åºã¥ããŠæ§ç¯ããããã£ãŒã«ãã¬ãã«ã®æŽå¯ãå®å šãªããã°ã©ã ã³ã³ããã¹ãã«åºã¥ããŠããããšãä¿èšŒããŸãã
ã¹ããã1 â ãœãŒã¹ã³ãŒãã®æºå
广çãªåæãè¡ãããã®ç¬¬äžã®èŠä»¶ã¯ãé¢é£ãããã¹ãŠã®ãœãŒã¹è³æãåéããããšã§ããããã«ã¯ãCOBOLããã°ã©ã ã ãã§ãªããã³ããŒããã¯ããžã§ãå¶åŸ¡èšèªïŒJCLïŒã¹ã¯ãªãããç°å¢åºæã®ãã¯ããèšå®ãã¡ã€ã«ãå«ãŸããŸããã³ããŒããã¯ã1ã€ã§ãäžè¶³ããŠãããšãããŒã¿å®çŸ©ã®æ§é ãæªãã§ããŸããåæäžã«èª€ã£ãçµè«ã«è³ãå¯èœæ§ããããŸãã
ãã¡ã€ã«ãäžè²«æ§ã®ããã¢ã¯ã»ã¹å¯èœãªæ§é ã«æŽçããŸãã
- 1ã€ã®ãã£ã¬ã¯ããªå ã®ããã°ã©ã
- æç¢ºã«åç §ããããµããã£ã¬ã¯ããªå ã®ã³ããŒããã¯
- å®è¡ãããŒå¥ã«ã°ã«ãŒãåããã JCL ããã³æ§æã¹ã¯ãªãã
ç°å¢åºæã®å€æ°ã解決ããå¿ èŠã«å¿ããŠãã¡ã€ã«éå±€ããã©ããåããŸããåæããŒã«ã¯ã倿°ã®æåãšåããæ£ç¢ºã«ã¢ãã«åããããã«ãåããã°ã©ã ãŠãããã®å®å šãã€éåãã®ãªããã¥ãŒãå¿ èŠãšããŸãã
ã¹ããã2 â éçã¢ãã©ã€ã¶ãŒãæ§æãã
ãœãŒã¹ãã¢ã»ã³ãã«ãããããæ¬¡ã®ã¹ãããã¯ç°å¢ã«åãããŠã¢ãã©ã€ã¶ãŒãèšå®ããããšã§ããCOBOLã«ã¯å€ãã®æ¹èšããããééã£ãæ¹èšãéžæãããšãè§£æçµæãäžæ£ç¢ºã«ãªã£ããããªã¹ã¯ãèŠèœãšãããããå¯èœæ§ããããŸãã
æ¬¡ã®æ§æãèšå®ããŸãã
- COBOLæ¹èšïŒäŸïŒIBM Enterprise COBOLïŒ
- è¡åœ¢åŒïŒåºå®ãŸãã¯èªç±ïŒ
- ã³ããŒããã¯ã®ã€ã³ã¯ã«ãŒããã¹
- ããªããã»ããµãã£ã¬ã¯ãã£ãïŒæ¡ä»¶ä»ãã³ã³ãã€ã«ããžãã¯çšïŒ
ã¡ã¢ãªã¢ããªã³ã°ã®èšå®ãéèŠã§ããäŸãã°ãæ°å€ãã£ãŒã«ãã®ãµã€ãºãåãæšãŠãããå Žåã«èŠåãçºãããã©ããããŸãREDEFINESã»ã°ã¡ã³ããåæããžãã¯ã«ãããŠçžäºã«æä»çãéè€ãã倿ãããã©ãããªã©ã決å®ããŸãã
ã¹ããã3 â ãªãŒããŒãããŒæ€åºã«ãŒã«ãäœæãŸãã¯æå¹åãã
ã»ãšãã©ã®ã¢ãã©ã€ã¶ãŒã«ã¯ãªãŒããŒãããŒãæ€åºããããã®ããã©ã«ãã®ã«ãŒã«ãä»å±ããŠããŸãããCOBOLç°å¢ã§ã¯ã«ã¹ã¿ãã€ãºãå¿ èŠã«ãªãããšããããããŸããã¢ããªã±ãŒã·ã§ã³ã§ãã䜿çšãããæŒç®ãæ§é ã®çš®é¡ã«åãããŠã«ãŒã«ãã«ã¹ã¿ãã€ãºããŠãã ããã
ã¿ãŒã²ãããšãããªã¹ã¯ã®é«ããã¿ãŒã³ã®äŸ:
- é·ãè±æ°åãã£ãŒã«ãããçããã£ãŒã«ããžç§»åãã
- ç¡å¶éã®ãŠãŒã¶ãŒå ¥åãçµã¿åãããSTRINGæŒç®
- ãã£ãŒã«ããµã€ãºå¶éãè¶ããåå®çŸ©
- ã€ã³ããã¯ã¹ç¯å²ã®æ€èšŒãªãã§ã¢ã¯ã»ã¹ããã OCCURS é å
ã«ãŒã«ããžãã¯ã®äŸ:
æ€åºæ MOVE ãœãŒã¹ãã£ãŒã«ãã«ã¯ PIC X(30) ãŸãã¯ãã以äžã®å€§ããã§ãã¿ãŒã²ããã«ã¯ PIC X(10) ãŸãã¯ãã以äžãäžéã®åãæšãŠããžãã¯ãèŠã€ãããªãå ŽåãããŒã«ã¯ããããã©ã°ä»ãããã INSPECT or IF LENGTH OF ãã§ãã¯ã
ã¹ããã4 â åæãå®è¡ããŠçµæã確èªãã
ã«ãŒã«ãèšå®ããããã³ãŒãããŒã¹å šäœãã¹ãã£ã³ããŸããããŒã«ã¯ãçš®é¡ãé倧床ãå Žæå¥ã«åé¡ãããèŠåãŸãã¯æ€åºçµæã®ãªã¹ããçæããŸãã
ã¬ãã¥ãŒã§ã¯ãããžãã¹ãžã®åœ±é¿ãšæªçšå¯èœæ§ã«åºã¥ããŠãçºèŠäºé ã«åªå é äœãä»ããŸããäŸ:
- å£åº§çªå·ãã£ãŒã«ãã®ãªãŒããŒãããŒã¯é¡§å®¢èå¥ã«åœ±é¿ããå¯èœæ§ããããŸã
- ã·ã¹ãã å¶åŸ¡ãã£ãŒã«ãã®ãªãŒããŒãããŒã«ããããããžã§ãã倱æããå¯èœæ§ããããŸã
- ã¬ããŒãçæã¢ãžã¥ãŒã«ã®åé¡ã¯ãåºåã®ã¿ã®å Žåã¯ãªã¹ã¯ãäœããªãå¯èœæ§ãããã
äœãªã¹ã¯ã®èŠåã¯ãããã«ã¯ç®ã«èŠããªãåœ¢ã§æªåããå¯èœæ§ããããããå®å šã«ç¡èŠããããšã¯é¿ããŠãã ããã
ã¹ããã5 â å ±åãšä¿®åŸ©
åé¡ãããªã¢ãŒãžããåŸãéçºããŒã ãç£æ»ããŒã ã«é©ãã圢åŒã§èª¿æ»çµæããšã¯ã¹ããŒãããŸããã¬ããŒãã«ã¯ä»¥äžã®å 容ãå«ããå¿ èŠããããŸãã
- ããã°ã©ã åãšè¡çªå·
- ãªãŒããŒãããŒãŸãã¯äžäžèŽã®çš®é¡
- ææ¡ãããä¿®æ£ãŸãã¯åç §ããžãã¯ãã¿ãŒã³
- 該åœããå Žåã®çžäºåç §ããŒã¿ãããŒ
修埩ã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
- 察象åéã®æ¡å€§
- åãæšãŠãã§ãã¯ã®å°å ¥
- REDEFINESã¬ã€ã¢ãŠãã®åç·šæ
- MOVE ãŸã㯠STRING æäœã®åã«é·ãã®æ€èšŒã远å ãã
ãã¬ãŒãµããªãã£ãšã¬ããã³ã¹ãç¶æããããã«ãããŒãžã§ã³ç®¡çã¯ãŒã¯ãããŒãŸãã¯å€æŽèŠæ±ã·ã¹ãã ã«ä¿®åŸ©æé ãçµ±åããŸããå¯èœã§ããã°ãæŽæ°åŸã«éçè§£æãåå®è¡ããåé¡ãå®å šã«è§£æ±ºãããæ°ããªãªã¹ã¯ãçºçããŠããªãããšã確èªããŠãã ããã
ãã®ããã»ã¹ã宿çãªã¡ã³ããã³ã¹ ãµã€ã¯ã«ã«çµã¿èŸŒããšãåŸæ¥ã® COBOL ã·ã¹ãã ã®ã»ãã¥ãªãã£ãšç£æ»å¯èœæ§ãç¶æããããªãŒããŒãããŒã«ãããµã€ã¬ã³ã ããŒã¿ç Žæã«å¯Ÿããèæ§ã確ä¿ãããŸãã
COBOL ãããã¡ãªãŒããŒãããŒæ€åºçšã®ã«ã¹ã¿ã ã«ãŒã«ã®äœæ
éçè§£æã¯ãã«ãŒã«ãšã³ãžã³ãCOBOLã·ã¹ãã ã®å®éã®ããã°ã©ãã³ã°ãã¿ãŒã³ã«åãããŠã«ã¹ã¿ãã€ãºããããšã§æã广çã§ããããã©ã«ãã®ã«ãŒã«ã»ããã¯äžè¬çãªãªãŒããŒãããŒã·ããªãªãã«ããŒããŸãããã¬ã¬ã·ãŒã³ãŒãã«ã¯ãã¡ã€ã³åºæã®æ§é ãåœåèŠåãã¡ã¢ãªã¬ã€ã¢ãŠããå«ãŸããããšãå€ããã«ã¹ã¿ã ã«ãŒã«ã®éçºãå¿ èŠã«ãªããŸãããããã®ã«ãŒã«ãèšè¿°ããããšã§ãã»ãã¥ãªãã£ããŒã ãšéçºè ã¯å®å šã§ãªãåäœãããã¢ã¯ãã£ãã«æ€ç¥ãã誀æ€ç¥ãåæžããåå®çŸ©ãªãŒããŒãããŒããã¹ãããããã£ãŒã«ãã«ããããµã€ã¬ã³ããã©ã³ã±ãŒã·ã§ã³ãšãã£ãæ€åºãé£ããåé¡ã®ã«ãã¬ããžãåäžãããããšãã§ããŸãã
ã«ã¹ã¿ã ã«ãŒã«ã¯ãæ§é çãªæ€åºïŒç¹å®ã®COBOLæãå¥ãªã©ïŒãšã»ãã³ãã£ã¯ã¹çãªæå³ïŒä¿è·ãããŠããªãããŒã¿ç§»åãå®å šã§ãªããã£ãŒã«ããµã€ãºã®æ³å®ã®ç¹å®ãªã©ïŒãçµã¿åãããå¿ èŠããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ããã®ãããªã«ãŒã«ãæ£ç¢ºãã€å¹ççã«èšèšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
éçã«ãŒã«ãšã³ãžã³ã«ãããã¿ãŒã³ãããã³ã°
COBOLããµããŒãããéçã¢ãã©ã€ã¶ãŒã¯ãéåžžããã¡ã€ã³åºæèšèªãXMLã¹ããŒãããã¿ãŒã³ããªãŒããŸãã¯ã¹ã¯ãªããã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠã«ãŒã«èšå®ãæäŸããŸãããªãŒããŒãããŒãææããã«ã¯ãã«ãŒã«ã¯ãµã€ãºã®äžäžèŽãåŒãèµ·ããå¯èœæ§ã®ããæäœãæ£ç¢ºã«ç¹å®ãããã®å®çŸ©ãŸã§é¡ãå¿ èŠããããŸãã
äŸ: å®å šã§ãªãMOVEæäœã®æ€åº
ãããã¡ãªãŒããŒãããŒæ€åºã®ããã®äžè¬çãªãã¿ãŒã³ MOVE 次ã®ããã«ãªããŸãã
IF operation = "MOVE"
AND length(source-field) > length(target-field)
AND no truncation or validation logic is present
THEN flag overflow risk
äžéšã®ã¢ãã©ã€ã¶ãŒã¯ASTïŒæœè±¡æ§ææšïŒã¬ãã«ã®ã¢ã¯ã»ã¹ãæäŸããŸãããã®ãããªå Žåã¯ã以äžã®ç¹ããã§ãã¯ããããšã§ã«ãŒã«ãçµã蟌ãããšãã§ããŸãã
- ãœãŒã¹ãã£ãŒã«ãã¯æ¬¡ã®ããã«å®çŸ©ãããŸã
PIC X(n)ããã§n >éŸå€ïŒäŸïŒ30ïŒ - ã¿ãŒã²ãããã£ãŒã«ãã¯æ¬¡ã®ããã«å®çŸ©ãããŸãã
PIC X(m)ããã§ãm < éŸå€ïŒäŸïŒ15ïŒ - ãã®
MOVEæ¡ä»¶ãªãã«çºçããIF LENGTH OForINSPECTè¿æã® - äž¡æ¹ã®ãã£ãŒã«ãã¯çŽæ¥ãããã³ã°ãããããã°ã«ãŒã倿°ãŸãã¯
REDEFINES
ã³ãŒããµã³ãã«ïŒ
01 EMAIL-ADDRESS PIC X(40).
01 USERNAME PIC X(12).
...
MOVE EMAIL-ADDRESS TO USERNAME.
ããã¯ã«ãŒã«ã®äžèŽãããªã¬ãŒããã¯ãã§ãã EMAIL-ADDRESS å²ãåœãŠãè¶
ãã USERNAMEãæ€èšŒã¯è¡ãããŠããŸãããé©åã«èšè¿°ãããã«ãŒã«ã¯ãããŒã¿ã®èµ·æºã«ãåŸãå¿
èŠããããŸãã EMAIL-ADDRESS ãŠãŒã¶ãŒå
¥åãŸãã¯å€éšã¬ã³ãŒãããçºçããå Žåããªã¹ã¯ãå¢å€§ããããã«å¿ããŠé倧床ã調æŽããå¿
èŠããããŸãã
é«åºŠãªæ€åº:
éå±€åãããããžãã¯ãè€éãªãããŒãæã€ããã°ã©ã ã®å Žåãã«ãŒã«ã§æ¬¡ã®ãã®ããµããŒãããå¿ èŠãããå ŽåããããŸãã
- 段èœéã®å€æ°è¿œè·¡
- å®è¡ãããã«ãŒãã³å šäœã®åæ
- ãªãŒããŒãããŒã鿥çã«çºçããMOVEãã§ãŒã³ïŒA TO BãB TO CïŒã«ãã©ã°ãä»ãã
- åãæšãŠãé©åã«åŠçãããå Žåã®æ¡ä»¶ä»ãã«ãŒã«ã®æå¶
倿°ã®ãµã€ãºãšå¢çã®è¿œè·¡
ãªãŒããŒãããŒæ€åºã¯ãåºæ¬çã«ããŒã¿èŠçŽ ã®å®£èšãµã€ãºãšå®éã®ãµã€ãºãçè§£ããããšã«é¢ä¿ããŠããŸããCOBOLã®å Žåãããã¯è§£æãå«ã¿ãŸãã PIC æ¡é
ãä»»æã® VALUE or USAGE 屿§ãããã³åå®çŸ©ãããã¹ãã¬ãŒãžé åã®è§£æ±ºã
ã«ãŒã«ã§ã¢ãã«åããäž»ãªèŠçŽ :
PICæé»ã®å°æ°ç¹ãå«ããµã€ãºïŒäŸïŒ9(6)V99åèš8ãã€ãã«ãªããŸãïŒOCCURSå¥ã®åŠçãé åã®å¢çãå°éãããããšãä¿èšŒãã- 芪ãã£ãŒã«ãã«ãã¹ãããããµããã£ãŒã«ããå«ãŸããã°ã«ãŒããã£ãŒã«ãã®éèš
REDEFINESéè€ãå ±æã¡ã¢ãªãäžæŽåã«äœ¿çšãããå¯èœæ§ããã
OCCURS ã®èª€çšäŸ:
01 TRANSACTION-HISTORY.
05 ENTRY OCCURS 10 TIMES.
10 DATE PIC 9(8).
10 AMOUNT PIC 9(5)V99.
...
MOVE 12345 TO AMOUNT(11).
ãããæ€åºããã«ã¯ãã«ãŒã«ã§æ¬¡ã®ããšãçè§£ããå¿ èŠããããŸãã
- 宣èšãããäžéïŒ
OCCURS 10) - ã€ã³ããã¯ã¹11ã¯ç¯å²å€ã§ã
- è«çã«å¢çãã§ãã¯ããªã
äžéšã®ã¢ãã©ã€ã¶ãŒã§ã¯ãåçãªéŸå€ããŠãŒã¶ãŒå®çŸ©ã®å®æ°ãã¢ãã«åã§ããŸããã€ã³ããã¯ã¹ã倿°ïŒAMOUNT(I)ïŒã®å Žåãã«ãŒã«ã«ã¯ã I 䜿çšåã«æ€èšŒãããŸãã
ã«ãŒã«ããžãã¯ã®äŸïŒç䌌ã³ãŒãïŒ:
IF variable = OCCURS-array-access
AND subscript-value > OCCURS-declared-size
AND no prior validation of subscript
THEN flag as potential out-of-bounds write
ããé«åºŠãªããŒã«ã§ã¯ããã€ã³ãåæã«ãã£ãŠã«ãŒã«ãããã«åŒ·åã§ããŸããããã«ããããšã³ãžã³ã¯å®å šã§ãªãå€ããŠãŒã¶ãŒå ¥åãããŒã¿ããŒã¹ã¬ã³ãŒãããŸãã¯å€éšãã¡ã€ã«ããçºçãããã©ããããã¬ãŒã¹ããçè«äžã®ãªã¹ã¯ã ãã§ãªããæ»æã«é¢é£ãããªãŒããŒãããŒãªã¹ã¯ãæµ®ã圫ãã«ããããšãã§ããŸãã
ã«ãŒã«èšèšã®ããã®ãã®ä»ã®ãã¯ããã¯
- ã³ã³ããã¹ãèªèæå¶: ç¹å®ã®å¶åŸ¡ãããã¯å ã®ãã©ã°ä»ãã³ãŒããé€å€ããïŒäŸïŒæ¢ç¥ã®å®å šãªåãæšãŠããžãã¯ïŒ
- é倧床ã¹ã³ã¢: ãªãŒããŒãããŒã®çš®é¡ãããŒã¿ã®éèŠåºŠããŸãã¯é²åºã¬ãã«ã«åºã¥ããŠæ€åºçµæãã©ã³ã¯ä»ãããŸã
- ãã£ãŒã«ãã®ã¿ã°ä»ã: éèŠãªãã£ãŒã«ãïŒIDãæ®é«ãå¶åŸ¡ãã©ã°ãªã©ïŒã«ã¡ã¿ããŒã¿ ã¿ã°ã远å ããŠãããå³ãããªãŒããŒãããŒãããå€ãé©çšããŸãã
ã¿ã°ä»ãã®äœ¿çšäŸ:
01 CUSTOMER-ID PIC X(10). *> #critical
ã«ãŒã«ããžãã¯ã§ã¯ã次ã®ããã«ã¿ã°ä»ãããããã£ãŒã«ãã«å³ããç£èŠãé©çšã§ããŸãã #critical ããç®ç«ã€ã¢ã©ãŒããçæããŸãã
匷åãªã«ã¹ã¿ã ã«ãŒã«ãäœæããã«ã¯ãéçºè ãQAãã»ãã¥ãªãã£ããŒã ã®ç·å¯ãªé£æºãå¿ èŠã§ããã«ãŒã«ãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã£ã³ã°ãã¿ãŒã³ãšãã¡ã€ã³ããžãã¯ãšæŽåããŠããã°ããããã¡ãªãŒããŒãããŒã®èŠéãã«ãããµã€ã¬ã³ãããŒã¿ç Žæã«å¯Ÿãã匷åãªä¿è·çãšãªããŸãã
ãã¹ããã©ã¯ãã£ã¹ãšããã®ãã³ã
COBOLã«ããããããã¡ãªãŒããŒãããŒã®æ€åºã¯ãäžåºŠããã®äœæ¥ã§ã¯ãããŸãããç¹ã«ãã³ãŒãã®å€æŽãå ã®éçºè ã®æ»åŸãé·ãæ®ãããšãå€ãã¬ã¬ã·ãŒç°å¢ã§ã¯ãç¶ç¶çãªæ³šæãå¿ èŠã§ããéçè§£æã¯ãã»ãã¥ã¢ãªéçºãšé·æçãªã·ã¹ãã 管çãšããããåºç¯ãªæåã«æ ¹ãããŠããå Žåã«æã广çã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãCOBOLã·ã¹ãã ã«ããããããã¡ãªãŒããŒãããŒæ€åºã®ç²ŸåºŠãä¿¡é Œæ§ããããŠäŸ¡å€ãé«ããããã®éèŠãªãã¹ããã©ã¯ãã£ã¹ãšå°éçãªææ³ã«ã€ããŠæŠèª¬ããŸãã
éçè§£æãšæåã³ãŒãã¬ãã¥ãŒãçµã¿åããã
éçè§£æããŒã«ã¯é«éæ§ãšç¶²çŸ æ§ãšããå©ç¹ããããŸããã人éã«ããç£èŠã倧ããªã¡ãªãããšãªããŸããå€ãã®COBOLããã°ã©ã ã«ã¯ãæ±çšçãªã«ãŒã«ã»ããã§ã¯å®å šã«çè§£ã§ããªããã¡ã€ã³åºæã®ããžãã¯ãå«ãŸããŠããŸããèªåã¹ãã£ã³ãšå¯Ÿè±¡ãçµã£ãæåã¬ãã¥ãŒãçµã¿åãããããšã§ãææ§ãªçµæãæç¢ºã«ããçã®ãªã¹ã¯ãæ€èšŒããããšãã§ããŸãã
ãã€ããªããåæã®æŠè¡:
- ããžãã¹ã¯ãªãã£ã«ã«ãªã¢ãžã¥ãŒã«ã§ãã©ã°ãä»ããããæ€åºçµæãåªå ããŠæåæ€æ»ãã
- è€æ°ã®æ®µèœãŸãã¯ããã°ã©ã ã«ãŸãããMOVEãã§ãŒã³ã®ã¬ãã¥ãŒã«çŠç¹ãåœãŠãŸã
- è€é㪠REDEFINES æ§é ã®è§£éã«äžçŽ COBOL éçºè ãåå ããã
- ãã¢ã¬ãã¥ãŒã䜿çšããŠã誀æ€ç¥ãæ·±å»ãªåé¡ãé ããŠããªãããšã確èªãã
äŸïŒ
éçã¢ãã©ã€ã¶ãŒã¯ãMOVE ãæ¬¡ã®ããã«ãã©ã°ä»ããããããããŸããã FIELD-A ããž FIELD-B ãµã€ãºã®äžäžèŽã«ãããªã¹ã¯ããããšã¿ãªããããéçºè
ã¯ã FIELD-B åžžã«äºåã«ã¯ãªã¢ããããããã°èšé²ã®ã¿ã«äœ¿çšãããŸããæåã¬ãã¥ãŒã«ãããçºèŠäºé
ã®è©äŸ¡ãäžæ¹ä¿®æ£ãããããç£æ»æ
åœè
åãã«èšèšãææžåãããå¯èœæ§ããããŸãã
åçãªã³ã³ãã³ããèšå®ãã¡ã€ã«ã«ãã£ãŠå®éã®åäœãèŠå®ãããŠããå Žåããã£ãŒã«ããµã€ãºã®ææ§ãã解決ããã«ã¯æåå ¥åãäžå¯æ¬ ã§ãã人éã«ããã¬ãã¥ãŒã¯ãã³ãŒãæ§é ãšããžãã¹ããžãã¯ã®ã®ã£ãããåããã®ã«åœ¹ç«ã¡ãŸãã
åæã¯ãŒã¯ãããŒã®ç¶æãšèªåå
éçè§£æã¯ãå®åçãªã¯ãŒã¯ãããŒã«çµã¿èŸŒãŸããããšã§ããã®åšåãçºæ®ããŸããæåã§ã¢ãããã¯ã«ã¹ãã£ã³ãå®è¡ãããšãå€ãçµæãèŠã€ãã£ããããªã°ã¬ãã·ã§ã³ãèŠéãããããããšã«ãªããã¡ã§ãã代ããã«ãè§£æãããŒãžã§ã³ç®¡çããã管çãããããã»ã¹ã«çµ±åããããšã§ãã³ãŒãããŒã¹ã«åãããŠçµæãé²åããŸãã
ã¯ãŒã¯ãããŒçµ±åã®ãã³ã:
- 宿çãªãã«ã¹ãã£ã³ãã¹ã±ãžã¥ãŒã«ããïŒæ¯é±ãæ¯æããŸãã¯åãªãªãŒã¹ãŠã£ã³ããŠã®åŸïŒ
- ã¹ãã£ã³åºåããªããžããªå ã®ãœãŒã¹ã³ãŒããšäžç·ã«ä¿åããããŒãžã§ã³ç®¡çãã
- 調æ»çµæã倿Žç®¡çã·ã¹ãã ãŸãã¯ãã±ãããã¥ãŒã«çµ±åãã
- ããŒã¹ã©ã€ã³æ¯èŒãèªååããŠãæ°èŠãŸãã¯åå°å ¥ããããªãŒããŒãããŒãæ€åºããŸã
å€§èŠæš¡ãªããŒã ãèŠå¶ã®å³ããç°å¢ã§ã¯ãç£æ»ããã±ãŒãžã«åæçµæãå«ããããšãæ€èšããŠãã ãããããã«ãããè匱æ§ãæ€åºãããã ãã§ãªããé·æã«ããã£ãŠäžè²«ããŠè¿œè·¡ã»è§£æ±ºã«åãçµãã§ããããšã瀺ãããŸãã
èªåãã£ãŒããã㯠ã«ãŒãã®äŸ:
- éçºè ããã£ãŒã«ããµã€ãºã®å€æŽãå«ã倿Žãæåºãã
- éçã¢ãã©ã€ã¶ãŒã¯ããã®åéã«é¢é£ããæ°ããªãªã¹ã¯ãèŠåããŸã
- ããŒã«ã¯ãã¡ã€ã«åãè¡çªå·ãããã³æšå¥šãããä¿®åŸ©æ¹æ³ãå«ããã±ãããèªåçæããŸã
- ã¬ãã¥ãŒæ åœè ãåé¡ã確èªããæ¯æ£æªçœ®ãå²ãåœãŠã
- 倿Žã¯ååæã§è§£æ±ºã確èªãããåŸã«ã®ã¿ããŒãžãããŸã
ãã®ã¿ã€ãã®ãã£ãŒããã㯠ã«ãŒãã¯ãèšæã®ã»ãã¥ãªã㣠ã¿ã¹ã¯ã§ã¯ãªããæ¥åžžçãªåè³ªæšæºãšããŠãªãŒããŒãããŒå®å šæ§ã匷åããã®ã«åœ¹ç«ã¡ãŸãã
çŸå Žã®å®å šã®ããã®æç¢ºãªã³ãŒãã£ã³ã°æšæºã確ç«ãã
ãããã¡ãªãŒããŒãããŒã«å¯Ÿããæã广çãªé·æçãªé²åŸ¡çã®äžã€ã¯ããã£ãŒã«ãã®ãµã€ãºãã¢ã¯ã»ã¹ãåå®çŸ©æ¹æ³ãå®çŸ©ããããšã§ããå€ãã®ã¬ã¬ã·ãŒCOBOLã·ã¹ãã ãç¹ã«è€æ°ã®ãã³ããŒã«ãã£ãŠéçºãããã·ã¹ãã ãæ°å幎ã«ããã£ãŠéçºãããã·ã¹ãã ã§ã¯ãæšæºåãããã¬ã€ãã©ã€ã³ãæ¬ åŠããŠããŸãã
æšå¥šããããã©ã¯ãã£ã¹:
- æ€èšŒãããªãéãããµã€ãºãäžèŽããªããã£ãŒã«ãéã®MOVEæäœã¯é¿ããŠãã ããã
- äœ¿çšæ³ãšæåŸ å€ã®å¶éãåå®çŸ©ããæç¢ºãªã³ã¡ã³ã
- å¿ é ãã€ååã«ææžåãããŠããªãéããREDEFINES å ã§ OCCURS ããã¹ãããããšã¯é¿ããŠãã ããã
- çŸå®äžçã®ããŒã¿é·ã®æåŸ å€ãåæ ããPICå¥èŠåã䜿çšãã
- ã³ã¡ã³ãå ã®éèŠãªãã£ãŒã«ãã«ã¿ã°ãä»ããããšã§ãã«ãŒã«ã®ã¿ãŒã²ããèšå®ãšã¬ãã¥ãŒã®çŠç¹ãæ¹åãããŸãã
ãããã®ãã©ã¯ãã£ã¹ã圢åŒåããããšã§ãããŒã ã¯ãªãŒããŒãã㌠ãšã©ãŒã®å¯èœæ§ãšèªåã¹ãã£ã³çµæã®ãã€ãºã®éã®äž¡æ¹ãåæžã§ããŸãã
調æ»çµæãšéçšããŒã¿ã®çžé¢é¢ä¿
åæçµæã¯ãæ¬çªç°å¢ãžã®åœ±é¿ãšé¢é£ä»ããããšã§ãããå®çšçãªãã®ã«ãªããŸãããã°ããŒã¿ãã€ã³ã·ãã³ãèšé²ããã©ã³ã¶ã¯ã·ã§ã³ãã°ãçšããŠãéçåæããåŸãããç¥èŠã«åªå é äœãä»ããããšãã§ããŸããéèŠãªã€ã³ã¿ãŒãã§ãŒã¹ã«ãããå°ããªãªãŒããŒãããŒã¯ãã¬ããŒãåºåã«ãŒãã³ã«ããã倧ããªãªãŒããŒãããŒãããç·æ¥æ§ãé«ãå ŽåããããŸãã
çžé¢é¢ä¿ã®èª¿ã¹æ¹:
- ãã©ã°ãä»ãããã倿°ããŠãŒã¶ãŒåããã©ãŒã ãŸã㯠API å ¥åã«ãããã³ã°ãã
- åæçµæãæ¢ç¥ã®ã€ã³ã·ãã³ããæ¬ é¥ã¬ããŒãã«ãªã³ã¯ãã
- å®è¡é »åºŠãšããŒã¿ã®å€åæ§ã«åºã¥ããŠãããã¡ãªã¹ã¯ãè©äŸ¡ãã
ãã®ã³ã³ããã¹ãã¯ãçŸå®äžçã§ãªã¹ã¯ãæãé«ãåé¡ã«ä¿®åŸ©äœæ¥ãéäžãããã¬ã¬ã·ãŒ ã¢ãžã¥ãŒã«ã®ææ°åãžã®æè³ã®æ ¹æ ãæ¹åããã®ã«åœ¹ç«ã¡ãŸãã
ãããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãçµç¹ã¯äºåŸå¯Ÿå¿çãªã¹ãã£ã³ããè±åŽããCOBOLã·ã¹ãã ã«ãããŠæç¶å¯èœã§æŽåæ§ã®é«ãã¡ã³ããã³ã¹ã¢ãã«ãžãšç§»è¡ã§ããŸãããããã¡ãªãŒããŒãããŒã¯åãªãæè¡çãªãã°ã§ã¯ãªããé·æçãªã³ãŒãã®å¥å šæ§ãšã¢ãŒããã¯ãã£ã®å¥å šæ§ãç€ºãææšã§ãã
ãµã€ã¬ã³ããªã¹ã¯ãæé€ããŠã¬ã¬ã·ãŒã³ãŒãã匷åãã
COBOLã«ããããããã¡ãªãŒããŒãããŒã¯ãã¬ã¬ã·ãŒã³ã³ãã¥ãŒãã£ã³ã°ã®äžçã§ã¯é ããè åšã§ãããæ ¹åŒ·ãæ®ã£ãŠããŸããå€ãã®å Žåãäœå¹Žãæ€åºãããã«æŸçœ®ãããããŒã¿ã®ç²ŸåºŠãéçšã®ä¿¡é Œæ§ããããŠã·ã¹ãã ã»ãã¥ãªãã£ãéãã«æãªããŸããçŸä»£ã®ããã°ã©ãã³ã°ç°å¢ãšã¯ç°ãªããCOBOLã®ãããã¡ãªãŒããŒãããŒã¯ç®ã«èŠããã¯ã©ãã·ã¥ãã¢ã©ãŒããåŒãèµ·ããããšã¯ã»ãšãã©ãããŸããããããããµã€ã¬ã³ããã©ã³ã±ãŒã·ã§ã³ãã¬ã³ãŒãç Žæããããã¯åå äžæã®ããžãã¹ããžãã¯ãšã©ãŒãšãã£ã圢ã§çŸãã远跡ã¯å°é£ã§ãããç¡èŠãããšå€§ããªã³ã¹ããããããŸãã
éçè§£æã¯ãããããè匱æ§ãæ©æãã€å€§èŠæš¡ã«ç¹å®ããããã®æã广çãªææ®µã®äžã€ã§ããé©åã«èšå®ããã°ãã³ããŒããã¯ãåå®çŸ©ãæç¶ãåå²ããŸããããŒã¿ç§»åã远跡ãããã£ãŒã«ãå¢çã®è¶ éãã¡ã¢ãªé åã®äžæžããæ£ç¢ºã«ç¹å®ã§ããŸãããã®èšäºã§ç€ºããããã«ãCOBOLã«ããããããã¡ãªãŒããŒãããŒæ€åºã¯ãåã«ã³ãŒãè¡ãã¹ãã£ã³ããã ãã§ã¯äžååã§ããã¡ã¢ãªã¢ãã«ãçè§£ããããã°ã©ã æ§é ãè§£éããçŸå®äžçã®ãªã¹ã¯ãåæ ããç確ãªã«ãŒã«ãé©çšããããšãéèŠãªã®ã§ãã
æåã®éµã¯ãããã€ãã®éèŠãªååã«ããã£ãŠããŸããããã¯ããœãŒã¹ã³ãŒãã®åŸ¹åºçãªæºåãæ£ç¢ºãªã«ãŒã«å®çŸ©ãçµæã®æ éãªè§£éããããŠåæãéåžžã®ã¯ãŒã¯ãããŒã«çµã¿èŸŒããšããã³ãããã¡ã³ãã§ããCOBOLã®éçè§£æã«ç¹åããããŒã«ã¯ãããŒã ãåé¡ãçºèŠããåãäžããŠãããŸããããã§ãªããã°ãæäœæ¥ã«ããã¬ãã¥ãŒã§çºèŠãããŸã§ã«æ°é±éãããããããªåé¡ããçºèŠã§ããå¯èœæ§ããããŸãã
ãããã¡ãªãŒããŒãããŒã®æ€åºãšä¿®åŸ©ãžã®åãçµã¿ã¯ãããåºç¯ãªäœ¿åœãããªãã¡ã¬ã¬ã·ãŒã·ã¹ãã ã®å®å šæ§ãå®å®æ§ããããŠä¿¡é Œæ§ãç¶æãããšãã䜿åœã®äžç°ã§ãããããã®ã·ã¹ãã ã¯äŸç¶ãšããŠäžæ žçãªããžãã¹ãªãã¬ãŒã·ã§ã³ãæ¯ããŠãããææ°ã®ãã©ãããã©ãŒã ãšåçã®ã¬ãã«ã®ç²Ÿæ»ãšä¿è·ãå¿ èŠã§ããCOBOLéçºã»ä¿å®æŠç¥ã«éçè§£æãçµã¿èŸŒãããšã§ãçµç¹ãäŸåããéèŠãªã¢ããªã±ãŒã·ã§ã³ã®é·æçãªå®å šæ§ãšæŽåæ§ãžã®æè³ãšãªããŸãã