tools for reading papers

Post on 17-Feb-2017

33 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

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

top related