Download - Tools for reading papers
![Page 1: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/1.jpg)
Tools for ReadingAcademic
Computer SciencePapers
![Page 2: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/2.jpg)
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
![Page 3: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/3.jpg)
3 Useful Tools*
• F#
• Lambda Calculus
• Programming Theory Notation
* Selection bias for programming language related papers
![Page 4: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/4.jpg)
Why F# ?
• Standard ML (SML) – does not have guards
• Caml / Ocaml
• Coq
Many authors will use an ML language in the paper’s body.
![Page 5: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/5.jpg)
2 Ideas from ML Languages• Lists (singly linked lists)
• Pattern Matching (next page)
::
XDeconstruct:
Construct:
M A S [ ]
TailHead
Cons Empty
![Page 6: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/6.jpg)
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
| [] -> ()
![Page 7: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/7.jpg)
Lambda CalculusSyntax
t ::= terms: x variable λx.t abstraction t t application
v ::= values: λx.t abstraction value
![Page 8: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/8.jpg)
λ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
![Page 9: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/9.jpg)
λ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?
![Page 10: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/10.jpg)
(λx. λy. y x) x (λx. x)
(λy. y x) (λx. x)
(λx. x) x
x
Evaluation
![Page 11: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/11.jpg)
Programming Theory Notation
Horizontal line representing IF / THEN rule.
somethingsomething
elsesomethin
g
IfThen
Just a rule out of whole cloth
![Page 12: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/12.jpg)
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 */↦
![Page 13: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/13.jpg)
ConclusionAbstractIntroduction
Conclusion
Information dense words and symbols
• Singly linked lists
• Pattern matching
• Lambda Calculus
• Rules
Read first
![Page 14: Tools for reading papers](https://reader036.vdocument.in/reader036/viewer/2022091121/58a7095e1a28ab4c438b61a7/html5/thumbnails/14.jpg)
Jeremy Siek Crash Course on Notation in Programming Language Theory http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html