éè㨠OCaml
é¢æ°åè¨èªã¨ããã¨éèã§æµè¡ã£ã¦ãããç¹ã«ãOCaml ã¨è¨ãã°éè御ç¨éé¢æ°åè¨èªã¨ãã¦èªããããã¨ãå¤ããéèæ¥çã«é¢æ°åè¨èªãæã¡è¾¼ã¿æåããæåã®äºç¤¾ LexiFi ã¨Jane Street Capital ã¯å ±ã« OCaml ãæ¡ç¨ããããã¦äºç¤¾ã¨ãä»æ¥æåãã¦ããããã ã
ä»åã¯ãã®ãã¡ LexiFi ã«ã¤ãã¦è©±ããããç§ã Ph.D ãåã£ãå¾ãä¸å¹´éãç£æ¥ãã¹ãã¯ã¨ãã¦ãä¸è©±ã«ãªã£ãä¼ç¤¾ã§ããã
éèæ´¾çåå(ããªã´ã¡ãã£ã)ã¯æ§ã ãªæ¥æãæ¡ä»¶ãä¾åããå¥ã®ååä¾¡æ ¼ã«ãã£ã¦ä¾¡å¤ãå¤åãããããªã´ã¡ãã£ãã¯å ç©ããªãã·ã§ã³ãªã©ã®ãããªä¸è¬å¸å ´ã§ãæµéãã¦ããç°¡åãªæ´¾çååã ãã§ãªããä¼ç¤¾éã§ã ãã§åå¼ãããé常ã«è¤éãªç©ãããããããã®ååã«ã¯ããããæ¥çå ã§éç¨ããååãä»ãããåå¼ãè©ä¾¡ã管çãè¡ããã¦ãããããã¦ããããæ±ãããã°ã©ã ãã¾ããããããã®ååãã¨ã«å¥åã®æ©è½ã¨ãã¦å®è£ ããã¦ãããçµæã¨ãã¦ããã°ã©ã ããã¼ã¿ç¨®ã¯è¨å¤§ãªãã®ã¨ãªãããã®éçºãã¡ã³ããã³ã¹ã¯é常ã«ç ©éãªãã®ã¨ãªã£ããä¾ãã°éèæ©é¢éã§ãããã®ååã®ãã¼ã¿ãããåãããè¦æ ¼ã§ããFpML(http://www.fpml.org)ã¯ãã®å®æ ã«åãããé常ã«å¤§ããªãã®ã«ãªã£ã¦ããã
(ãã¡ãã FpML ã«æå³ããªãããã§ã¯ãªãâ¦ä¼ç¤¾éã§ã®ååæ å ±ã®äº¤æã«ã¯è¯ãã ãããã ãã¢ããªã³ã°ã¨ãã¦ã¯å®å ¨ã«èª¤ã£ãã¢ããã¼ãã§ãããæ°ããååãä½ã£ãã¨ãã¦ããããç¾è¡ã® FpML ã§è¨è¿°ã§ããªããã°ãFpML æ¹è¨ãåããããªããã°ãªããªãããã ãããã¦æ¹å®ãããã° FpML ã¯æ´ã«å·¨å¤§ã«ãªãã)
ãããã®éèæ´¾çååä¸ã¤ä¸ã¤ãè¦ãã¨æ§ã ã§ããããã®ä»æ§ãè¤éãªãã®ãããããå®ã¯ãã®å ¨ã¦ã¯ç°¡åãªäººå·¥è¨èªã§è¨è¿°ã§ããããã®ãã¨ã«æ°ä»ãã LexiFi(http://www.lexifi.com)ã® Jean Mark Eber ã¯ä¸ã®ä¸ã«åºåã£ã¦ããéèæ´¾çååã®ã»ã¼å ¨ã¦ãææé¸æãæ¡ä»¶åå²ãªã©ã®åç´ãª15åã»ã©ã®ããªããã£ãã®çµã¿åããã§è¨è¿°ã§ãããã¨ã示ããã
è¤éãªæ°å¤ãã®ååãæ°å°ãªãããªããã£ãã«éå ã§ãããããã¯å¤§å¤ã«å¼·åã§ãããåããªããã£ãã¯ã¨ã¦ãç°¡åãªã®ã§ããããã®æå³ããè©ä¾¡æ¹æ³ã¯ç°¡åã«æ¸ããã¨ãã§ããè¤éãªååã¯ãããã®çµã¿åããããèªç¶ã«æ¼ç¹¹ã§ããããã¯ãããããã®ååãã¨ã«é¢åãªå®è£ ããç´ãå¿ è¦ã¯ãªããªã£ãã®ã ã
LexiFi ã¯ãã®ååè¨è¿°è¨èªã·ã¹ãã ãé¢æ°åè¨èª OCaml ã§å®è£ ãããããã¯ã¾ã£ããèªç¶ãªé¸æã ã£ãã http://d.hatena.ne.jp/camlspotter/20131105/1383619506 (ããã§ããããã¯ãã®è¨äºãæ¸ãããã®å座ã ã£ãã®ã§ã)ã§ãæ¸ããããã«ãè¨èªã代æ°çã«æ±ããªãã°ãªãã¸ã§ã¯ãæåè¨èªããã代æ°çãã¼ã¿åãæã¤é¢æ°åè¨èªãé©ãã¦ããããæ§æãããããªããã£ãã«ç¬¬ä¸ç´é¢æ°ã使ããã¦ããããã§ãããã
ããå°ã詳ãã話ãã¨ãååè¨è¿°è¨èªèªä½ã¯ã OCamlè¨èªã§ã¯ãªãããã£ã¨åç´ãªãã®ã ããã㯠OCaml ã®ä»£æ°çãã¼ã¿åã¨ãã¦è¡¨ãããããããçµã¿åãããããå解ããããã®æä½è¨èªã¨ã㦠OCaml ã使ããã¤ã¾ããä»æµè¡ãã® EDSL ã§ããããã®ããç§éã¯ãããªåèªãç¥ããªãã£ãã®ã ã⦠ãã® EDSL ã使ã£ã¦ååè¨è¿°ã解æããé©æ£ãªå¤æ®µãã¢ã³ãã«ã«ãæ³ã§ã·ãã¥ã¬ã¼ããããã次åæ¯æãã®ææ¥ã管çãããâ¦æ§ã ãªã¢ããªã±ã¼ã·ã§ã³ããã® OCaml ä¸ã® DSL ã使ã£ã¦ã©ãã©ãæ¸ããã¨ãã§ããã
äºå®ããã®è¨èªåã«ãããã¯ã¼ãéèååã®ä»£æ°ç表ç¾ã使ã£ã¦ LexiFi ã¯ããªããã£ãã®ã¢ãã«åãè©ä¾¡ãããã¼ã¸ã¡ã³ããªã©ã®é«åº¦ãªã·ã¹ãã ãå°äººæ°ãçæéã§éçºããç¾å¨ã«è³ã£ã¦ããã
ãã®é¢æ°åè¨èªã«ããéèæ´¾çååã®ã¢ãã«å㯠LexiFi ã ãã§ãªãç¾å¨ã§ã¯è¤æ°ã®å¤§æã®éèæ©é¢ã§ãæ¡ç¨ããã¦ããããã®ä¸ã¤ãä»ç§ãåãã¦ããéè¡ã§ããããã®ä»äºå ´ãå ã辿ãã° LexiFi ã®ã¡ã³ãã¼ããã®ç´¹ä»ã«ãããã®ã§ç§ã¯ LexiFi ã«ã¯æè¬ããããªãã
æ°å¤ãã®å¯¾è±¡ãä¸ã¤ä¸ã¤åå¥ã«æ±ãã®ã§ã¯ãªããããããè¨è¿°ã§ããåç´ãªè¨èãè¦ã¤ãåºãããã®è¨èã®æ§æåã«å¯¾ãã¦åæãããã°ã©ãã³ã°ãè¡ãâ¦ç¡è«ããã¯å¤ãã®ããã°ã©ãã¼ãç¹ã«ä»£æ°çãã¼ã¿åã«æ £ããé¢æ°åè¨èªããã°ã©ãã¼ã«ã¯å½ç¶ã®äºãªã®ã ããéèçã§ã¯ãã以åã«ã¯ããããç¥ããã¦ããªãã£ããã ããã¨å½¼ã¯ç§ã«èªã£ã¦ããã
åé¡ãä¸æãè¨èªåã§ããã°åé¡ã®ä¹å²ã¯è§£ãããããªãã®ã ãã¨ç§ã¯èããããã«ãªã£ãããã ããã®ããã«ã¯åé¡ã¸ã®æ·±ãç解ãä¸å¯æ¬ ãªã®ã ãâ¦