38
Tracking the Flow of Ideas through the Programming Languages Literature Michael Greenberg, Kathleen Fisher, and David Walker SNAPL 2015

Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Tracking the Flow of Ideas through the

Programming Languages LiteratureMichael Greenberg, Kathleen Fisher, and David Walker

SNAPL 2015

Page 2: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

2

How can we understand the PL literature?

Alexandre Duret-Lutz

Page 3: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Was this a typical year for ICFP?

3

Which related work should I cite?

Should I submit to PLDI or POPL?

How has OOPSLA changed over the years?

Who should review this paper?

Who should I invite to this PC?

Page 4: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

4

Types

Optimization

Verification

Synthesis

AbstractInterpretation

Page 5: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

4

Types

Optimization

Verification

Synthesis

AbstractInterpretation

Page 6: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

4

Types

Optimization

Verification

Synthesis

AbstractInterpretation

Page 7: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

4

Types

Optimization

Verification

Synthesis

AbstractInterpretation

Page 8: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

What is a document’s ‘topic’?

5

Word Count

type 120

system 83

check 34

static 21

Page 9: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Topics are distributions of words

6

“Parsing” topicWord Log likelihood

grammarlan

-3.905040language -4.206531structure -4.308618

parser -4.513348… …

Page 10: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Documents are a mix of topics

7

type systemsWord Counttype 120

system 83check 34static 21

object-orientationWord Countobject 88class 13

instance 12method 7

operational semanticsWord Count

semantics 90step 45

reduce 38evaluate 19

.6

.18

.22

Page 11: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Documents are a mix of topics

8

<.6,.18,.22>

object-orientation

type

sys

tem

s

operational semantics

Page 12: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

9

two corpora N=size

abstracts (ICFP, OOPSLA,

PLDI, POPL)

fulltext (PLDI, POPL)

LDA-C k

k topics

v1vN…

N vectors

post

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

0

2000

4000

6000

CDRS PCC SEMC TALPaper

Dis

tanc

e

Paper set

Citations

Random 1

Random 2

Random 3

Random 4

Random 5

v1

v2

d

analysis

related work search

Page 13: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

10

Topic names for k=20, abstracts

Compiler optimization Array Processing Verification Program Logics

Resource management

Garbage Collection Test generation Parallelism

Parsing Components and APIs

Object-Oriented Programming Language Design

Low-level compiler

optimizationsProgram Analysis

Analysis of Concurrent Programs

Models and Modeling

Semantics of concurrent programs

Type Systems ApplicationsObject-oriented

software development

Page 14: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

11

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Page 15: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

11

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

How has OOPSLA changed over the years?

Did changing the CfP change things?

What about merging with SPLASH!?

Page 16: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

OOPSLA Call for Papers

12

2006 2007 2010

foundations of object and related

technologies

paradigms beyond the traditional

concept of object-oriented programming

all aspects of programming

languages and software engineering, broadly construed

Page 17: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

13

CfP SPLASH! CfP SPLASH!

Page 18: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

14

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

How has PLDI changed over time?

Per “Future of PLDI” session in Edinburgh, what is the state of the community?

Page 19: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

15

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Page 20: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

16

Page 21: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Comparing documents

Are papers with close topic vectors related?

17

v1

v2

d

Page 22: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

18

0

2000

4000

6000

CDRS PCC SEMC TALPaper

Dis

tanc

e

Paper set

Citations

Random 1

Random 2

Random 3

Random 4

Random 5

Page 23: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

http://tmpl.weaselhat.com

19

Page 24: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Ideas and plansBeginning of a new project

What do you think we should do?

Models for researchers

20

v1vN…

Page 25: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Discussion topics

21

Page 26: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

22

Topic names for k=20, full text

Data-driven optimization

Abstract interpretation

Object-orientation Code generation

Data-structure correctness

Languages and control

Security and bugfinding

Processes and message passing

Garbage collection Parallelization Program

transformation Dynamic analysis

Low-level systems Design Program analysis Proofs and

models

Register allocation Types Concurrency Parsing

Page 27: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Let’s name a topic!object

heap

region

memory

pointer

collector

garbage

collection

allocation

reference23

Space overhead bounds for dynamic memory management with partial compaction Schism: fragmentation-tolerant real-time garbage collection Portable, unobtrusive garbage collection for multiprocessor systems Limitations of partial compaction: towards practical bounds Correctness-preserving derivation of concurrent garbage collection algorithms The ramifications of sharing in data structures A general framework for certifying garbage collectors and their mutators Beltway: getting around garbage collection gridlock On bounding time and space for multiprocessor garbage collection Garbage collection without paging

Page 28: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Let’s name a topic!object

heap

region

memory

pointer

collector

garbage

collection

allocation

reference23

Space overhead bounds for dynamic memory management with partial compaction Schism: fragmentation-tolerant real-time garbage collection Portable, unobtrusive garbage collection for multiprocessor systems Limitations of partial compaction: towards practical bounds Correctness-preserving derivation of concurrent garbage collection algorithms The ramifications of sharing in data structures A general framework for certifying garbage collectors and their mutators Beltway: getting around garbage collection gridlock On bounding time and space for multiprocessor garbage collection Garbage collection without paging

Garbage

collection!

Page 29: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Parsing

• Parsing drops standard stopwords

• Added some extra ones with TF-IDF

• Stemmed words using nltk*

• Removes plurals, etc.

24

a about above after again

against …

calculi ➞ calculus goes ➞ go

*http://www.nltk.org/

Page 30: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

Limitations/problems• ACM DL is missing data

• No programmatic access

• Unclear choices about models

• Abstracts or fulltext? k=20? k=30? k=200?

• Which documents should ‘seed’ LDA?

25

Page 31: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

26

Data−driven optimization Data−structure correctness Garbage collection Low−level systems Register allocation

Abstract interpretation Languages and control Parallelization Design Types

Object−orientation Security and bugfinding Program transformation Program analysis Concurrency

Code generation Processes and message passing Dynamic analysis Proofs and models Parsing

01020304050

01020304050

01020304050

01020304050

0 10 20 30 40 50 0 10 20 30 40 50 0 10 20 30 40 50 0 10 20 30 40 50 0 10 20 30 40 50Fulltext paper rank (out of top 50)

Abst

ract

pap

er ra

nk (o

ut o

f top

50)

Page 32: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

More charts!

27

Page 33: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

28

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

What trends are visible in program verificationacross the decades?

Page 34: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

29

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Compiler optimization Resource management Parsing Low−level compiler optimizations Semantics of concurrent programs

Array Processing Garbage Collection Components and APIs Program Analysis Type Systems

Verification Test generation Object−Oriented Programming Analysis of Concurrent Programs Applications

Program Logics Parallelism Language Design Models and Modeling Object−oriented software development

0

10

20

30

0

10

20

30

0

10

20

30

0

10

20

30

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght

Conference

ICFP

OOPSLA

PLDI

POPL

Page 35: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

30

Data−driven optimization Data−structure correctness Garbage collection Low−level systems Register allocation

Abstract interpretation Languages and control Parallelization Design Types

Object−orientation Security and bugfinding Program transformation Program analysis Concurrency

Code generation Processes and message passing Dynamic analysis Proofs and models Parsing

0

250

500

750

1000

0

250

500

750

1000

0

250

500

750

1000

0

250

500

750

1000

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght Conference

PLDI

POPL

Are there topics that used to be well represented in POPL?

Page 36: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

31

Page 37: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

32

Data−driven optimization Data−structure correctness Garbage collection Low−level systems Register allocation

Abstract interpretation Languages and control Parallelization Design Types

Object−orientation Security and bugfinding Program transformation Program analysis Concurrency

Code generation Processes and message passing Dynamic analysis Proofs and models Parsing

0

250

500

750

1000

0

250

500

750

1000

0

250

500

750

1000

0

250

500

750

1000

1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010 1980 1990 2000 2010Year

Wei

ght Conference

PLDI

POPL

What topics are in POPLbut not really in PLDI?

Page 38: Tracking the Flow of Ideas through the ... - cs.pomona.educs.pomona.edu/~michael/papers/snapl2015_presentation.pdfCorrectness-preserving derivation of concurrent garbage collection

33