éºä¼åãã¢ãã¼ãã«ããè¨èªãGenomyããä½ãã¾ãã
æè¿ã3å¹´ãããåã«æ¸ãããããããä¾ã®ããã¸ã§ã¯ãã«ã¤ãã¦è¨åããããã«ã¤ãã¦Twitterã§è¨åããã£ãã®ã§æãåºãã¾ããããæ¡ä»¶ãæºããããã®ããã¹ã¦å¼ã³åºããã¨ããè¨è¨ææ³ã§ããã°ã©ã ãæ¸ãã¦ãã¾ãã¨ããç¹ã«ã¤ãã¦æå¤ã¨ã¿ããªãã³ã¨æ¥ãªãã¿ããã ããã³ã³ã»ãããã«ã¼ããå®è£ ãã¦ã¿ããã¨æã£ã¦ãããã§ããã
ã¨ãã訳ã§ä½ãã¾ãããhttps://github.com/nishio/genomy
解説
ãéºä¼åã¯ã¿ã³ãã¯è³ªã®è¨è¨å³ãã¨ããã¨ããã¾ã§ã¯æç§æ¸ãªã©ã§ãããè¨åããã¾ããã§ãããã®è¨è¨å³ã«ã¯ãã©ãããç¶æ³ã«ãªã£ããä½ãã¹ããããã©ãããç¶æ³ã§ã¯ä½ãã¹ãã§ã¯ãªãããã¨ããæ å ±ãæ¸ããã¦ãã¾ãã
ãã®ãä½ãã¹ãã§ã¯ãªãã(çºç¾ã®æå¶)ãã©ãå®ç¾ããã¦ããããã¶ãã¯ãªèª¬æãã¾ããããä½ã®ä¸ã«ããã¿ã³ãã¯è³ªãããã¨ããããããéºä¼åã®å¨è¾ºã«ã¸ã°ãã¤ãããã®éºä¼åããã¿ã³ãã¯è³ªãä½ãéç¨ãéªéãã¾ããããã«ãã£ã¦ãã®éºä¼åããã¯ã¿ã³ãã¯è³ªãä½ããã¨ãã§ããªããªãã¾ãã
ã¤ã¾ãããã®éªéãããã¿ã³ãã¯è³ªãSãéªéãããã¿ã³ãã¯è³ªãPã¨ããã°ãSããªãã¨ãã ãPãä½ãããSãããã¨ãã«ã¯Pãä½ãããªãã¨ãããã¨ã«ãªãã¾ããã¤ã¾ãP := not(S)ã§ãããã®ä»çµã¿ã使ã£ã¦è«çå¦å®ãå®è£ ã§ãã¾ãã
éã«ãããã¿ã³ãã¯è³ªEã¯éºä¼åã®å¨è¾ºã«ã¸ã°ãã¤ãã¦ããã®éºä¼åã®çºç¾ãé«ãããã¨ãã§ãã¾ããããã¿ã³ãã¯è³ªE1ãããã¨ãã«ã¯ã¿ã³ãã¯è³ªPãããããä½ããããããã¦ã¿ã³ãã¯è³ªE2ãããã¨ãã«ãã¿ã³ãã¯è³ªPãããããä½ããããã¨ããä»çµã¿ã«ããã°ãããã¯ã¤ã¾ãP := E1 or E2ã§ãããã®ä»çµã¿ã使ã£ã¦è«çåãå®è£ ã§ãã¾ãã
è«çåã¨è«çå¦å®ãããã°åå ç®å¨ãå®è£ ã§ãã¾ãããï¼åå ç®å¨ã®ãµã³ãã«ï¼https://github.com/nishio/genomy/blob/master/sample/half_adder.gnm
çå½ã¯ãã®ãããªä»çµã¿ã使ã£ã¦ãå¤é¨ããã®åºæ¿ã«å¯¾ããå¿çã ã¨ããè¤éãªä½ã®æ§é ã®æ§ç¯ãªã©ãããã°ã©ãã³ã°ãã¦ããããã§ãã
ã§ã¯å®éã«ããã°ã©ã ãåããã¦ã¿ã¾ããããsample/hello.gnmã®éºä¼åãæã£ãçç©ããã¿ã³ãã¯è³ªSTARTãå«ãã ç°å¢ã«ããã¦ã¿ã¾ãã
genomy$ python2.7 main.py -f sample/hello.gnm START 0 START 1 OUT_H 2 OUT_E 3 OUT_L 4 OUT_L SUP_L 5 OUT_O SUP_L SUP_O 6 7 8 9 10
ã¯ããSTARTã®åºæ¿ã«å¿çãã¦HELLOã¨åºåããã¾ãããã§ã¯éºä¼åãè¦ã¦ã¿ã¾ãããã
+START :OUT_H +OUT_H :OUT_E +OUT_E :OUT_L -SUP_L +OUT_L :OUT_L +OUT_L :SUP_L -SUP_O +SUP_L :OUT_O :SUP_O
STARTã®åºæ¿ãããã¨ããã®çç©ã®ä½å ã§ã¯OUT_Hãä½ããå§ãã¾ããOUT_Hã®åºæ¿ã§OUT_Eãä½ãããOUT_Eã®åºæ¿ã§OUT_Lãä½ããã¾ããOUT_Lã®åºæ¿ã§OUT_Lãä½ãã¨ãOUT_Lããã£ã¨ä½ããã£ã±ãªãã«ãªã£ã¦ãã¾ãã®ã§ããããæå¶ããã¿ã³ãã¯SUP_Lãä½ã£ã¦æå¶ãã¦ãã¾ãããã®OUT_Lã¨ãSUP_Lã¨ãã¯äººéãããããããããã«ã¤ããã ãã®èå¥åã§ãå®éã®å¶å¾¡ã¯ãã®é ã«ä»ãã¦ãã+ã¨-ã¨:ã§æ±ºã¾ã£ã¦ãã¾ãã:ã§å§ã¾ãèå¥åããä½ãããã¿ã³ãã¯è³ªãã§ã+ã¨-ã¯ãã¾ããæ³åéãã§ãããã
ãã®ã³ã¼ããèªãä¸ã§éè¦ãªãã¤ã³ãã¯ãè¡ã®é åºãå ¨ãé¢ä¿ãªãã¨ããç¹ã§ããè¡ãã·ã£ããã«ãã¦ãæåãå¤åãã¾ãããããã©ããããä»ã®éºä¼åãæã£ãçç©ã¨æ··ããããã¦ããææ³çã«ã¯åé¡ããã¾ãããéæªã使ã£ã¦ããèå¥åããã¶ã£ã¦ãã¾ãã¨ãäºæãã¦ããªãå®è¡ããã¼ãçºçãã¾ããã§ãããããããããã®ããã¼ã«ãã£ã¦ããç°å¢ã«é©å¿ã§ããåä½ãçã¾ããããç¥ãã¾ããããã¾ããããªãã£ãåä½ã¯åå«ãæ®ããã«æ»ã¬ãã¨ã«ãã£ã¦ããªã¼ãããããã¾ãããåä½ã ããæ®ã£ã¦ããã¾ãã
ä»åå®è£ ããå¦çç³»ã¯ãããã«é²ãã¦è¡ããç´°ããåä½ã§æ··ããããçªç¶å¤ç°ã¨ç§°ãã¦ä¸æåæ¶ãããè¶³ãããæ¸ãæãããããã¦ããææ³ã¨ã©ã¼ã«ãªããªããã¨ãæå³ãã¦å®è£ ãã¦ãã¾ãããããã¸ãã®ãã¨ããããã¦ã¿ãã®ãé¢ç½ãããç¥ãã¾ãããã
ãã¨ã¯ããããã°ã©ãã³ã°è¨èªã£ã½ããã£ã¬ã³ã¸ã®æ¹åæ§ã¨ãã¦ã¯ãæ°å¤ãã©ããã£ã¦ã¿ã³ãã¯è³ªã§è¡¨ç¾ãããã§ãããããã¹ã¦ã®å¤ãã¿ã³ãã¯è³ªãªã®ã§ã¿ã³ãã¯è³ªæåããã°ã©ãã³ã°ã§ãã(ã)