tools for reading papers
TRANSCRIPT
Tools for ReadingAcademic
Computer SciencePapers
Reading a paperAbstractIntroduction
Conclusion
Information dense words and symbols
Approach only if surrounding is interesting
Read it like math, not like a story
Read first
3 Useful Tools*
• F#
• Lambda Calculus
• Programming Theory Notation
* Selection bias for programming language related papers
Why F# ?
• Standard ML (SML) – does not have guards
• Caml / Ocaml
• Coq
Many authors will use an ML language in the paper’s body.
2 Ideas from ML Languages• Lists (singly linked lists)
• Pattern Matching (next page)
::
XDeconstruct:
Construct:
M A S [ ]
TailHead
Cons Empty
let rec printLoop printState buffer = match buffer with | "("::x::")"::tail when notParen x -> … printLoop newState tail
| "("::"("::"("::x::tail when notParen x -> …
parenOffset = (offset + 1)::(offset + 2)::(offset + 3)::parenOffset
… printLoop newState tail
| x::")"::")"::")"::tail when notParen x -> … parenOffset = parenOffset.Tail.Tail.Tail … printLoop newState tail
| [] -> ()
Lambda CalculusSyntax
t ::= terms: x variable λx.t abstraction t t application
v ::= values: λx.t abstraction value
λx. x
Ultra concise function representation
1 input per λ
Everything after the dot is the function body, what gets emitted
λx. λy. y x
Multipe inputs require multiple
λs
λx. x
λx. λy. y x
This is the identity function.It emits whatever the input is
The body of this function applies the term represented by the value “y” to the term represented by the value “x”
(λx. λy. y x) x (λx. x) What will this emit?
(λx. λy. y x) x (λx. x)
(λy. y x) (λx. x)
(λx. x) x
x
Evaluation
Programming Theory Notation
Horizontal line representing IF / THEN rule.
somethingsomething
elsesomethin
g
IfThen
Just a rule out of whole cloth
Lambda Calculus Evaluation Rules
t1 t1' /* E-APP1 */ t1 t2 -> t1' t2
t2 -> t2' /* E-APP2 */ v1 t2 -> v1 t2'
(λx.t12) v2 -> [x v2]t12 /* abstraction value */↦
ConclusionAbstractIntroduction
Conclusion
Information dense words and symbols
• Singly linked lists
• Pattern matching
• Lambda Calculus
• Rules
Read first
Jeremy Siek Crash Course on Notation in Programming Language Theory http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html