tools for reading papers

14
Tools for Reading Academic Computer Science Papers

Upload: jack-fox

Post on 17-Feb-2017

33 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Tools for reading papers

Tools for ReadingAcademic

Computer SciencePapers

Page 2: Tools for reading papers

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

3 Useful Tools*

• F#

• Lambda Calculus

• Programming Theory Notation

* Selection bias for programming language related papers

Page 4: Tools for reading 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.

Page 5: Tools for reading papers

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

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

Lambda CalculusSyntax

t ::= terms: x variable λx.t abstraction t t application

v ::= values: λx.t abstraction value

Page 8: Tools for reading papers

λ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

λ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

(λx. λy. y x) x (λx. x)

(λy. y x) (λx. x)

(λx. x) x

x

Evaluation

Page 11: Tools for reading papers

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

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

ConclusionAbstractIntroduction

Conclusion

Information dense words and symbols

• Singly linked lists

• Pattern matching

• Lambda Calculus

• Rules

Read first

Page 14: Tools for reading papers

Jeremy Siek Crash Course on Notation in Programming Language Theory http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html