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
10 { $url "http://factorcode.org" }
16 "expressive and extensible"
17 "reasonable performance"
18 "interactive development with arbitrary redefinition"
19 "standalone app deployment (strip out compiler and REPL)"
24 "higher-order functions"
27 "float boxing/unboxing"
28 "integer overflow checks"
29 "user-defined abstractions"
32 { $slide "implementation"
34 "VM: 12 kloc of C, library: >100 kloc of Factor"
35 "generational copying garbage collection, card marking write barrier"
36 "full continuations, tail calls"
37 "simple non-optimizing “bootstrap” compiler"
41 { $slide "optimizing compiler"
43 "about 12,000 lines of Factor code"
44 "targets x86-32, x86-64, PowerPC"
45 "factor code ⇒ high-level SSA ⇒ low-level SSA ⇒ machine code"
48 { $slide "high-level optimizer"
50 "macro expansion, defunctionalization"
51 "type and interval inference, sparse conditional constant propagation, method inlining"
52 "escape analysis and tuple unboxing"
55 { $slide "low-level optimizer"
57 "alias analysis, value numbering, write barrier elimination"
58 "linear scan register allocation"
63 : chicago-talk ( -- ) chicago-slides slides-window ;