2011-11-01ãã1ã¶æéã®è¨äºä¸è¦§
é·ç·ï¼ãæ©ä¸ããã¯ã大éªç¶æ°ã®ä¼ã§å¤§éªé½ãç®æãã®ããç¶è¦ªï¼ãâ¦ãé·ç·ï¼ããããã俺ã¯ãæ±äº¬ç¶æ°ã®ä¼ãä½ã£ã¦æ±äº¬é½ãç®æãããç¶è¦ªï¼ããã®ããç®æããªãã¦ãæ±äº¬ã¯é½ã ããã
ãã¢ããã¼ãããã¼ã«ä½¿ãåçè«ãç»å ´ããããã¦ãã³ã³ãã¥ã¼ã¿å±ããã§ãããã¢ããã¼ãªãã¦ç¡é¢ä¿ãã¨ãè¨ã£ã¦ãããªãããã§ããã¨ãè¨ããªãããåã¯ããã«ç¥ãã¾ãããã©(è¦ç¬)ãã¾ã¼ãç¨èªãããã¯èª¿ã¹ã¦ãããããªããã ã»ã¬ã³ã¹ã¿ã¼ï¼Tom Leinsterâ¦
Cããã«ã«ãåã ã¨ã¯æ¬¡ã®ãã¨ã§ãã Cã«ã¯çµå¯¾è±¡ãããã Cã«ã¯äºé ã®ç´ç©ãããã ãã®2ã¤ã®ãã¨ããããã¹ã¦ã®æéé¢æ£å³å¼ã®æ¥µéã®åå¨ã¯ä¿è¨¼ã§ãã¾ããä¸è¨ã®ãã«ã«ãåã®å®ç¾©ãè¨ãæãã¦ã¿ã¾ãããããã®è¨ãæãã¯ã次ã®æ¦å¿µã確èªããããã«è¯ãç·´ç¿â¦
å é±ããAlloyã®ç¢å°è¨æ³ã¨ãã¢ãã¤ãéåã¨ãã¦ã®é¢ä¿åãã§ããAlloyã§ç´ç©ã表ãç¢å°è¨å·ã¯ãé¢ä¿åã§è§£éããã¨ãã¸ããããããã¨ãã話ããã¾ãããããä¸è¬ã«ãAlloyã®æå³è«ãé¢ä¿åRelä¸ã§å±éãã¦ã¿ãã®ã¯é¢ç½ããã§ããã¨ã¯ãã£ã¦ããAlloyãã«ãâ¦
Alloyã§ã¯ãã¿ãã«ãç¢å°è¨å·ã->ãã§æ¸ããã§ããããæåã¯ããªã«ããï¼ãã¨æãã¾ãããä¾ãã°ãaã¨bã®ã¿ãã«ï¼ãã®å ´åã¯ãã¢ï¼ã§ãã (a, b) ããa->b ã¨æ¸ãã®ã§ããéåã®ç´ç©ãåãè¨æ³ã§ããéåAã¨éåBã®ç´ç©ãã A->B ã§è¡¨ãã¾ã*1ãæåã¯éåâ¦
é·ç·ï¼ãã¡ãã£ã¨å°é£ã足ããªãããããã¨ããããè©æãã§ãããããç¶è¦ªï¼ãã¯ã£ãã©ããããã¨ï¼ãé·ç·ï¼ãè©æãã§ããããããéã¡ããã ããç¶è¦ªï¼ãåã¯ãããµã¼ã¸ã¸ãã§ãããã»ãã¨ã«æ°æããã£ãããéåºãã¦ããããã©ãé·ç·ï¼ããã¾ãã£ãããâ¦
Catyã§ã¦ã¼ã¹ã±ã¼ã¹å³ãã©ãã®çµµãæããããã«ãªã£ããã¨ãç´¹ä»ãã¤ãã§ã«ãæ¨æ¥ãæãããã©ã¡ããã»ãã¨ã«å¤§ãã©ã¤ã ãã¨ãé¨ãã§ããåå¾ã®çµç·¯ã¨ããããæèãã¡ãã£ã¨èª¬æãã¦ããã¾ããããã¤ãã®çç±ããã£ã¦ãCatyã«ã¦ã¼ã¶ã¼ãã¼ã«ï¼user roleï¼ã¨â¦
ã½ããã¦ã§ã¢ã®è¨è¨ã¯åã®ä»äºã®ä¸é¨ãªãã ãã©ãã¢ããªã³ã°ã¨ãé«æ°´æºã®è¨è¨ææ³ã¨ãã«èå³ããªãããããæ£ç¢ºã«è¨ãã¨ããã®ãã®ææ³ã¨ãæµåã¨ãã«ã¯ãåãèç«ããããã®ããã£ã¦ãç²¾ç¥è¡çã®ããã«é¿ãã¦ããå¾åãããã£ã¦ãã¨ã§ããåç §ã®å¿ è¦ããã£â¦
è¦ãç®ã大äºã ãããã¨æã£ã¦Catyã«ãã¸ã¥ã¢ã©ã¤ãºæ©è½ãå ¥ãå§ããã®ã§ããã以ä¸ã®ãããªå³ã«æ¯ã¹ãã¨ãCatyãæããå³ã¯ã©ããåããã«ããæãããã¾ããï¼ä»¥ä¸ã®å³ã¯ãhttp://terasoluna.sourceforge.jp/tutorial/server-web/Document/WebTutorial_2.hâ¦
GMailã®æä½ä¸ã«ééã£ã¦åºåãã¯ãªãã¯ãã¦ãã¾ããã¨ããWebãã¼ã¸ã表示ããã¾ããã以ä¸ãã¹ã¯ãªã¼ã³ã·ã§ããã§ããå寸大ç»åããç®ãåããã¦è¦ãã¨ãèæ¯ã«ãªã«ããããã°ã©ãã³ã°è¨èªã®ã½ã¼ã¹ã³ã¼ãã®ãããªãã®ãæ£ãã°ãããã¦ãã¾ããããããWebâ¦
ãã¤ã³ã¹ãã£ãã¥ã¼ã·ã§ã³ã¨ãã¼ã¢è«çãä¸ç·ã«ãããããªããã«ãã¯ãåã«ã¨ã£ã¦ã®ä¸ã¤ã®èª²é¡ã§ãããã®èª²é¡ã«ã¤ãã¦ã¯ã次ã®ã¨ã³ããªã¼ã§è¿°ã¹ã¦ãã¾ãã ãã¼ã¢è«çã®åè«çãªå®å¼å çå½æ§é ãä»ããå -- ãã¼ã¢è«çã®ããã« ãã¤ã³ããã¯ã¹ä»ãåã®ããâ¦
以åãã»ããã¼ã§ã®èª¬æã®ããã«ãã大ããªã©ã ãå¼ï¼å°ããªã©ã ãå¼ãã¨ããè¨æ³ã使ãã¾ããããã®å¾ã使ã£ã¦ã¾ããããã£ããå ·åãããã§ããç´¹ä»ãã¦ããã¾ãã大ããªã©ã ãå¼ã¯åã®å°ããã®ã¾ã¾è¡¨ããå°ããªã©ã ãå¼ã¯ææ°å¯¾è±¡ã¸ã®å°ã表ãã¾ãã次ã®â¦
ãWebã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯Catyã®ç¾ç¶ã¨ä»å¾ãã¨ä¼¼ããããªé¡åã®è¨äºãã¾ã¼ç¶ãã®ãããªãã®ã§ããCatyã®ããã¢ã¼ã·ã§ã³çãªãã¨ããã¦ãªãã®ã§ãå°ã宣ä¼é¢¨ã«æ¸ãã¦ã¿ãããã¨ããCatyããã¸ã§ã¯ãï¼ã½ããã¦ã§ã¢ã«ã¤ãã¦ãï¼2009å¹´8æï¼ãããâ¦
ãã¤ã³ããã¯ã¹ä»ãåã®ãããï¼ã°ãã¿ã³ãã£ã¼ã¯åå¤ãããï¼ ãã2,3æ¥èãã¦ãããã¨ãããã¾ãããã®åæ©ã¨ãèæ¯ã¨ãã説æããã¨ããã£ããé¢ç½ãããã¨æãã®ã§ãããé·ããªãã®ã§çµè«ï¼ã«ãªãã¯ãã®ãã¨ï¼ã ããã¶ãã¨è¿°ã¹ã¾ããä¸è¨ã ããã£ã¦ããâ¦
ãã2,3æ¥èãã¦ãããã¨ãããã¾ãããã®åæ©ã¨ãèæ¯ã¨ãã説æããã¨ããã£ããé¢ç½ãããã¨æãã®ã§ãããé·ããªãã®ã§çµè«ï¼ã«ãªãã¯ãã®ãã¨ï¼ã ããã¶ãã¨è¿°ã¹ã¾ããä¸è¨ã ããã£ã¦ããã¨ã大éã®ã¢ããé¡ä¼¼ç©ï¼monad-like entities*1ï¼ãä¸æã«æ±ãâ¦
åã¯ãã»ã¼æ¯æ¥ãã ããã決ã¾ã£ãæéã«ã¹ã¿ã¼ããã¯ã¹ã«è¡ãã®ã§ãåºå¡ããã¨é¡ãªãã¿ã«ãªããã ãã©ãããæ©ããããã¾ããã¨æ¨æ¶ãããã¯ãã¦ã軽å£ãå©ãããã¯ããªããäºåçã«ã³ã¼ãã¼ã注æããã ãï¼åç §ï¼ä»æ¥ã¯ãç·æ§ã®åºå¡ããããäºåçããåâ¦