Top Banner
how do i do research matthias felleisen, racketeer, plt, northeastern
50

how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Jun 28, 2018

Download

Documents

leminh@
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how do i do

research

matthias felleisen,

racketeer,

plt, northeastern

Page 2: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how do I do research? how do I do research?

would

if I were you

Page 3: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

your advisor & you

Page 4: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how do I do research?

how would I do research if I were you?

how do I work with my my PhD students?

Page 5: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how do i

relate to my

PhD students

Page 6: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Instead my students and I find a topic we both love.

I have never, ever hired a PhD student.

Period.

Page 7: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Typed Racket (ICFP ’10)Functional I/O (ICFP ’09)

Compiler Coaching (OOPSLA ‘12 )

Laziness, what is it (good for)? (JFP 1996)

Page 8: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

And that’s what’s called ‘doing research.’

Page 9: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how would I

do research if

I were you

Page 10: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Two Case Studies

Asumu Takikawa

Tony Garnock-Jones

Kuhn,The Structure of Scientific Revolution

Page 11: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Typed Racket (ICFP ’10)

Types for Classes

Page 12: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

dozens of classes, 100s of methods,

and he equipped all of them with

“lightweight contracts”

Topic: Gradual Types for First-class Classes

Page 13: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

DESIGN

IMPLEMENT

Previous Topic: Contracts for Classes & Objects

IMPROVE

EVALUATE

Page 14: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Strickland & Takikawa ‘12

Takikawa & Strickland ‘13

Takikawa ‘15

Takikawa & Greenman ‘15

EVALUATE

DESIGN

IMPLEMENT

EVALUATE

Page 15: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

A Positive (Self-perpetuating) Feedback Loop

DESIGN

IMPLEMENT

IMPROVE

EVALUATE

DESIGNEVALUATE

IMPROVE

IMPLEMENT

Page 16: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

RabbitMQFunctional I/O (ICFP ’09)

Page 17: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

truly functional GUIs

messages as events

communicating worlds

from freshman programs

to systems

networks

actors

publish subscribe

failures!

message brokers

Page 18: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Functional I/O & Communicating Worlds networking systems

DNS Proxy

SSH Server

Chat Room

TCP Stack

DSL for comm. actors

!!!

Page 19: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

DESIGN

IMPLEMENT

IMPROVE

EVALUATE

Topic: Coordinated Concurrent Functional Language

The Network Calculus

CCFL over Racket

CCFL over JavaScript Does it specialize?

Does it generalize?

Is it performant?

Coordination over the “real” network

Base actors in distinct languages

Page 20: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What is the cost of breaking open a new field?

5 years 6.5 years

Page 21: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how did I do

research as a

PhD student

Page 22: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Dan Friedman

(f (g (call/cc k)) =(k (λ (x) (f (g x))))

My Story

Go, implement it. See what happens.

Page 23: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

?

Page 24: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What does it mean to implement equations

I had read that paper.

… in two hours.

I read it again.

NOT 4 hours

NOT 4 days

NOT 4 weeksI spent 4 MONTHS studying this paper.

Page 25: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What does it mean to implement equations

+

Page 26: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What did four months of reading yield

How do calculi correspond to eval?- start from an abstract syntax- identify values & programs- define basic notion of reduction- inductively generate theories- eval-> and eval=- Church & Rossser Thm. - Thm. eval-> = eval= - Standard Reduction Theorem- Thm: eval-standard = eval->

Page 27: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

My dissertation: “This” works for imperative features, too.

How do calculi correspond to eval?- start from an abstract syntax- identify values & programs- define basic notion of reduction- inductively generate theories- eval-> and eval=- Church & Rossser Thm. - Thm. eval-> = eval=- Standard Reduction Theorem- Thm: eval-standard = eval->

The λ_v-CS Calculus

control

state

by need

futures

Page 28: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Good paper require ‘deep study’ not just a ‘reading.’

Really good paper are ‘research programs’not just results.

Lessons

Know to distinguish the good from the bad in your advisor’s suggestions.

Page 29: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

how do I do

research now

Page 30: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solve

problem I can solveproblem I can solve

problem I can solve

Page 31: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

paper I can writepaper I can write

paper I can write

paper I can write

paper I can writepaper I can write

paper I can write

paper I can write

paper I can write

paper I can write

paper I can write

paper I can writepaper I can write

paper I can write

Page 32: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

More papers does not mean better researcher.

Page 33: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Think big, think long-term.

Lesson

Good researchers say “no” to many problems. They focus on those that they care about.

Page 34: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

How can programmers design programs systematically?

(1985)

How do types fit into untyped languages?

(1988)

My Long-term Projects

How do you teach 12, 14, 16 year olds programming and what benefit

does this have? (1995, last day of POPL)

What is linguistic power and why is a DSL better than an

algorithm?(1985)

Page 35: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What do such long-term projects look like?

How do you launch long-term projects?

Page 36: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

What do such long-term projects look like?

Page 37: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

How do types fit into untyped languages?

(1988)

1990 Mike Fagan Soft Typing (***)

1994 Andrew Wright Practical Soft Typing

1998 Cormac Flanagan Componential SBA

2002 Robby Findler Higher-order Contracts

2005 Philippe Meunier Modular SBA from Contracts

2006 Sam Tobin-H. (2010) From Scripts to Programs

2012 Stevie Strickland Contracts for First-class Classes

2015 Asumu Takikawa Types for First-class Classes

The “Gradual Typing” Dissertations

Page 38: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

How can programmers design

programs systematically?(1985)How do you teach 12,

http://www.google.ca/imgres?imgurl=http://

www.ebookstorm.com/img/1985 The Litte Lisper, 2nd ed.

F’1992 Teaching my first introductory programming course

1993/94 @ CMU, “Bob’s teaching it all wrong”

Jan 1995 Launch TeachScheme! — FP and algebra in high schools

Dec 1995 The Dump (~1,000 pages) — re-focusing on explicit design

1996-2001 HtDP/1e — Programs as Functions

2002-2005 Designing, implementing, evaluating “Functional I/O”

2007-2015 HtDP, 2nd ed. — Programs are not function

How to Design

Page 39: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

1985 with Kohlbecker et al Hygienic Maros1986 with Bruce Duba Macros in Phases 88/89 John Greiner, Steve Weeks Programming Abstract Syntax1991 Todd Yonkers Extensible Syntax1994 Matthew Flatt Connecting DSLs into Applications95/97 PLT Teaching languages95/99 Shriram Krishnamurthi Parameterizing over Language2002 Matthew Flatt You want it when?03/08 Ryan Culpepper Protecting Macros08/09 Ryan Culpepper Debugging Macros

“Macros”What is linguistic power and why is a DSL better than an

algorithm?(1985)

Page 40: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

How do you launch long-term projects?

Page 41: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

People Readings

Teaching

“Reality”

Time to Think

Page 42: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Sometimes you stumble into a topic.

Page 43: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

1990 Mike Fagan Soft Typing (***)

1994 Andrew Wright Practical Soft Typing

1998 Cormac Flanagan Componential SBA

2001 Robby Findler Higher-order Contracts

2005 Philippe Meunier Modular SBA from Contracts

2006 Sam Tobin-H. (2010) From Scripts to Programs

2012 Stevie Strickland Contracts for First-class Classes

2015 Asumu Takikawa Types for First-class Classes

How do types fit into untyped languages?

(1988)

The “Gradual Typing” Dissertations

Types?

Soft!

static

dyna

mic

Page 44: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Sometimes it is love at first sight.

Page 45: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

How can programmers design

programs systematically?(1985)How do you teach 12, 14,

16 year olds programming What benefit does it have? (1995, last day of POPL)1985 The Litte Lisper, 2nd ed.

F’1992 Teaching my first introductory programming course

1993/94 @ CMU, “Bob’s teaching it all wrong”

Jan 1995 Launch TeachScheme! — FP and algebra in high schools

Dec 1995 The Dump (~1,000 pages) — re-focusing on explicit design

1996-2001 HtDP/1e — Programs as Functions

2002-2005 Designing, implementing, evaluating “Functional I/O”

2007-2015 HtDP, 2nd ed. — Programs are not function

An “entertaining”

thought

We knew what we had to do:

software, curriculum,

teaching

Cormac asked the one

critical question

Page 46: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

Sometimes it develops as a necessity.

Page 47: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

1985 with Kohlbecker et al Hygienic Maros1986 with Bruce Duba Macros in Phases 88/89 John Greiner, Steve Weeks Programming Abstract Syntax1991 Todd Yonkers Extensible Syntax1994 Matthew Flatt Connecting DSLs into Applications95/97 PLT Teaching languages95/99 Shriram Krishnamurthi Parameterizing over Language2002 Matthew Flatt You want it when?03/08 Ryan Culpepper Protecting Macros08/09 Ryan Culpepper Debugging Macros

“Macros”What is linguistic power and why is a DSL better than an

algorithm?(1985)

Page 48: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

what to

remember?

Page 49: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

As a student, you need to — develop a sense of the landscape — follow your heart — plan out design, implementation, evaluation.

As a researcher, I — look for long-term projects — follow my heart — use teaching (for the 99%) for inspiration — develop dissertation-size goals — plan for hand-over — and have my eyes open for new ideas.

No matter what, keep in mind that the number of your papers is unrelated to the quality of your work.

Page 50: how do i do research - University of Pennsylvaniasweirich/icfp-plmw15/slides/felleisen.pdf · how do I do research? how do I do research? would if I were you. your ... Really good

The End