1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: slides help.markup ;
6 CONSTANT: chicago-slides
9 { $url "http://factorcode.org" }
13 "expressive and extensible"
14 "reasonable performance"
15 "interactive development with arbitrary redefinition"
16 "standalone app deployment (strip out compiler and REPL)"
20 "higher-order functions"
23 "float boxing/unboxing"
24 "integer overflow checks"
25 "user-defined abstractions"
27 { $slide "implementation"
28 "VM: 12 kloc of C, library: >100 kloc of Factor"
29 "generational copying garbage collection, card marking write barrier"
30 "full continuations, tail calls"
31 "simple non-optimizing “bootstrap” compiler"
34 { $slide "optimizing compiler"
35 "about 12,000 lines of Factor code"
36 "targets x86-32, x86-64, PowerPC"
37 "factor code ⇒ high-level SSA ⇒ low-level SSA ⇒ machine code"
39 { $slide "high-level optimizer"
40 "macro expansion, defunctionalization"
41 "type and interval inference, sparse conditional constant propagation, method inlining"
42 "escape analysis and tuple unboxing"
44 { $slide "low-level optimizer"
45 "alias analysis, value numbering, write barrier elimination"
46 "linear scan register allocation"
51 chicago-slides "Chicago talk" slides-window ;