2010-01-01ãã1ã¶æéã®è¨äºä¸è¦§
rowlå ã§dlopen()ç¸å½ã®äºãè¡ãå¿ è¦ãåºã¦ãããé¸æè¢ã¯2éã FFIãå®è£ ãã¦glibcã®dlopen()ãå¼ã¶ã dlopen()ã®ä»çµã¿ã調ã¹ã¦ï¼èªåã§æ¸ã FFIã¯ãããå®è£ ããªãããªããªããã ãã©ããã¼ãã¹ãã©ããã§ä½ãã¨ããç®çä¸rowlèªèº«ã®å®è£ ã¯å¾è ã§è¡ãããâ¦
ç¾å¨Hindley-Milnerã®åã·ã¹ãã ãå®è£ ãã¦ããã ã§ããrowl0ã®è²§å¼±ãªæ©è½ã ã¨ãªããªãå®è£ ã大å¤ãå¤æ°ããã¹ã¦x0,x1,...,p0,p1,...ãªã®ãä¸çªã¤ããã æä½éã®å®è£ ã§ãã£ãã¨rowl1ãå®æãããã»ããè¯ãããã
é常ã®ã³ã³ãã¤ã©ã¯å¤§ä½ãããªæãã«ãªã£ã¦ãããã ãã¼ã¹(æ§ææ¨çæ) â åãã§ãã¯ç â ä¸éè¨èªå â æé©å â ä½ã¬ãã«ä¸éè¨èªå â ã¹ã±ã¸ã¥ã¼ãªã³ã°&ã¬ã¸ã¹ã¿å²ãå½ã¦ â ã³ã¼ãçærowl0ã¯ã¢ã»ã³ããªå®è£ ã®çºãç°¡ç¥åã㦠ãã¼ã¹(ã³ã¼ãçæ)ã¨ãªã£ã¦â¦
ã³ã¡ã³ãæ§æã # ...ãã (% ... %)ã¨ãããã®ã«å¤æ´ãããä¸è¡ã³ã¡ã³ãã¯ãªããå ¥ãåå¯ã«ããã°ãã¾ãå°ããªãã¯ããOCamlã¨åãããå®ãè¨ãã¨ãrowlã®ã³ã¡ã³ãã¯å°æ¥çã«æååãªãã©ã«ã«ãªãäºå®ã§ããã ã¤ã¾ã x = (% foo bar baz %)ã¨ãæ¸ãã¦ããâ¦
ç¾ç¶ã¢ã»ã³ããªã§ã®rowl0å®è£ ã¯çµäºãã¦ãrowlã§rowlèªèº«ã®ã³ã³ãã¤ã©ãä½ã段éã«å ¥ã£ã¦ããã ä»æ¥ã¯autoindentããªãã®ãã¤ããã®ã§vimç¨ã®indentå®ç¾©ãã¡ã¤ã«ã¨ã¤ãã§ã«syntaxå®ç¾©ãã¡ã¤ã«ãä½ã£ãã ã¾ããã¼ãã¡ã¢ãªãå©ãé¢æ°ãä½ã£ããããã«ãã£ã¦vâ¦
ã·ã¹ãã ã³ã¼ã«çªå· : %eax å¼æ° : %ebx %ecx %edx %esi %edi %ebp ã®é mmap()ã¯mmap2ã®ã©ããã«ãªã£ã¦ãããã¢ã»ã³ããªã§ã¯mmap2ãå¼ã°ãªãã¨ãããªãã ã¨ã©ã¼ã®å ´åã®æ»ãå¤ã¯-128ã-1ã
åå¥è§£æã«ã¯ç¶æ é·ç§»è¡¨ã«åºã¥ãæ¹æ³(lexã¯ãã)ã¨ç¶æ é·ç§»å³ã«åºã¥ãæ¹æ³ãããã¾ãã rowl0ã¯å¾è ãæä½æ¥ã§å®è£ ãã¾ããã1. ãã¼ã¯ã³ã®å®ç¾© (token.s) 解æ対象ã®ãã¼ã¯ã³ã«IDãæ¯ãã¾ããåä¸æåã®ãã¼ã¯ã³ã¯ãã®asciiçªå·ããã¼ã¯ã³IDã¨ãã¾ãã ããâ¦
"growl"ã¨ããååã§è¨èªä½ãå§ãã¾ããããMac OS Xã®ã¢ããªã«ååã®ç©ããã£ãã®ã§ããããèããæ«gãåã£ã¦"rowl"ã«å¤ãã¾ããã
ãã¼ãã¹ãã©ããã³ã°ã®ç¬¬ï¼æ®µérowl0ã®å®è£ ãçµããã¾ããã rowlã®ãµãã»ããè¨èª GNU assemblerã§æ¸ãã¦ãã ãããªæãã§rowlã³ã¼ããã¢ã»ã³ããªè¨èªã«ã³ã³ãã¤ã«ã§ãã¾ãã % cat hoge.rl fib: (p0) { if (p0 hoge.rl > hoge.as % as hoge.as -o hoge.oâ¦
2chã¹ã¬ããã¼ãã¹ãã©ããã³ã°ã§ã³ã³ãã¤ã©ãä½ãããã§ç´°ã ã¨å§ãããã¿ã§ãããçµæ§æ¥½ããã£ãã®ã§çå£ã«åãçµããã¨æãããã°éè¨ãã¾ããã ãã®ããã°ã®ãã¼ã ãã®ããã°ã¯"rowl"ã¨ããèªä½è¨èªã®éçºæ¥è¨ã§ãã ç¹å¾´ã¯ä»¥ä¸ã®æ§ãªãã¼ãã¹ãã©ããâ¦