ãã®èšäºã®
æåã®éšåã§ã¯ ããããŒãã£ãŒããšããããæäœããããã®å©çšå¯èœãªããŒã«ã«ã€ããŠç°¡åã«èª¬æããŸããã 次ã«ãã³ãŒãã®ã°ã©ãã£ã«ã«è¡šçŸãäœæããããã«å¿
èŠãªãã¹ãŠã®ã°ã©ãã£ãã¯ããªããã£ãã«ã€ããŠèª¬æããŸããã ãã®ã°ã©ãã£ã«ã«ãªè¡šçŸããµããŒãããç°å¢ã®äŸã以äžã®ç»åã«ç€ºããŸãã
ã°ã©ãã£ã«ã«ã³ãŒããµããŒãç°å¢ç¬¬2éšã§ã¯ãäž»ã«Pythonã§å®è¡ãããå®è£
ã«çŠç¹ãåœãŠãŸãã å®è£
ããã³èšç»ãããŠããæ©èœãããã³ææ¡ãããŠãããã€ã¯ãããŒã¯ã¢ããèšèªã«ã€ããŠèª¬æããŸãã
äžè¬çãªæ
å ±
ãã®æè¡ã¯ã
CodimensionãšåŒã°ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®äžéšãšããŠå®è£
ãããŸããã ãã¹ãŠã®ãœãŒã¹ã³ãŒãã¯GPL v.3ã©ã€ã»ã³ã¹ã®äžã§å©çšã§ãã
githubã® 3ã€ã®ãªããžããªã§ãã¹ããããŸãã2ã€ã®Pythonæ¡åŒµã¢ãžã¥ãŒã«
cdm-pythonparserããã³
cdm-flowparserãš
IDEèªäœã§ãã æ¡åŒµã¢ãžã¥ãŒã«ã¯äž»ã«C / C ++ã§æžãããŠãããPythonã®IDEã¯ã·ãªãŒãº2ã§ããã°ã©ãã£ãã¯éšåã«ã¯ãQTã©ã€ãã©ãªã®Pythonã©ãããŒ-PyQTã䜿çšãããŸããã
éçºã¯Linuxããã³Linuxã§è¡ãããŸãã 䜿çšãããäž»ãªãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯Ubuntuã§ããã
ãã®ç°å¢ã¯ãPythonã·ãªãŒãº2ã§äœæããããããžã§ã¯ãã§åäœããããã«èšèšãããŠããŸãã
建ç¯
次ã®å³ã¯ãIDEã¢ãŒããã¯ãã£ã瀺ããŠããŸãã
IDEã¢ãŒããã¯ãã£å³ã®éãéšåã¯ããããžã§ã¯ãã§éçºãããéšåã瀺ããŠããŸãã é»è²-ãµãŒãããŒãã£ã®Pythonã¢ãžã¥ãŒã«ãç·è²-ãµãŒãããŒãã£ã®ãã€ããªã¢ãžã¥ãŒã«ã
ãããžã§ã¯ãã®æåããã1人ã®éçºè
ãå¿
èŠãªãã¹ãŠã®ã³ã³ããŒãã³ãã劥åœãªæéå
ã«ãŒãããéçºããããšã¯å®å
šã«äžå¯èœã§ããããšã¯æããã§ããã ãããã£ãŠãæ¢åã®Pythonããã±ãŒãžã¯ãå¯èœãªéã劥åœãªå Žæã§äœ¿çšãããŸããã äžèšã®å³ã¯ã決å®ãå®å
šã«åæ ããŠããŸãã
ãããžã§ã¯ãã®äžéšãšããŠéçºãããã®ã¯3ã€ã®éšåã®ã¿ã§ãã IDEã¯ãéçºã®é«éåãšå®éšã®ç°¡çŽ åãç®çãšããŠPythonã§äœæãããŠããŸãã æ¡åŒµã¢ãžã¥ãŒã«ã¯ãIDEã®å¿çæ§ãé«ããããã«C / C ++ã§èšè¿°ãããŠããŸãã ç°¡åãªããŒãµãŒã®ã¿ã¹ã¯ã¯ãã€ã³ããŒããã¯ã©ã¹ãé¢æ°ãã°ããŒãã«å€æ°ãããã¥ã¡ã³ãè¡ãªã©ãPythonãã¡ã€ã«ïŒãŸãã¯ãããã¡ãŒïŒã§èŠã€ãã£ããã¹ãŠã®ãšã³ãã£ãã£ãå ±åããããšã§ãã ãã®ãããªæ
å ±ã®ååšã«ãããããšãã°ãã®ãããªæ©èœãå®è£
ã§ããŸãïŒãã¡ã€ã«ã®å
容ã衚瀺ããããã²ãŒã·ã§ã³ãæäŸãããããžã§ã¯ãå
ã®ç¹å®ã®ãããã決ããŠäœ¿çšãããŠããªãé¢æ°ãã¯ã©ã¹ãã°ããŒãã«å€æ°ã®åæãæäŸããããã«æ§æãããŠããŸãã ãããŒããŒãµãŒã®ã¿ã¹ã¯ã¯ããã£ãŒãã®æç»ã«å¿
èŠãªããŒã¿ã䟿å©ãªåœ¢åŒã§æäŸããããšã§ãã
ä»ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ãµãŒãããŒãã£ã§ãã PyQTã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãšãããã¯ãŒã¯éšåã«äœ¿çšãããŸããã ã¡ã€ã³ããã¹ããšãã£ã¿ãšããŠã®QScintillaããã³ãããã°ãããã¹ã¯ãªããã®ãªãã€ã¬ã¯ããããå
¥å/åºåãç¹å®ã®ãªããžã§ã³ã®ãã¡ã€ã«ã®svnããŒãžã§ã³ã®è¡šç€ºãªã©ããã®ä»ã®èŠçŽ ã Graphvizã¯ãäŸåé¢ä¿å³ãªã©ã®ã°ã©ãã£ãã¯èŠçŽ ã®äœçœ®ãèšç®ããããã«äœ¿çšãããŸããã ä»ã®æ¢è£œã®Pythonããã±ãŒãžã䜿çšãããŸããïŒpyflakesãpylintãfilemagicãropeãgprof2dotãªã©ã
ã°ã©ãã£ãã¯ã¹ãã€ãã©ã€ã³ãžã®ã³ãŒã
ããã¹ãããã°ã©ãã£ãã¯ã¹ãžã®ç§»è¡ã®å®è£
ã¯ããã€ãã©ã€ã³ã®ååã«åºã¥ããŠããŸãã å段éã§ãäœæ¥ã®ç¹å®ã®éšåãå®è¡ãããçµæã次ã®æ®µéã«è»¢éãããŸãã 次ã®å³ã¯ããã€ãã©ã€ã³ã®ãã¹ãŠã®æ®µéã瀺ããŠããŸããå·ŠåŽã«ã¯ãœãŒã¹ããã¹ããå
¥åãããå³åŽã«ã¯åºåãæç»ãããå³ã§ãã
ã°ã©ãã£ãã¯ã¹ãã€ãã©ã€ã³ãžã®ã³ãŒãäœæ¥ã¯ããœãŒã¹ããã¹ãããæ§æããªãŒãæ§ç¯ããããšããå§ãŸããŸãã 次ã«ãããªãŒããã€ãã¹ãããæ€åºããããã¹ãŠã®ã³ãŒããããã¯ãã«ãŒããé¢æ°ãªã©ããããã¯ãããŸãã éå±€ããŒã¿æ§é ã«å解ãããŸããã ãã®åŸããœãŒã¹ã³ãŒããä»ããŠå¥ã®ãã¹ãäœæããããã®çµæãã³ã¡ã³ãã«é¢ããæ
å ±ãåéãããŸãã ãã€ãã©ã€ã³ã®ããã«é²ãã 段éã§ã¯ãã³ã¡ã³ããå¥åã®ããŒã¿ãšããŠã§ã¯ãªããèªèãããèšèªæ§é ã«æ¢ã«é¢é£ä»ããŠããã»ãã䟿å©ã§ãã ãããã£ãŠã次ã®ã¹ãããã§ã¯ãã³ã¡ã³ããã³ãŒããè¡šãéå±€æ§é ã«ããŒãžããŸãã 説æãããŠããã¢ã¯ã·ã§ã³ã¯ãæé«ã®ããã©ãŒãã³ã¹ãå®çŸããããã«C / C ++ã§èšè¿°ããããããŒããŒãµãŒæ¡åŒµã¢ãžã¥ãŒã«ã«ãã£ãŠå®è¡ãããŸãã
åŸç¶ã®ã¹ãããã¯ãã§ã«IDEå
ã«å®è£
ãããŠãããPythonã§èšè¿°ãããŠããŸãã ããã«ãããC ++å®è£
ãšæ¯èŒããŠãã¬ã³ããªã³ã°ã®å®éšã倧å¹
ã«å®¹æã«ãªããŸãã
æåã«ãä»®æ³ãã£ã³ãã¹ãšåŒã°ããããŒã¿æ§é ã«ãæ¡åŒµã¢ãžã¥ãŒã«ããåä¿¡ããããŒã¿æ§é ã«åŸã£ãŠã°ã©ãã£ãã¯èŠçŽ ãé
眮ãããŸãã 次ã«ã¬ã³ããªã³ã°æ®µéãããããã®äž»ãªã¿ã¹ã¯ã¯ãã¹ãŠã®ã°ã©ãã£ãã¯èŠçŽ ã®ãµã€ãºãèšç®ããããšã§ãã æåŸã«ããã¹ãŠã®ã°ã©ãã£ãã¯èŠçŽ ãé©åã«æç»ãããŸãã
ããããã¹ãŠã®æ®µéã«ã€ããŠè©³ãã説æããŸãã
æ§æããªãŒã®æ§ç¯
ããã¯ãããã¹ãããã°ã©ãã£ãã¯ã¹ãžã®éã®æåã®æ®µéã§ãã ãã®ã¿ã¹ã¯ã¯ããœãŒã¹ããã¹ãã解æããéå±€ããŒã¿æ§é ãæ§æããããšã§ãã ããã¯ããœãŒã¹ããã¹ãããæ§ç¯ãããæ§æããªãŒã䜿çšããŠäŸ¿å©ã«è¡ãããŸãã æããã«ãç§ã¯ãããžã§ã¯ãå°çšã®æ°ããPythonããŒãµãŒãéçºããããããŸããã§ããããããã©ãããããã§ã«çšæãããŠãããã®ã䜿çšããããšããèŠæããããŸããã 幞ããªããšã«ãPythonã€ã³ã¿ããªã¿ã®å
±æã©ã€ãã©ãªã§é©åãªé¢æ°ãèŠã€ãããŸããã ãã®Cã¯ãæå®ãããã³ãŒãçšã«ã¡ã¢ãªå
ã«ããªãŒãæ§ç¯ããé¢æ°ã§ãã ãã®æ©èœã®åäœãèŠèŠåããããã«ãæ§ç¯ãããããªãŒãèŠèŠçã«è¡šç€ºãããŠãŒãã£ãªãã£ãäœæãããŸããã ããšãã°ããœãŒã¹ããã¹ãã®å ŽåïŒ
ãã®ãããªããªãŒãæ§ç¯ãããŸãïŒç°¡æœã«ããããã«ããã©ã°ã¡ã³ãã®ã¿ãæäŸãããŸãïŒã
$ ./tree test.py
ã¿ã€ãïŒencoding_declè¡ïŒ0åïŒ0 strïŒiso-8859-1
ã¿ã€ãïŒfile_inputè¡ïŒ0 colïŒ0
ã¿ã€ãïŒstmtè¡ïŒ4åïŒ0
ã¿ã€ãïŒcompound_stmtè¡ïŒ4åïŒ0
ã¿ã€ãïŒfuncdefè¡ïŒ4åïŒ0
ã¿ã€ãïŒNAMEè¡ïŒ4åïŒ0 strïŒdef
ã¿ã€ãïŒNAMEè¡ïŒ4åïŒ4 strïŒf
ã¿ã€ãïŒãã©ã¡ãŒã¿ãŒè¡ïŒ4åïŒ5
ã¿ã€ãïŒLPARè¡ïŒ4åïŒ5 strïŒïŒ
ã¿ã€ãïŒRPARè¡ïŒ4åïŒ6 str :)
ã¿ã€ãïŒCOLONè¡ïŒ4 colïŒ7 str ::
ã¿ã€ãïŒã¹ã€ãŒãã©ã€ã³ïŒ4åïŒ8
ã¿ã€ãïŒNEWLINEè¡ïŒ4åïŒ8 strïŒ
ã¿ã€ãïŒINDENTè¡ïŒ6 colïŒ-1 strïŒ
ã¿ã€ãïŒstmtè¡ïŒ6åïŒ4
ã¿ã€ãïŒsimple_stmtè¡ïŒ6åïŒ4
ã¿ã€ãïŒsmall_stmtè¡ïŒ6åïŒ4
ã¿ã€ãïŒprint_stmtè¡ïŒ6åïŒ4
ã ã ã
åºåã§ã¯ãåè¡ã¯ããªãŒããŒãã«å¯Ÿå¿ãããã¹ãã¯ã€ã³ãã³ãã§è¡šç€ºãããããŒãã§ã¯å©çšå¯èœãªãã¹ãŠã®æ
å ±ã衚瀺ãããŸãã
äžè¬çã«ãããªãŒã¯éåžžã«ããèŠããŸããè¡ãšåã«é¢ããæ
å ±ããããæ£åŒãªPythonææ³ã«å¯Ÿå¿ããåããŒãã®ã¿ã€ãããããŸãã ããããåé¡ããããŸãã ãŸããã³ãŒãã«ã¯ã³ã¡ã³ãããããŸããããããªãŒã«ã¯ã³ã¡ã³ãããããŸããã 第äºã«ããšã³ã³ãŒãã®è¡çªå·ãšåçªå·ã«é¢ããæ
å ±ã¯æ£ãããããŸããã 第äžã«ããšã³ã³ãŒãã£ã³ã°ã®ååãå€æŽãããŸããã ã³ãŒãã«ã¯latin-1ããããæ§æããªãŒã¯iso-8859-1ãå ±åããŸãã è€æ°è¡ã®æååãªãã©ã«ã®å Žåãåé¡ããããŸããããªãŒã«ã¯è¡çªå·ã«é¢ããæ
å ±ããããŸããã ãããã®é©ãã¯ãã¹ãŠãããªãŒã暪æããã³ãŒãã§èæ
®ããå¿
èŠããããŸãã ãã ãã説æãããŠããåé¡ã¯ãã¹ãŠãããŒãµãŒå
šäœã®è€éãã«æ¯ã¹ãŠãããããªããšã§ãã
æ¡åŒµã¢ãžã¥ãŒã«ã¯ãåŸç¶ã®æ®µéã§Pythonã³ãŒãã«è¡šç€ºãããåãå®çŸ©ããŸãã ã¿ã€ãã¯ãã¯ã©ã¹ãã€ã³ããŒãããã¬ãŒã¯ãªã©ãèªèå¯èœãªãã¹ãŠã®èŠçŽ ã«å¯Ÿå¿ããŸãã åã±ãŒã¹ã«åºæã®ããŒã¿åºæã®ã¡ã³ããŒããã³é¢æ°ã«å ããŠããããã¯ãã¹ãŠããã©ã°ã¡ã³ãã®èŠ³ç¹ããèŠçŽ ãèšè¿°ããããšãç®çãšããŠããŸããã€ãŸããããã¹ãã®å§ãŸããšçµããã§ãã
ããªãŒããã©ããŒã¹ãããšãéå±€æ§é ã圢æãããŸããããã¯ControlFlowã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã§ãããèªèããããã¹ãŠã®èŠçŽ ãå¿
èŠãªæ¹æ³ã§ã¹ã¿ãã¯ãããŸãã
ã³ã¡ã³ãé
æ§æããªãŒã«ã³ã¡ã³ãã«é¢ããæ
å ±ããªãã£ãããïŒã€ã³ã¿ãŒããªã¿ãŒãã³ã¡ã³ããå¿
èŠãšããªãããšã¯æããã§ãïŒãã³ã¡ã³ããæ倱ãªã衚瀺ããããã«å¿
èŠã§ããããããœãŒã¹ã³ãŒãã®è¿œå ãã¹ãå°å
¥ããå¿
èŠããããŸããã ãã®ããã»ãŒãžã§ã¯ãã³ã¡ã³ãã®åè¡ã«é¢ããæ
å ±ãæœââåºãããŸãã ããã¯ç°¡åãªPythonææ³ãšè€æ°è¡ã³ã¡ã³ãã®æ¬ åŠãšããªããã»ããµã®ãããã§ç°¡åã«è¡ããŸãã
ã³ã¡ã³ãã¯ãã©ã°ã¡ã³ãã®ãªã¹ãã®åœ¢åŒã§åéãããŸããåãã©ã°ã¡ã³ãã¯ãäžé£ã®å±æ§ã«ãã£ãŠã³ã¡ã³ãã®1è¡ãèšè¿°ããŸããè¡çªå·ãéå§ãšçµäºã®åçªå·ãã³ã¡ã³ãã®éå§ãšçµäºã®ãã¡ã€ã«å
ã®çµ¶å¯Ÿäœçœ®ã
ããšãã°ãã³ãŒãã®å ŽåïŒ
ãã¥ãŒã®3ã€ã®ãã©ã°ã¡ã³ããåéãããŸãã
LineïŒ1 PosïŒ1 ...
ã©ã€ã³ïŒ2ããžã·ã§ã³ïŒ1 ...
ã©ã€ã³ïŒ5ããžã·ã§ã³ïŒ5 ...
ã³ã¡ã³ããã³ãŒãã¹ãããããšããŒãžãã
ã°ã©ããäœæããå Žåã2ã€ã®ç°ãªãããŒã¿æ§é ïŒå®è¡å¯èœã³ãŒããšã³ã¡ã³ãïŒã§ã¯ãªãã1ã€ãæ±ãæ¹ã䟿å©ã§ãã ããã«ãããã¢ã€ãã ãä»®æ³ãã£ã³ãã¹ã«é
眮ããããã»ã¹ãç°¡åã«ãªããŸãã ãã®ãããæ¡åŒµã¢ãžã¥ãŒã«ã§å¥ã®ã¹ããããå®è¡ãããŸããã³ã¡ã³ããèªèãããèŠçŽ ã«ããŒãžããŸãã
äŸãèããŠã¿ãŸãããïŒ
ã³ã¡ã³ããã³ãŒãã«ããŒãžããäžèšã®ã³ãŒãã®æ§æããªãŒã調ã¹ãçµæãç¹ã«CodeBlockã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãçæãããŸãã ããã«ã¯ãä»ã®ãã£ãŒã«ãã®äžã§ããbodyãleadingCommentãããã³sideCommentãã£ãŒã«ããããããã©ã°ã¡ã³ãã®èŠ³ç¹ãã察å¿ããèŠçŽ ãèšè¿°ããŠããŸãã bodyãã£ãŒã«ãã«ã¯æ§æããªãŒããã®æ
å ±ãå
¥åãããã³ã¡ã³ããã£ãŒã«ãã«ã¯Noneãå«ãŸããŸãã
ããã»ãŒãžã®çµæã«åºã¥ããŠãã³ã¡ã³ããåéããããã«3ã€ã®ãã©ã°ã¡ã³ãã®ãªã¹ããäœæãããŸãã ããŒãžãããšããæåã®ãã©ã°ã¡ã³ãã¯CodeBlockã®leadingCommentãã£ãŒã«ããããã³sideCommentãã£ãŒã«ãã®2çªç®ãš3çªç®ã®ãã©ã°ã¡ã³ãã«å
¥åããããã«äœ¿çšãããŸãã ããŒãžã¯ãäž¡æ¹ã®æ
å ±æºã§å©çšå¯èœãªè¡çªå·ã«åºã¥ããŠããŸãã
ãããã£ãŠãããŒãžã¹ããŒãžã®åºåã«ã¯ãã¡ã¢ãªå
ã®ãã¡ã€ã«ãŸãã¯ãããã¡ã®å
容ã«é¢ããå®å
šã«æºåãããåäžã®éå±€ããŒã¿æ§é ããããŸãã
ã¢ãžã¥ãŒã«æ§èœ
äžèšã®ãã€ãã©ã€ã³ã¹ããŒãžã¯C / C ++ã§èšè¿°ãããŠãããPythonã¢ãžã¥ãŒã«ãšããŠèšèšãããŠããŸãã äžè¬çãªçç±ãããããã¹ããå€æŽããããã«äžæåæ¢ããŠãã€ã¢ã°ã©ã ãåæç»ãããšãã®äžå¿«ãªé
延ãé¿ããããã«ãããããã¹ãŠã®æ®µéã®äœæ¥ãè¿
éã«ãããã£ãã®ã§ãã ããã©ãŒãã³ã¹ããã¹ãããããã«ãã¢ãžã¥ãŒã«ã¯æ¢åã®ãã©ãããã©ãŒã ã§èµ·åãããŸããã
- Intel Core i5-3210Mã©ããããã
- Ubuntu 14.04 LTS
æšæºã®Pythonã€ã³ã¹ããŒã«2.7.6ã®ãã¹ãŠã®ãã¡ã€ã«ãåŠçããŸãã 5707ãã¡ã€ã«ã§ã¯ãåŠçã«çŽ6ç§ããããŸããã ãã¡ããããã¡ã€ã«ã®ãµã€ãºã¯ç°ãªããã¢ãžã¥ãŒã«ã®åäœæéã¯ããã«äŸåããŸããããã¡ã€ã«ãããçŽ1ããªç§ãšããå¹³åçµæã¯æéã®æ©åšã§ã¯ãªãããã蚱容ç¯å²ãè¶
ããŠããããã§ãã å®éã«ã¯ãåŠçããå¿
èŠã®ããããã¹ãã¯ã»ãšãã©ã®å Žåæ¢ã«ã¡ã¢ãªã«ä¿åãããŠããããã£ã¹ã¯æäœã®æéã¯å®å
šã«ãªããªã£ãŠããããããããã©ãŒãã³ã¹ã«ãã©ã¹ã®åœ±é¿ãåãŒããŸãã
ä»®æ³ãã£ã³ãã¹äžã®é
眮
ãã€ãã©ã€ã³ã®ãã®æ®µéã®ç®æšã¯ãå¿
èŠãªãã¹ãŠã®èŠçŽ ãä»®æ³ãã£ã³ãã¹ã«é
眮ãããããã®éã®çžäºæ¥ç¶ãèæ
®ã«å
¥ããããšã§ãã ä»®æ³ãã£ã³ãã¹ã¯ãé·æ¹åœ¢ã®ã»ã«ãæã€ãã£ã³ãã¹ãšããŠæ³åã§ããŸãã ã»ã«ã¯ç©ºã®å Žåãããã1ã€ã®ã°ã©ãã£ãã¯èŠçŽ ãŸãã¯ãã¹ããããä»®æ³ãã£ã³ãã¹ãå«ãå ŽåããããŸãã ãã®æ®µéã§ã¯ãèŠçŽ ã®çžå¯Ÿçãªé
眮ã®ã¿ãéèŠã§ãããæ£ç¢ºãªå¯žæ³ã¯éèŠã§ã¯ãããŸããã
åæã«ããã£ã³ãã¹ã®ãµã€ãºã¯åºå®ãããŠããããå¿
èŠã«å¿ããŠå³äžã«æ¡å€§ã§ããŸãã ãã®ã¢ãããŒãã¯ãæºåãããããŒã¿æ§é ãšãã£ãŒãã®æç»æ¹æ³ã«å¯Ÿå¿ããŠããŸãã ããã»ã¹ã¯å·Šäžé
ããå§ãŸããŸãã å¿
èŠã«å¿ããŠãæ°ããè¡ãšåãè¿œå ãããŸãã ããšãã°ã次ã®ã³ãŒããããã¯ã«æ°ããè¡ãè¿œå ããããããã¯ã«ãµã€ãã³ã¡ã³ããããå Žåã¯æ°ããåãè¿œå ãããŸãã
ã»ã«ã«é
眮ã§ããã°ã©ãã£ãã¯èŠçŽ ã®ã»ããã¯ãèšèªã®èªèå¯èœãªèŠçŽ ã«å°ããªæ¡åŒµåãä»ãããã®ã«ã»ãŒå¯Ÿå¿ããŠããŸãã ããšãã°ãã»ã«ã«ã¯äžããäžã«ã€ãªããã³ãã¯ã¿ãå¿
èŠãªå ŽåããããŸãããèšèªã§ã¯ãã®ãããªèŠçŽ ã¯ãããŸããã
ä»®æ³ãã£ã³ãã¹ã®å Žåããªã¹ãã®ãªã¹ãïŒ2次å
é
åïŒã䜿çšãããŸããããã¯ããã»ã¹ã®éå§æã«ã¯ç©ºã§ãã
ããã»ã¹ã説æããç°¡åãªäŸãèããŠã¿ãŸãããã
a = 10
ãã£ã³ãã¹ã«ã°ã©ãã£ãã¯èŠçŽ ãé
眮ããäžã®åçã®å·ŠåŽã¯ãã³ãŒãåæã®çµæã«ãã£ãŠåœ¢æãããããŒã¿æ§é ã瀺ããŠããŸãã ControlFlowã€ã³ã¹ã¿ã³ã¹ã«ã¯ãããã€ãã®å±æ§ãšã¹ã€ãŒãã³ã³ãããå«ãŸããŸãããã®ã³ã³ããã«ã¯ãCodeBlockã€ã³ã¹ã¿ã³ã¹ãšãã1ã€ã®èŠçŽ ãããããŸããã
åæç¶æ
ã§ã¯ããã£ã³ãã¹ã¯ç©ºã§ãããControlFlowãã€ãã¹ãéå§ãããŸãã ã¢ãžã¥ãŒã«ã¯ãã¹ã³ãŒããã€ãŸã è§äžžé·æ¹åœ¢ã®ãããªã ã€ã³ãã³ããèæ
®ããŠãã°ã©ãã£ãã¯èŠçŽ ã®ãµã€ãºãåŸã§èšç®ããããã«ãã¹ã³ãŒãã®é·æ¹åœ¢ã¯æ¡ä»¶ã«å¿ããŠã³ã³ããŒãã³ãã«åå²ãããŸãïŒé¢ãšè§åºŠã ã¢ãžã¥ãŒã«ã®é·æ¹åœ¢ã®å·Šäžé
ããã€ã¢ã°ã©ã ã®äžçªäžã®é
ã«ããããããã£ã³ãã¹ã«æ°ããè¡ãè¿œå ããè¡ã«1åãè¿œå ããŠãã¹ã³ãŒãã³ãŒããŒã»ã«ã«èŠçŽ ãé
眮ããŸãã åçŽããŒãžã³ã¯ãã§ã«æåã®ã»ã«ãç ç²ã«ããŠãããããé·æ¹åœ¢ã®äžç«¯ãå³ã«é
眮ããããšã¯ã§ããããã£ã³ãã¹ã暪æãã段éã§ã³ãŒããŒã³ãŒããŒãæ€åºãããæç¹ã§ãé·æ¹åœ¢ã¯ãŸã åäžã®å³åœ¢ãšããŠæç»ãããŸãã
次ã®è¡ã«ç§»åããŸãã ã¢ãžã¥ãŒã«ã«ã¯ãèµ·åæååãšãšã³ã³ãŒãã瀺ãããããŒããããŸãã 察å¿ãããã£ãŒã«ãã®å€ã¯Noneã§ãããã¿ã€ãã«ãæç»ããå¿
èŠããããŸãã ãããã£ãŠããã£ã³ãã¹ã«æ°ããè¡ãè¿œå ããŸãã ãã£ãŒãã§ã¯ãã¿ã€ãã«ã¯é·æ¹åœ¢ã®å
åŽã«ãããã«ã€ã³ãã³ããä»ããŠããå¿
èŠããããŸãããã®ãããäœæããè¡ã«ã¿ã€ãã«ãããã«é
眮ããããšã¯ã§ããŸããã æåã®ã»ã«ã«ã¯ãå·Šé¢ã次ã«ã¿ã€ãã«ãé
眮ããå¿
èŠããããŸãã ãããã£ãŠã2ã€ã®åãè¿œå ããæåã«ã¹ã³ãŒããå·Šã«é
眮ãã2çªç®ã«ã¹ã³ãŒãããããŒãé
眮ããŸãã 3çªç®ã®ã»ã«ã«æ£ããé¢ãé
眮ããå¿
èŠã¯ãããŸããã ãŸããæ倧å¹
ã®åã«ããã€ã®åããããã¯ãŸã äžæã§ãã 次ã«ãã³ãŒããŒã³ãŒããŒãæ€åºãããæç¹ã§ãã¹ã³ãŒãã®é·æ¹åœ¢ãå
šäœãšããŠæç»ãããŸãã
ã¢ãžã¥ãŒã«ã«ã¯ããã¥ã¡ã³ãè¡ããããå¥ã®è¡ãå¿
èŠã§ãã ããããããã¥ã¡ã³ãã®è¡ã¯ãããŸããã®ã§ãã¹ã€ãŒãã«è¡ããŸãã ã¹ã€ãŒãã®æåã®èŠçŽ ã¯ã³ãŒãã®ãããã¯ã§ãã æ°ããè¡ãè¿œå ãããã®äžã«å·Šé¢ã®åãè¿œå ããŸãã 次ã«ããã1åè¿œå ããŠãã³ãŒããããã¯ã®ã°ã©ãã£ãã¯èŠçŽ ãã»ã«ã«é
眮ããŸãã ãã®äŸã§ã¯ããããã¯ã«æšªæ¹åã®ã³ã¡ã³ãããããããã¯å³åŽã«é
眮ããå¿
èŠããããããå¥ã®åãè¿œå ããŠæšªæ¹åã®ã³ã¡ã³ããã»ã«ã«é
眮ããŸãã
ã¹ã€ãŒãã«ã¯èŠçŽ ããããªãã®ã§ãä»®æ³ãã£ã³ãã¹ãæºåããããã»ã¹ã¯çµäºããŸãã é·æ¹åœ¢ããã³åºé¢ã®å·Šäžé
ã¯ãäžããã³å³åŽã§èª¬æããã®ãšåæ§ã®çç±ã§è¿œå ã§ããŸããã ã°ã©ãã£ãã¯èŠçŽ ã®å¹ŸäœåŠç寞æ³ãèšç®ããéã«äœãæ瀺ãããŠããããèæ
®ããå¿
èŠãããã ãã§ãã
ã¬ã³ããªã³ã°
ãã€ãã©ã€ã³ã®ãã®æ®µéã®ã¿ã¹ã¯ã¯ãç»é¢ã«æç»ããããã®ãã¹ãŠã®ã°ã©ãã£ãã¯ããªããã£ãã®ãµã€ãºãèšç®ããããšã§ãã ããã¯ãé
眮ããããã¹ãŠã®ã»ã«ããã©ããŒã¹ããå¿
èŠãªãµã€ãºãèšç®ããŠã»ã«å±æ§ã«ä¿åããããšã«ããè¡ãããŸãã
åã»ã«ã«ã¯ã2ã€ã®èšç®ãããå¹
ãš2ã€ã®é«ãããããŸã-é£æ¥ããã»ã«ã®ãµã€ãºãèæ
®ããŠãå¿
èŠæå°éã§å®éã«å¿
èŠã§ãã
æåã«ãé«ãã®èšç®æ¹æ³ã«ã€ããŠèª¬æããŸãã ããã¯è¡ããšã«çºçããŸãã 代å
¥æŒç®åã«å¯Ÿå¿ããèŠçŽ ãå«ãè¡ãæ€èšããŠãã ããã ããã§ã代å
¥æŒç®åã1ã€ã®ããã¹ãè¡ãå æããã³ã¡ã³ãã2ã€ãããããšãããããŸãã ããã¯ãã¬ã³ããªã³ã°æã«ã³ã¡ã³ãã»ã«ãç»é¢äžã«ããå€ãã®åçŽãã¯ã»ã«ãå¿
èŠãšããããšãæå³ããŸãã äžæ¹ãè¡ã®ãã¹ãŠã®ã»ã«ã¯åãé«ãã§ãªããã°ãªããŸãããããã§ãªãå Žåãäžã®ã»ã«ã¯ãªãã»ããä»ãã§æç»ãããŸãã ããã¯ãåçŽãªã¢ã«ãŽãªãºã ãæå³ããŸãã è¡å
ã®ãã¹ãŠã®ã»ã«ãåã£ãŠãåæå°é«ããèšç®ããå¿
èŠããããŸãã 次ã«ãèšç®ããã°ããããæ倧å€ãéžæããå®éã«å¿
èŠãªé«ããšããŠä¿åããŸãã
ããå°ãè€éãªã®ã¯ãã»ã«ã®å¹
ãèšç®ããç¶æ³ã§ãã ãã®èŠ³ç¹ãããæååã«ã¯2ã€ã®ã¿ã€ãããããŸãã
- é£æ¥ããè¡ã®ã»ã«ã®å¹
ãèæ
®ããŠå¹
ãèšç®ããå¿
èŠããããã®
- é£æ¥ããè¡ã«é¢ä¿ãªãã»ã«å¹
ãèšç®ã§ãããã®
äŸåæååã®è¯ãäŸã¯ifã¹ããŒãã¡ã³ãã§ãã æ¡ä»¶ãããã¯ã®äžã«æç»ããããã©ã³ãã¯ãä»»æã®è€éãã§ããããã£ãŠä»»æã®å¹
ã«ããããšãã§ããŸãã ãããŠãå³ã«æç»ããå¿
èŠããã2çªç®ã®ãã©ã³ãã«ã¯ãäžã®è¡ã«ããæ¡ä»¶ãããã¯ããã®ã³ãã¯ã¿ãŒããããŸãã ããã¯ãäžã®ç·ã«å¿ããŠã³ãã¯ã¿ã»ã«ã®å¹
ãèšç®ããå¿
èŠãããããšãæå³ããŸãã
ãããã£ãŠãç¬ç«ããã©ã€ã³ã®å Žåãå¹
ã¯1åã®ãã¹ã§èšç®ãããæå°å¹
ã¯å®éã®å¹
ãšåãã§ãã
åŸå±è¡ã®é åã®å Žåãã¢ã«ãŽãªãºã ã¯ããè€éã§ãã æåã«ãé åå
ã®ãã¹ãŠã®ã»ã«ã®æå°å¹
ãèšç®ãããŸãã 次ã«ãååã®å®éã®å¹
ã¯ãé ååã®ãã¹ãŠã®ã»ã«ã«å¿
èŠãªæå°å¹
ã®æ倧å€ãšããŠèšç®ãããŸãã ã€ãŸããç·ã®é«ããèšç®ããããã«è¡ããããã®ãšéåžžã«äŒŒãŠããŸãã
ãã¹ããããä»®æ³ãã£ã³ãã¹ã®èšç®ã¯ååž°çã«è¡ãããŸãã èšç®äžã«ãéžæãããã©ã³ãã®ã¡ããªãã¯ãããŸããŸãªã»ã«ã®ãã£ãŒã«ããããã¹ãããŒãžã³ãªã©ãããŸããŸãªèšå®ãèæ
®ãããŸãã ãã§ãŒãºãå®äºãããšãã°ã©ãã£ãã¯ããªããã£ããæ¢ã«ã¹ã¯ãªãŒã³ãã£ã³ãã¹ã«é
眮ããããã«å¿
èŠãªãã®ããã¹ãŠæºåãããŠããŸãã
æç»
æç»ã®æ®µéã¯éåžžã«ç°¡åã§ãã QTã©ã€ãã©ãªã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«äœ¿çšããããããåã®æé ã§èšç®ããã寞æ³ã§ã°ã©ãã£ãã¯ã·ãŒã³ãäœæãããŸãã 次ã«ãä»®æ³ãã£ã³ãã¹ã®ååž°ãã¢ãŒãå®è¡ãããå¿
èŠãªåº§æšãæã€å¿
èŠãªèŠçŽ ãã°ã©ãã£ãã¯ã·ãŒã³ã«è¿œå ãããŸãã
èµ°æ»ããã»ã¹ã¯å·Šäžé
ããå§ãŸããçŸåšã®åº§æšã¯0ã0ã«èšå®ãããŸãã次ã«ãåã»ã«ãåŠçããåŸãã©ã€ã³ããã€ãã¹ãããçŸåšã®x座æšã«å¹
ãè¿œå ãããŸãã 次ã®è¡ã«ç§»åãããšãx座æšã¯0ã«ãªã»ãããããåŠçãããã°ããã®è¡ã®é«ããy座æšã«è¿œå ãããŸãã
ããã§ãã³ãŒãã«ãã£ãŠã°ã©ãã£ãã¯ãååŸããããã»ã¹ãå®äºããŸããã
çŸåšãšæªæ¥
次ã«ããã§ã«å®è£
ãããŠããæ©èœãšä»åŸè¿œå ã§ããæ©èœã«ã€ããŠèª¬æããŸãã
äœãè¡ãããã®ãªã¹ãã¯ããªãçãã§ãïŒ
- ã³ãŒãå€æŽã®äžæåæ¢äžã®èªåãã£ãŒãæŽæ°ã
- åæ¹åã®å¯èŠããã¹ããšã°ã©ãã£ãã¯ã®æååæã å
¥åãã©ãŒã«ã¹ãããã¹ããšãã£ã¿ãŒã«ãããç¹å¥ãªããŒã®çµã¿åãããæŒãããå Žåããã€ã¢ã°ã©ã ã¯çŸåšã®ã«ãŒãœã«äœçœ®ã«æãè¿ãããªããã£ããæ€çŽ¢ããŸãã 次ã«ãããªããã£ãã匷調衚瀺ããããã£ãŒããã¹ã¯ããŒã«ããŠããªããã£ãã衚瀺ãããŸãã éæ¹åã§ã¯ãããªããã£ããããã«ã¯ãªãã¯ããŠåæãå®è¡ããŸããããã«ãããããã¹ãã«ãŒãœã«ãç®çã®ã³ãŒãè¡ã«ç§»åããå¿
èŠã«å¿ããŠããã¹ããšãã£ã¿ãŒãã¹ã¯ããŒã«ãããŸãã
- ã¹ã±ãŒãªã³ã°ãã£ãŒãã çŸåšã®å®è£
ã§ã¯ãçµã¿èŸŒã¿ã®QTã©ã€ãã©ãªã¹ã±ãŒãªã³ã°ããŒã«ã䜿çšããŠããŸãã å°æ¥çã«ã¯ããã©ã³ããµã€ãºãå€æŽãããã¹ãŠã®èŠçŽ ã®ãµã€ãºãåèšç®ããããšã«ãããã¹ã±ãŒãªã³ã°ã«çœ®ãæããäºå®ã§ãã
- ã°ã©ããPDFãPNGãSVGã«ãšã¯ã¹ããŒãããŸãã åºåããã¥ã¡ã³ãã®å質ã¯QTã©ã€ãã©ãªã®å®è£
ã«ãã£ãŠæ±ºãŸããŸããããã¯ããã®æ©èœã«äœ¿çšãããã®ã¯ãŸãã«ãã®ããŒã«ã ããã§ãã
- ã¹ã³ãŒãããã²ãŒã·ã§ã³ãã€ã³ã ã°ã©ãã£ãã¯ã¹ã¯ã¹ã³ãŒãã®æŠå¿µãå€çšãããããäžè¬çãªãã€ã¢ã°ã©ã ã«ã¯å€ãã®ãã¹ããããé åãå«ãŸããŸãã ããã²ãŒã·ã§ã³ããŒã«ã¯ãã°ã©ãã£ãã¯ã·ãŒã³äžã®ããŠã¹ã«ãŒãœã«ã®çŸåšäœçœ®ã®ãã¹ããããã¹ã³ãŒãã«é¢ããçŸåšã®ãã¹ã衚瀺ãããŸãã
- ifã¹ããŒãã¡ã³ãã®ãã©ã³ãã®é
眮ãåå¥ã«åãæ¿ããŸãã ããã©ã«ãã§ã¯ãNãã©ã³ããäžã«æç»ãããYãã©ã³ããå³ã«æç»ãããŸãã ãã®å³ã§ã¯ãæ¡ä»¶ãããã¯ã®ã³ã³ããã¹ãã¡ãã¥ãŒã䜿çšããŠãã©ã³ãã®å Žæã亀æã§ããŸãã
- ã°ã©ãã£ãã¯ããªããã£ãã®ããã¹ããåå¥ã«çœ®ãæããŸãã ãããã¯ã®ããã¹ããä»»æã®ããã¹ãã«çœ®ãæãããå ŽåããããŸãã ããšãã°ãå€æ°ãšé¢æ°åŒã³åºãã«é¢ããæ¡ä»¶ã¯é·ãããŸã£ããæããã§ã¯ãªãå ŽåããããŸãããèªç¶èšèªã®ãã¬ãŒãºã¯äœãèµ·ãã£ãŠãããããããã説æã§ããŸãã ã°ã©ãã䜿çšãããšã衚瀺ãããŠããããã¹ããä»»æã®ããã¹ãã«çœ®ãæããããšãã§ããããŒã«ãããã«ãœãŒã¹ã衚瀺ãããŸãã
- ããªããã£ãã®è²ãåå¥ã«çœ®ãæããŸãã ã°ã©ãã£ãã¯ããªããã£ãã匷調衚瀺ããŠãã³ãŒãã®ä»»æã®éšåã«æ³šæãåŒããããšããèŠæãããå ŽåããããŸãã ããšãã°ãæœåšçã«å±éºãªé åãèµ€ã§åŒ·èª¿è¡šç€ºããããå
šäœçãªæ©èœãæ
åœããèŠçŽ ã«å
±éã®è²ãéžæãããã§ããŸãã ãã®å³ã§ã¯ãããªããã£ãã®èæ¯ããã©ã³ããããã³ã¹ãããŒã¯ã®è²ãå€æŽã§ããŸãã
å®è·µã瀺ãããã«ãæ¢ã«å®è£
ãããŠããããªããã£ãã®åã
ã®å€æŽãçµã¿åãããŠäœ¿çšââãããšããã€ã¢ã°ã©ã ã®å€èŠ³ã倧å¹
ã«å€ããå¯èœæ§ããããŸãã
æ¢åã®ãã¬ãŒã ã¯ãŒã¯ãè£å®ã§ããå¯èœæ§ã¯ãæ³ååã«ãã£ãŠã®ã¿å¶éãããŸãã æãæãããªãã®ãããã«ãªã¹ãããŸãã
- ã¹ã¯ããŒã«æã®ããã¹ããšã°ã©ãã£ãã¯ã®èªååæã
- ãã£ãŒãã®ç·šéã®ãµããŒãïŒãããã¯ã®åé€ã移åãè¿œå ã åã
ã®ãããã¯å
ã®ããã¹ããç·šéããŸãã ãããã¯ãã³ããŒããŠè²Œãä»ããŸãã
- ãããã¯ã䜿çšããã°ã«ãŒãæäœã®ãµããŒãã
- ãã£ãŒãã®èŠèŠåããããã°ããŸãã å°ãªããšãçŸåšã®ãããã¯ãšãã®äžã®çŸåšã®è¡ã®ãã€ã©ã€ãã
- ãã£ãŒãæ€çŽ¢ããµããŒãããŸãã
- å°å·ãµããŒãã
- ããŸããŸãªèŠçŽ ã®é衚瀺/衚瀺ã®ç®¡çïŒã³ã¡ã³ããããã¥ã¡ã³ãè¡ãé¢æ°æ¬äœãã¯ã©ã¹ãã«ãŒããªã©ã
- ããŸããŸãªã¿ã€ãã®ã€ã³ããŒãã®åŒ·èª¿è¡šç€ºïŒãããžã§ã¯ãå
ãã·ã¹ãã å
ãæªç¢ºèªã
- ãã€ã¢ã°ã©ã äžã®è¿œå ã®éèšèªãããã¯ãŸãã¯ç»åã®ãµããŒãã
- ã¹ããŒãã¹ã±ãŒãªã³ã°ã ããã€ãã®åºå®ã¬ãã«ã®ã¹ã±ãŒã«ãå
¥åã§ããŸãããã¹ãŠã®èŠçŽ ãã³ã¡ã³ããšããã¥ã¡ã³ããŒã·ã§ã³è¡ãªããã¯ã©ã¹ãšé¢æ°ããããŒã®ã¿ããµããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«éã®äŸåé¢ä¿ãå€éšãªã³ã¯ãžã®ãã€ã³ã¿ãŒã ãã®åäœãä»»æã®ä¿®é£Ÿåã䜿çšããŠããŠã¹ãã€ãŒã«ã«ä¿®æ£ãããšãéåžžã«è¿
éã«æŠèŠæ
å ±ãååŸã§ããŸãã
- è€æ°ã®ãããã¯ã1ã€ã«ãŸãšããŠããŒã«ããã¯ããŸãã å
±åã¿ã¹ã¯ãå®è¡ãããããã¯ã®ã°ã«ãŒãã¯ããã€ã¢ã°ã©ã äžã§åŒ·èª¿è¡šç€ºãããç¬èªã®ã°ã©ãã£ãã¯ã¹ãšããã¹ããæäŸããã1ã€ã®ãããã¯ã«æããããããšãã§ããŸãã ããã§ã®èªç¶ãªå¶éã¯ãã°ã«ãŒãã«ã¯1ã€ã®å
¥åãš1ã€ã®åºåãå¿
èŠã§ããããšã§ãã ãã®ãããªæ©èœã¯ãæªç¥ã®ã³ãŒããæäœãããšãã«äŸ¿å©ã«ãªãå ŽåããããŸãã è€æ°ã®ãããã¯ãé
眮ãããŠããããšãç解ããå Žåã¯ãã°ã«ãŒããçµã¿åãããŠãããšãã°ãMD5èšç®ããªã©ã®ç®çã®çœ²åãæã€1ã€ã®ãããã¯ã«çœ®ãæããããšã§ããã€ã¢ã°ã©ã ã®è€éãã軜æžã§ããŸãã ãã¡ããããã€ã§ã詳现ã«æ»ãããšãã§ããŸãã ãã®é¢æ°ã¯ããã€ã¢ã°ã©ã ã®3çªç®ã®æ¬¡å
ã®å°å
¥ãšèŠãªãããšãã§ããŸãã
CML v.1
åã®ã»ã¯ã·ã§ã³ã«ãªã¹ããããæ©èœã¯ã2ã€ã®ã°ã«ãŒãã«åé¡ã§ããŸãã
- ã³ãŒãã«é¢é£ããæ
å ±ã®ä¿åãèŠæ±ããã
- å®å
šã«ã³ãŒãã«äŸåããŸããã
ããšãã°ãã¹ã±ãŒãªã³ã°æ©èœã¯ã³ãŒãããå®å
šã«ç¬ç«ããŠããŸãã çŸåšã®ã¹ã±ãŒã«ã¯ãçŸåšã®IDEèšå®ãšããŠä¿åããå¿
èŠããããŸãã
äžæ¹ããã©ã³ãã¹ã€ããã³ã°ãç¹å®ã®ãªãã¬ãŒã¿ã«é¢é£ä»ããããŠããå Žåãããã«é¢ããæ
å ±ã¯äœããã®æ¹æ³ã§ä¿åããå¿
èŠããããŸãã çµå±ã®ãšããã次ã®ã»ãã·ã§ã³ã§ã¯ã以åã«èŠå®ããããšããã«æç»ããå¿
èŠããããŸãã
æããã«ãè¿œå æ
å ±ãä¿åããã«ã¯2ã€ã®æ¹æ³ããããŸãããœãŒã¹ããã¹ãã«çŽæ¥ä¿åããããå¥ã®ãã¡ã€ã«ã«ä¿åããããããã«ã¯å€æ°ã®ãã¡ã€ã«ã«ä¿åãããã§ãã
決å®ãäžãéã次ã®èæ
®äºé
ãèæ
®ãããŸããã- éçºè
ã®ããŒã ããããžã§ã¯ãã«åãçµãã§ãããäžéšã®éçºè
ãã³ãŒãã衚瀺ããã°ã©ãã£ã«ã«æ©èœãããŸã䜿çšããŠãããšæ³åããŠãã ããããŸããã³ãŒããæäœããããã®åºæ¬çãªèæ
®äºé
ã®ä»ã®éšåã§ã¯ãvimã®ã¿ã䜿çšããŸãããã®å Žåãè¿œå æ
å ±ãã³ãŒããšã¯å¥ã«ä¿åãããŠããå Žåãç°ãªããã£ã³ãã®ã¡ã³ããŒã«ãã代æ¿ã³ãŒãç·šéäžã®äžè²«æ§ã¯ãäžå¯èœã§ã¯ãªãã«ããŠããéåžžã«å°é£ã§ãã確ãã«ãè¿œå æ
å ±ã¯ããæç¹ã§ééã£ãŠããããšãããããŸãã
- è¿œå ã®ãã¡ã€ã«ã®ã¢ãããŒããéžæãããå Žåããããžã§ã¯ãã®ã³ã³ãã³ããæ£ããããããŒãžã§ã³ç®¡çã·ã¹ãã ã§äœæ¥ãããšãã«ããŒã ã®è¿œå ã®åªåãå¿
èŠã«ãªããŸãã
- éçºè
ãè¿œå ã®ããŒã¯ã¢ãããå°å
¥ããå Žå-ããšãã°ãç解ã§ããªãæ¡ä»¶ã®é·ãã³ãŒããé©åãªãã¬ãŒãºã«çœ®ãæããå Žå-ããã¯æ¥œãã¿ã®ããã§ã¯ãããŸãããããã®ãããªããŒã¯ã¢ããã¯è²Žéã§ãããã®ãããªçŸãã圢ã§ãªããŠããã°ã©ãã£ãã¯ã¹ã䜿çšããªã人ããã®å€ã䜿çšã§ããããã«ããŠãããšäŸ¿å©ã§ãã
ãããã£ãŠãè¿œå æ
å ±ããœãŒã¹ããã¹ããšãšãã«ãã¡ã€ã«ã«çŽæ¥ä¿åããããã®ã³ã³ãã¯ããªãœãªã¥ãŒã·ã§ã³ãããå Žåã¯ãããã䜿çšããããšããå§ãããŸãããã®ãããªè§£æ±ºçãèŠã€ãããCMLïŒCodimension Markup LanguageãšåŒã°ããŸãããCMLã¯ãPythonã³ã¡ã³ãã䜿çšãããã€ã¯ãããŒã¯ã¢ããèšèªã§ããåCMLã³ã¡ã³ãã¯ã1ã€ä»¥äžã®é£æ¥ããè¡ã§æ§æãããŸããæåã®è¡ã®åœ¢åŒã¯æ¬¡ã®ããã«éžæãããŸãã
ãããŠãç¶ç¶è¡ã®åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
ãªãã©ã«cmlããã³cml +ã¯ãCMLã³ã¡ã³ããä»ãšåºå¥ãããã®ã§ããæŽæ°ã§ããããŒãžã§ã³ã¯ãCMLãé²åããå Žåã«å°æ¥å°å
¥ãããŸãããã¿ã€ãã¯ãã³ã¡ã³ãããã£ãŒãã«ã©ã®ããã«åœ±é¿ãããã決å®ããŸãã䜿çšãããã¿ã€ãã¯ãrtïŒããã¹ãã®çœ®æã®ç¥ïŒãªã©ã®æååèå¥åã§ããkey = valueã®ãã¢ã¯ãå¿
èŠãªãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã説æããæ©äŒãæäŸããŸããã芧ã®ãšããããã®ãã©ãŒãããã¯ã·ã³ãã«ã§äººéãèªã¿ããã圢åŒã§ãããããã£ãŠãIDEã䜿çšãããšãã ãã§ãªããããã¹ãã衚瀺ãããšãã«ããè¿œå ã®æçšãªæ
å ±ãæœåºããå¯èœæ§ã®èŠä»¶ãæºããããŸããããã«ãã°ã©ãã£ãã¯ã¹ã䜿çšãã人ãšäœ¿çšããªã人ãšã®éã®å¯äžã®èªçºçãªåæã¯ãCMLã³ã¡ã³ããç Žããªãããšã§ããCMLïŒããã¹ã眮æ
ããã¹ãã眮æããããã®CMLã³ã¡ã³ãã®èªèã¯æ¢ã«å®è£
ãããŠããŸãããããã¯ã®åã®å
é ã®ã³ã¡ã³ããšããŠè¡šç€ºãããå ŽåããããŸããäŸïŒ
ããã¹ããå€æŽãããã³ãŒããããã¯GUIããã®ãµããŒãã¯ãŸã ãããŸããããã®ãããªã³ã¡ã³ãã¯ãããã¹ããšãã£ã¿ãŒããã®ã¿è¿œå ã§ããŸããtextãã©ã¡ãŒã¿ã®ç®çã¯éåžžã«æçœã§ãããrtã¿ã€ãã¯ãreplace textã®ç¥èªã«åºã¥ããŠéžæãããŸããCMLïŒãã©ã³ãã¹ã€ããã³ã°ã®å Žå
ãã©ã³ããæ¢ã«å®è£
ãããŠããå Žåãåãæ¿ããããã®CMLã³ã¡ã³ããèªèããŸãããµããŒãã¯ãããã¹ãåŽãšã°ã©ãã£ãã¯ã¹åŽã®äž¡æ¹ã§è¡ãããŸããæ¡ä»¶ãããã¯ã®ã³ã³ããã¹ãã¡ãã¥ãŒããã³ã¡ã³ããéžæãããšãã³ã¡ã³ããã³ãŒãã®é©åãªå Žæã«æ¿å
¥ããããã£ãŒããå床çæãããŸãã
Nåå²ãå³åŽã«ããifã¹ããŒãã¡ã³ãäžèšã®äŸã§ã¯ãNåå²ã¯æ¡ä»¶ã®å³åŽã«æãããŠããŸãããã®CMLã³ã¡ã³ãã¯ãã©ã¡ãŒã¿ãŒãå¿
èŠãšããªãããšãããããŸãããããŠããã®ã¿ã€ãswã¯ãåèªã¹ã€ããã®ç¥èªã«åºã¥ããŠéžæãããŸããCMLïŒè²ã®å€æŽ
è²ã®å€æŽã«é¢ããCMLã³ã¡ã³ãã®èªèã¯æ¢ã«å®è£
ãããŠããŸãããããã¯ã®åã®å
é ã®ã³ã¡ã³ããšããŠè¡šç€ºãããå ŽåããããŸããäŸïŒ
åå¥ã®è²ã§ãããã¯ïŒèæ¯ïŒèæ¯ãã©ã¡ãŒã¿ãŒïŒããã©ã³ãè²ïŒåæ¯ãã©ã¡ãŒã¿ãŒïŒãããã³é¡ã®è²ïŒå¢çç·ãã©ã¡ãŒã¿ãŒïŒã®è²ã®å€æŽããµããŒãããŸããccã¿ã€ãã¯ãã«ã¹ã¿ã ã«ã©ãŒãšããèšèã®ç¥èªã«åºã¥ããŠéžæãããŸããGUIããã®ãµããŒãã¯ãŸã ãããŸããããã®ãããªã³ã¡ã³ãã¯ãããã¹ããšãã£ã¿ãŒããã®ã¿è¿œå ã§ããŸããCMLïŒã°ã«ãŒãã®æãããã¿
çŸåšããã®ã¿ã€ãã®ã³ã¡ã³ãã¯ãµããŒããããŠããŸããããæ©èœãå®è£
ããæ¹æ³ã¯ãã§ã«æããã§ããã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã¯æ¬¡ã®ãšããã§ãããŠãŒã¶ãŒã¯å¶éãèæ
®ããŠããã€ã¢ã°ã©ã äžã®ãããã¯ã®ã°ã«ãŒããéžæããŸããã°ã«ãŒãã«ã¯1ã€ã®å
¥åãš1ã€ã®åºåããããŸãã次ã«ãã³ã³ããã¹ãã¡ãã¥ãŒããé
ç®ãéžæããŸãïŒã°ã«ãŒãã«çµåããŸãã次ã«ããŠãŒã¶ãŒã¯ã°ã«ãŒãã®ä»£ããã«æç»ãããããã¯ã®ã¿ã€ãã«ãå
¥åããŸããå
¥åã®æåŸã«ããã£ãŒãã¯æŽæ°ããã圢åŒã§åæç»ãããŸããæããã«ãåäžã®ãšã³ãã£ãã£ãšããŠã®ã°ã«ãŒãã®å Žåãã³ãŒãã«ã¯éå§ç¹ãšçµäºç¹ããããŸãããããã£ãŠã次ã®ãããªå Žæã«CMLã³ã¡ã³ããæ¿å
¥ã§ããŸãã
ããã§ã¯ãã°ã«ãŒãã®äœææã«uuidãã©ã¡ãŒã¿ãèªåçã«çæãããŸãããã¹ãã¬ãã«ã¯ããã€ã§ããããããã°ã«ãŒãã®éå§ãšçµäºã®ãã¢ãæ£ããèŠã€ããããã«å¿
èŠã§ããtitleãã©ã¡ãŒã¿ãŒã®ç®çã¯æããã§ã-ããã¯ãŠãŒã¶ãŒãå
¥åããããã¹ãã§ããã¬ã³ãŒãã¿ã€ãgbãšgeã¯ãããããã°ã«ãŒãéå§ãšã°ã«ãŒãçµäºãšããåèªã®ç¥èªã®ç®çã§å°å
¥ãããŸãããuuidã䜿çšãããšãããŸããŸãªãšã©ãŒã蚺æããããšãã§ããŸããããšãã°ãããã¹ããç·šéããçµæãCMLã³ã¡ã³ãã®ãã¢ã®1ã€ãåé€ãããå¯èœæ§ããããŸããuuidã䜿çšã§ãããã1ã€ã®ã±ãŒã¹ã¯ãIDEã°ã«ãŒãã«ä¿åããããšã§ããIDEã°ã«ãŒãã¯ã次ã®ã»ãã·ã§ã³ã§æå°åãããããã«è¡šç€ºãããå¿
èŠããããŸããå¯äœçš
ãã®ããŒã«ã䜿çšããå®è·µã«ããããã®æè¡ã«ã¯ãåæéçºæã«ã¯ãŸã£ããèæ
®ãããªãã£ãèå³æ·±ãå¯äœçšãããããšãããããŸããã第äžã«ãçæãããå³ãããã¥ã¡ã³ãåããã³ååãšã®è°è«ã«äœ¿çšãããšäŸ¿å©ã§ããããšãããããŸãããå€ãã®å Žåãããã°ã©ãã³ã°ã«é¢ä¿ããªãããäž»é¡åéã®å°é家ã§ãããã®ãããªå Žåãå®è¡ãããããšãæå³ããŠããªãããã¢ã¯ã·ã§ã³ã®ããžãã¯ã«å¯Ÿå¿ããPythonã®æ£åŒãªæ§æã«å¯Ÿå¿ããã³ãŒããæºåãããŸãããçæããããã£ãŒãã¯ãããã¥ã¡ã³ãã«æ¿å
¥ãããããå°å·ãããŠè°è«ãããŸãããããžãã¯ãç°¡åã«å€æŽã§ãããšããè¿œå ã®å©äŸ¿æ§ãæããã«ãªããŸãã-ã°ã©ãã¯å¿
èŠãªãã¹ãŠã®ã€ã³ãã³ãã§å³åº§ã«åæç»ãããã°ã©ãã£ãã¯ã䜿çšããæåæäœãå¿
èŠãšããã«èª¿æŽãããŸãã第äºã«ãèå³æ·±ãçŽç²ã«å¿ççãªå¹æãçŸããŸãããéçºè
ã¯ãCodimensionã䜿çšããŠç¬èªã®é·æã³ãŒããéãããšããããã€ã¢ã°ã©ã ããããã«èŠããããšã«æ°ã¥ããŸãã-è€éãããããçŽããããã§ãããããŠãããæŽç·Žãããå³ãåŸãããã«ã圌ã¯ããã¹ãã«å€æŽãå ããå®éã«ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ãšåçŽåãå®è¡ããŸãããããã«ãããç解ã®è€éãã軜æžãããã³ãŒããããã«ãµããŒããããŸãã第äžã«ãPythonåãã«éçºãè¡ããããšããäºå®ã«ããããããããã®æè¡ã¯ä»ã®ããã°ã©ãã³ã°èšèªã«ãæ¡åŒµã§ããå¯èœæ§ããããŸãã Pythonã¯ããã€ãã®çç±ãããã¹ãã®å ŽãšããŠéžã°ããŸãããèšèªã¯äººæ°ããããŸãããåæã«æ§æçã«ã·ã³ãã«ã§ããè¬èŸ
ãã®ãããžã§ã¯ãã®äœæ¥ãæäŒã£ãŠããããã¹ãŠã®äººã«æè¬ããããšæããŸããååã®Dmitry KazimirovãIlya LoginovãDavid Makelhaniãããã³Sergey FukanchikããããŸããŸãªæ®µéã§ã®éçºã®ããŸããŸãªåŽé¢ãæ¯æŽããŠãããããšã«æè¬ããŸããCodimension IDEã§ã®äœæ¥ã§äœ¿çšãããPythonãªãŒãã³ãœãŒã¹ããã±ãŒãžã®äœæè
ããã³éçºè
ã«æè¬ããŸãã