]> gitweb.factorcode.org Git - factor-talks.git/blob - chicago-talk/chicago-talk.factor
minor updates
[factor-talks.git] / chicago-talk / chicago-talk.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: slides help.markup ;
4 IN: chicago-talk
5
6 CONSTANT: chicago-slides
7 {
8     { $slide "factor"
9       { $url "https://factorcode.org" }
10     }
11     { $slide "goals"
12       "high level language"
13       "expressive and extensible"
14       "reasonable performance"
15       "interactive development with arbitrary redefinition"
16       "standalone app deployment (strip out compiler and REPL)"
17     }
18     { $slide "challenges"
19
20       "higher-order functions"
21       "dynamic typing"
22       "memory allocation"
23       "float boxing/unboxing"
24       "integer overflow checks"
25       "user-defined abstractions"
26     }
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"
32       "optimizing compiler"
33     }
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"
38     }
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"
43     }
44     { $slide "low-level optimizer"
45       "alias analysis, value numbering, write barrier elimination"
46       "linear scan register allocation"
47     }
48 }
49
50 : chicago-talk ( -- )
51     chicago-slides "Chicago talk" slides-window ;
52
53 MAIN: chicago-talk