Date: 2008-06-26 Time: 11:00 Room: BBL room 471 Speaker: John van Schie Title: Compiling Haskell to LLVM (Thesis defense) Abstract Most modern compilers generate executables by targeting high level languages (C, Java, etc.) or managed virtual environments such as the JVM. In this thesis we explore an alternate approach: generating executables by targeting a typed assembly language. Typed assembly
direct threadingã£ã¦ããèããã ãã©ã©ããããã®ãç¥ããªãã£ãã®ã§èª¿ã¹ãã Threaded code threaded codeã¯ãVMã®å®è£ ãããã¨ãã«å½ä»¤ã®ãã§ããâãªãã³ã¼ãã«ãã£ã¦å¦çã®åå²ã¨ããã®ããããã°ã©ã å´ã«åãªãã³ã¼ãã®å¦çã®ã¢ãã¬ã¹ãåãè¾¼ãã§é«éåããæã®ã㨠threaded codeã§å®è£ ããã¨ã³ã³ãã¯ããã ãã©é ããã§ãå°ããããå ´åã«ãã£ã¦ã¯ãã£ãã·ã¥ãã¹ãæ¸ã£ã¦ååéãããã threaded codeã¯VMã®ãã¤ãã³ã¼ãããå®éã®é¢æ°ã ããµãã«ã¼ãã³ã®ã¢ãã¬ã¹ãç´æ¥åãè¾¼ã¿ãã³ã³ãã¤ã«æãããã°ã©ã ãã¼ãæã«è¡ã£ã¦ãå®è¡æã¯ç´æ¥ãã®ã¢ãã¬ã¹ã«é£ã¶ããã«ãããã® ããããã¤ãã³ã¼ãããã¯ä½¿ã空éã大ãããªã direct threaded codeã¯ã次ã®å½ä»¤ã¸ã®åå²ãå é ã®ä¸ã¶æã§è¡ãããåãªãã³ã¼ãã®å¦çã®æå¾ã§å é ã«æ»ã代ããã«æ¬¡ã®å½
Aæ£è¦å½¢ã«ã¤ãã¦ã¾ã¨ãã¾ãããæ¥æ¬èªã®è³æããã¾ãã«å°ãªãã®ã§ã¾ã¨ããã®ã§ãããæ£ç´ç解ã§ãã¦ãããä¸å®ã§ããééããå«ãã§ããå¯è½æ§ãããç¹ã«ã注æãã ããã ééãã®ãææãããã³ã大æè¿ã§ãã ãã¨å¿µã®ããæ¸ãã¦ããã¾ããé¡æã¯ãSchemeã§ãããAæ£è¦å½¢èªä½ã¯LispãSchemeã«ç¹åãã話ã§ã¯ãªãããã£ã¨ä¸è¬çãªè©±ã§ãã Aæ£è¦å½¢ã®è«æ The Essence of Compiling with Continuations - Flanagan, Sabry, Duba, Felleisen (ResearchIndex)ã¨ããè«æã§è§£èª¬ããã¦ãã¾ãã ãã®è«æãèªãã§èªåãªãã«ç解ã§ãããã¨ãããã«æ¸ãã¦ãã¾ãã ç解ã®åæ Scheme ã® let å¼ãåãã£ã¦ããªãã¨ç解ãé£ããããããã¾ããã Aæ£è¦å½¢ã¯ä½ã®å½¹ã«ãã¡ã¾ããï¼ ã³ã³ãã¤ã©ã®ã³ã¼ãçææã®ä¸é表ç¾ã¨ãã¦ä½¿
ããã§ä»æ¥ã®YARVåå¼·ä¼ã¯ããã¾ãã§ãã ã£ã¦ãããã§ã¯ããã«çããªã£ã¦ãã¾ã£ãã®ã§ããã¾ãã¨ãã¦ããã³ã¾ ã§è§¦ãããã¦ãã æ¬å½ã¯ãä»åä½ãç°¡åãªè¨èªã®ã³ã³ãã¤ã©ãä½ããã¨æã£ã¦ããã®ã§ãããéã«åãã¾ããã§ããã誰ã Scheme ãããã§ææ¦ãã¦ã¿ã¾ããããããªãç°¡åã ã¨æãã¾ããã ããããã£ã¦ã¿ããã¨æãã¾ãã yasm.rb è¨äºã§ç´¹ä»ããã¦ããyasmã¢ã¸ã¥ã¼ã«ãRubyã®trunkã«è¦ã¤ãããªãã£ãã®ã§ãæ§YARVã®ã¬ãã¸ã㪠http://www.atdot.net/svn/yarv/trunk/lib/yasm.rb ããæ¾ã£ã¦ãã¦é©å½ã«ä¿®æ£ãã¦ä½¿ã£ã¦ãã¾ããå¤ããã®ã¯ãYARVã®ä»®æ³ãã·ã³ãªãã¸ã§ã¯ãã表ãã¯ã©ã¹å㨠- module YARVCore + class VM - YARVCore:: + VM:: ã¡ã½ããåã¨ãã¦Symbolã渡ãã¨æãããã¿ããã
ãããã²ã¨ãåå¼·ä¼ãã¯ãä¼ã¨è¨ãã¤ã¤ã²ã¨ãã§åå¼·ããè¨é²ãæ®ãã¦ã¾ãã ä»åº¦ã¯ The Programming Language Lua ã®ã½ã¼ã¹ã³ã¼ããèªã¿ã¾ã å±¥æ´ (0): åèè³æã¾ã¨ã (1): ãã¼ã¿æ§é ãmain ãã VMã¡ã¤ã³ã«ã¼ãã¾ã§ (2): ã¹ã¿ãã¯æ§é ãå½ä»¤ãã©ã¼ãããCALL/RETURN (3): æ¼ç®åã»ã¸ã£ã³ãã»ã«ã¼ãã»ã¯ãã¼ã¸ã£ (4): ã³ã«ã¼ãã³ã»ç°å¢ ææç© LuLu : Lua VM on Lua @ LuaForge LUAã½ã¼ã¹ã³ã¼ãåå¼·ä¼ã¯2008/06/08ã«ç¡äºçµäºãã¾ããã
è¬ç¾©è³æ â 注: ç´ããã¤ããã§ã¯ããã¾ããå»å¹´ããã®æ´æ°ã®ãå¿ãã§ï¼python.logos.ic.i.u-tokyo.ac.jp ã¨ãããµã¼ãåãï¼ã¨ãã©ã marten.logos.ic.i.u-tokyo.ac.jp ã¨ãªã£ã¦ãããã¨ãæãããããã¾ãã(ãããªãã¤ãã)ï¼marten ã¯ãã¹ããã pythonã¨èªã¿æ¿ãã¦ãã ãã ããã«ã¯ãè¬ç¾©ã®ã¹ã©ã¤ããé å¸è³æãã¢ããããã¾ãã â ãã¹ããã¼ã¿, referenceæ å ±ãªã© â 10/30 mini-Pythonææ³ grammar.txt 10/30 åå¥è§£æå¨ãã¹ããã¼ã¿ tokenizer_test.tar.gz 11/14 æ§ææ¨ãããsyntree.h.txt 11/14 æ§ææ¨Cã½ã¼ã¹ã®ä¸é¨syntree.c.txt 11/14 æ§æ解ææ¨ãããparser.h.txt 11/14 æ§æ解ææ¨Cã½ã¼ã¹ä¸é¨al
tagtraum industriesã¯24æ¥(ãã¤ãæé)ãGCViewerã®ææ°çã¨ãªãGCViewer 1.25ãå ¬éãããGCViewerã¯Javaä»®æ³ãã·ã³ã®ã¬ãã¼ã¸ã³ã¬ã¯ã¿åä½æ å ±ãè¦è¦åããããã®ãã¼ã«ã¢ããªã±ã¼ã·ã§ã³ãJ2SE 1.4ãã¾ãã¯ãã以éã®ãã¼ã¸ã§ã³ã§åä½ãããã-verbose:gcããã-Xloggc:fileããæå®ãã¦çæããã¬ãã¼ã¸ã³ã¬ã¯ã¿æ å ±ãã¹ã«ã¼ããããåæ¢åä½ã®ç©ã¿éããé·æã«ãããåæ¢åä½ãªã©ãè¦è¦åãããã¨ãã§ããã GCViewer 1.25ã¯GNU LESSER GENERAL PUBLIC LICENSE Version 2.1ã®ãã¨ã§å ¬éããã¦ãããªã¼ãã³ã½ã¼ã¹ã½ããã¦ã§ã¢ãGCViewer 1.25ã«ããã主ãªå¤æ´ç¹ã¯æ¬¡ã®ã¨ããã ã-XX:+UseParallelOldGCããµãã¼ãã®æ¹å ã-XX:+CMSIncrementa
æ²ã½ããã¦ã§ã¢æ ªå¼ä¼ç¤¾ã¯ãæ²éä¿¡ã·ã¹ãã æ ªå¼ä¼ç¤¾ããã³æ ªå¼ä¼ç¤¾æ²ã¤ã³ãã©ããã¯ã¨å¹³æ22å¹´10æ1æ¥ããã£ã¦åä½µãããã¾ãããæ°ä¼ç¤¾åã¯ãæ ªå¼ä¼ç¤¾OKIã½ããã¦ã§ã¢ã¨ãªãã¾ãã3社ãè¡ã£ã¦ããã¾ãäºæ¥ã¯æ°ä¼ç¤¾ã«ã¦å¾æ¥éãç¶ç¶ãããã¾ãã
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}