1 Al Aho Effective Software Systems Research Al Aho [email protected] Bell Labs December 6, 2013.

44
1 Al Aho Effective Software Systems Research Al Aho [email protected] Bell Labs December 6, 2013

Transcript of 1 Al Aho Effective Software Systems Research Al Aho [email protected] Bell Labs December 6, 2013.

Page 1: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

1 Al Aho

Effective Software Systems Research

Al Aho

[email protected]

Bell LabsDecember 6, 2013

Page 2: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

2 Al Aho

What it means to be a systems researcher

Page 3: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

3 Al Aho

Outline

1.Forces shaping the global information networking infrastructure

2.Necessary ingredients for research effectiveness

3.NSF CISE Advisory Council 2025 vision

4.The bottom line

Page 4: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

4 Al Aho

Forces Shaping the Network

• Explosion of diverse end devices

• Shift towards ultra-fast access

• Ultra-fast IP network

• Billions of new cloud services

• Rapid deployment of cloud services

Page 5: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

5 Al Aho

A World Connected: 2.4B Internet Users 6/30/2012*

1969 1974

RFC

675

TCP/

IP

World Wide Web

ARPA

Net Internet

HTT

P 0.

9

1989

Mos

aic

Brow

ser

* www.internetworldstats.com

Page 6: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

6 Al Aho Credit: Intel Corporation

Page 7: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

7 Al Aho

Research Themes:Research Themes:

Cellular Networks, Mobile Devices and Pervasive Computing

• Mobile phones are the only digital system accessible to the majority of the planet.

– 6.8 billion mobile phone connections globally.– 85% of new handsets will be able to access the mobile web: 1 in 5 has

access to fast service, 3G or better; 10 trillion messages by 2013.

• Growing ecosystem of tools and applications:– Banking, commerce, healthcare, social networking:

1M distinct active apps just in App Store.– Mobile browsers can now display much of the content available to their

desktop counterparts.

• Mobile payment systems are now common in the developing world.– Sensitive and private data stored & entered on devices.

Image Credit: Nicolle Rager Fuller, NSF

F. Jahanian, NSFQatar ARC’13

Page 8: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

8 Al Aho

Available/Emerging Networking Technologies

• Access

– Ultrabroadband

– FTTX

• Networking infrastructure

– IP bearer service

– Software defined networks

– OpenFlow

– Network Functions Virtualization

– Cloud computing

– Content-delivery networks

Page 9: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

9 Al Aho

Business Challenges

• Services and content from whose data centers?

• More diverse devices but at a lower cost per device

• More bandwidth but at a lower cost per bit

• Seamless unification of disparate networks

• Hosting, creating and delivering huge numbers of new

services but with lower management costs

Page 10: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

10 Al Aho

Cross-cutting Business Issues

• Role of content

• Better security and privacy

• Reducing energy consumption

• Reducing network complexity

• Improving software quality

• Regulatory issues

• Convergence and interoperability of infrastructures

Page 11: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

11 Al Aho

Software Systems

The world depends on software but most people are not aware of how much software there already is, or how expensive it is to develop and maintain, or how hard it is to get it right.

Page 12: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

12 Al Aho

Software, Software Everywhere

“A conservative estimate is that the world is already using hundreds of billions of lines of software to conduct its affairs.”

A. V. AhoSoftware and the Future of Programming Languages

Science, February 27, 2004, pp. 1131-1133

Page 13: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

13 Al Aho

IEEE Spectrum Software Hall of Shame

2004 UK Inland Revenue Software errors contribute to $3.45 billion tax-credit

overpayment

2004 J Sainsbury PLC [UK] Supply chain management system abandoned after

deployment costing $527M

2002 CIGNA Corp Problems with CRM system contribute to $445M loss

1997 U. S. Internal Revenue Service

Tax modernization effort cancelled after $4 billion is

spent

1994 U. S. Federal Aviation Administration

Advanced Automation System canceled after $2.6 billion is

spent

Year Company Costs in US $

R. N. Charette, Why Software Fails, IEEE Spectrum, September 2005.

Page 14: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

14 Al Aho

J. D. Zients On Government IT Projects

“[Government] IT projects too often cost hundreds of millions of dollars more than they should, take years longer than necessary to deploy and deliver technologies that are obsolete by the time they are completed.”

Jeffrey D. Zients

Management Consultant and Future Economic Advisor

Obama White House

From a 2010 internal government memo

Quoted on the front page of the NY Times

Monday, November 11, 2013

Page 15: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

15 Al Aho

Effective Software Systems Research

• Two aspects of systems research

– Experimental

– Theoretical

• But

“If you find that you're spending almost all your time on theory, start turning some attention to practical things; it will improve your theories. If you find that you're spending almost all your time on practice, start turning some attention to theoretical things; it will improve your practice.” − Don Knuth

Page 16: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

16 Al Aho

Theory in Practice: Regular Expression Pattern Matching in Perl, Python, Ruby vs. AWK

Time to check whether a?nan matches an

regular expression and text size n

Russ CoxRegular expression matching can be simple and fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)

[http://swtch.com/~rsc/regexp/regexp1.html, 2007]

Page 17: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

17 Al Aho

What is Effective Software Systems Research?

Research that leads to software systems that have a major impact.

Impact can take a variety of forms:

–connecting people, e.g. WWW and the Internet

– transforming an existing area, e.g. spreadsheets for accounting

–creating a new company, e.g. Google search

–realigning a corporate strategic plan, e.g. in 1991 Bill Gates

realigns Microsoft to pursue an intelligent Internet

–creating new knowledge, e.g. RSA encryption algorithm

–giving your employer a decided advantage in the marketplace

Page 18: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

18 Al Aho

Traditional Metrics of Scholarly Effectiveness

• Citations

• Publications in influential journals & conferences

• Awards and honors

• Opinion of peers in letters and interviews

Page 19: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

19 Al Aho

Additional New Metrics

• Article downloads and views

• Influence on policy makers

• Effects on industry and the economy

• Public outreach

The maze of impact metricsEditorial, Nature, October 16, 2013

Page 20: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

20 Al Aho

Examples of Effective Software Systems Research

1. First modern personal computer (Thacker; Xerox PARC)

2. TCP/IP (Cerf and Kahn; DARPA)

3. Public-key cryptography (Rivest, Shamir, Adleman; MIT)

4. OO programming (Dahl and Nygaard; Norwegian Computer Center)

5. Transaction processing (Gray; IBM)

6. Interactive computing (Englebart; SRI)

7. Distributed personal computing environments (Lampson; Xerox PARC)

8. Computer graphics (Sutherland; MIT)

9. Unix and C (Thompson and Ritchie; Bell Labs)

10.Relational model of data (Codd; IBM)

ACM A. M. Turing Award Winnersacm.org

Page 21: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

21 Al Aho

More Examples of Effective Software Systems

1. LLVM (compiler infrastructure written in C++; UIUC)

2. Eclipse (multilanguage IDE written in Java; IBM Canada)

3. VMware (virtualization technology)

4. Secure Network Programming (secure sockets; UT Austin)

5. MAKE (build utility; Bell Labs)

6. Java (general purpose OO language; SUN)

7. SPIN (software model checking system; Bell Labs)

8. The S System (statistical programming language; Bell Labs)

9. NCSA Mosaic (multiplatform browsing tool; NCSA, UIUC)

10.WWW (network-oriented hypermedia system; CERN)

ACM Software System Awardsacm.org

Page 22: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

22 Al Aho

Effective Programming Languages

1. C

2. Java

3. Objective-C

4. C++

5. PHP

6. C#

7. (Visual) Basic

8. Python

9. Transact-SQL

10.JavaScript

Tiobe Programming Community Indexwww.tiobe.comNovember 2013

Page 23: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

23 Al Aho

Three Necessary Ingredients for Effectiveness

1. Your idea should solve an important problem• George Heilmeier: “Answer my catechism questions!”

Page 24: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

24 Al Aho

The Heilmeier Catechism Questions

1. What are you trying to do? Articulate your objectives using absolutely no jargon.

2. How is it done today and what are the limits to current practice?

3. What’s new in your approach and why do you think it will be successful?

4. Who cares?

5. If you are successful, what difference will it make?

6. What are the risks and the payoffs?

7. How much will it cost?

8. How long will it take?

9. What are the midterm and final “exams” to check for success?

George H. Heilmeier

http://en.wikipedia.org/wiki/George_H._Heilmeier

Page 25: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

25 Al Aho

Three Necessary Ingredients for Effectiveness

1. Your idea should solve an important problem• George Heilmeier: “Answer my catechism questions!”

2. You need to teach others how to use your idea• Richard Hamming: “You not only need to do good work you

must also teach others how to use your work.”

Page 26: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

26 Al Aho

Three Necessary Ingredients for Effectiveness

1. Your idea should solve an important problem• George Heilmeier: “Answer my catechism questions!”

2. You need to teach others how to use your idea• Richard Hamming: “You not only need to do good work you

must also teach others how to use your work.”

3. To be effective in the near future your idea needs a route to the sea• AWK case study

Page 27: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

27 Al Aho

Paradigm problem: Given a list of name-value pairs, print the total value associated with each name.

AWK: a simple pattern-action language for common data-processing applications

alice 10 eve 20 bob 15 alice 30

eve 20 bob 15 alice 40

Page 28: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

28 Al Aho

Paradigm problem: Given a list of name-value pairs, print the total value associated with each name.

AWK: a simple pattern-action language for common data-processing applications

alice 10 eve 20 bob 15 alice 30

{ total[$1] += $2 } END { for (x in total) print x, total[x] }

eve 20 bob 15 alice 40

An AWK programis a sequence of

pattern-action statements

Page 29: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

29 Al Aho

AWK’s Route to the Sea

• AWK solved common data-processing problems simply

• AWK came with Unix and was easy to combine with other

UNIX commands

• AWK was (and still is!) small and easy to learn

• On-line man page, tutorials and book showed how to use

AWK to solve practical problems

• An initial set of enthusiastic AWK users provided

valuable feedback and acted as evangelists

• We evolved AWK over a decade to meet new user needs

Page 30: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

30 Al Aho

Inspiring Innovation: The Programming Languages and Translators Course at Columbia University

• In PLT you will learn the syntactic and semantic elements and the computational models of the most important modern programming languages as well as the algorithms and techniques used by compilers to translate them into machine and other target languages. The course will cover imperative, object-oriented, functional, logic, and scripting languages, as well as trends in the evolution of programming languages.

• A highlight of this course is a semester-long programming project in which you will work in a small team to create and implement an innovative little language of your own design. This project will teach you computational thinking in language design as well as project management, teamwork, and communication skills that you can apply in all aspects of your career.

Page 31: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

31 Al Aho

A Sampling of PLT Languages

What to Wear: personalized wardrobe recommendations

Swift Fox: configuring wireless sensor networks

Trowel: a webscraping language for journalists

Upbeat: a language for auralizing data

Suds: a language for shared-session telecom services

Q-HSK: a language for teaching quantum computing

http://www.cs.columbia.edu/~aho/cs4115/

Page 32: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

32 Al Aho

Phases of a Compiler

SemanticAnalyzer

Interm.CodeGen.

SyntaxAnalyzer

LexicalAnalyzer

CodeOptimizer

CodeGen.

sourceprogram

tokenstream

syntaxtree

annotatedsyntax

tree

interm.rep.

interm.rep.

targetprogram

Symbol Table

Page 33: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

33 Al Aho

Front End Compiler Component Generators

SyntaxAnalyzer

LexicalAnalyzer

sourceprogram

tokenstream

syntaxtree

LexicalAnalyzer

GeneratorLEX

SyntaxAnalyzer

GeneratorYACC

lexspecification

yaccspecification

Page 34: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

34 Al Aho

The PLT Course Project at Columbia

Week Task

2 Form a team of five and design an innovative new language

4 Write a whitepaper on your proposed language modeled after the Java whitepaper 8 Write a tutorial patterned after Chapter 1 and a language reference manual patterned after Appendix A of Kernighan and Ritchie’s book, The C Programming Language 14 Give a ten-minute presentation of your language to the class

15 Give a 30-minute working demo of your compiler to the teaching staff

15 Hand in the final project report

Page 35: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

35 Al Aho

Individual Roles on the Project Team• Project manager

– sets the project schedule, holds weekly meetings with the entire team, maintains the project log, and makes sure the project deliverables get done on time.

• Language and tools guru

– defines the baseline process to track language changes and maintain the intellectual integrity of the language.

– teaches the team how to use various tools used to build the compiler.

• System architect – defines the compiler architecture, modules, and interfaces.

• System integrator

– defines the system platform and makes sure the compiler components work together.

• Tester and validator – defines the test suites and executes them to make sure the compiler

meets the language specification.

Page 36: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

36 Al Aho

Telling Lessons Learned by PLT Students

• “Designing a language is hard and designing a simple

language is extremely hard!”

• “During this course we realized how naïve and

overambitious we were, and we all gained a newfound

respect for the work and good decisions that went into

languages like C and Java which we’ve taken for

granted for years.”

Page 37: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

37 Al Aho

Where is the Future Headed?

Page 38: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

38 Al Aho

Mote ???

Bell’s Law: Birth and Death of Computer Classes

G. BellBell’s Law for the Birth and Death of Computer Classes

CACM, Jan 2008, pp. 86-94

Page 39: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

39 Al Aho

Innovation Drivers/Trends for 2025

• Extreme personalization– Health/medical, career, mobility, lifestyle, education, language,

data, entertainment, …

• Extreme augmentation– Memory (perfect), data (always accessible and unbounded),

communication (always on), analytics (as/when needed, AI/ML on demand…), multi-locations (virtual presence), …

• Extreme human-world integration– In-body devices (vs. on-body or external), brain and sensorial

interfaces, seamless virtual+real worlds …

– Collective systems (e.g. crowdsourcing), assisted+assistive robotics, “green” living, disaster management …

Vision 2025NSF CISE AC

Page 40: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

40 Al Aho

The Dark Side of the Internet: Rise of Politically Motivated Attacks, Cyber War, Censorship,

Hacktivism and Cyber Espionage

Page 41: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

41 Al Aho

Cyber Security Challenges

• Attacks and defenses co-evolve: a system that was secure yesterday might no longer be secure tomorrow.

• The technology base of our systems is frequently updated to improve functionality, availability, and/or performance. New systems introduce new vulnerabilities that need new defenses.

• The environments in which our computing systems are deployed and the functionality they provide are dynamic, e.g. cloud computing, mobile platforms.

• As automation pervades new platforms, vulnerabilities will be found in critical infrastructures, automotive systems, smart grids, medical devices, transportation systems.

• The sophistication of attackers is increasing as well as their sheer number and the specificity of their targets.

• Cyber security is a multi-dimensional problem requiring expertise from computer science, mathematics, economics, public policy, behavioral and social sciences.

Image Credit: ThinkStock

F. Jahanian, NSFQatar ARC’13

Page 42: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

42 Al Aho

The Bottom Line

Software systems will play a key role in shaping

the technology and industry structure of the

global information infrastructure of the future.

Page 43: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

43 Al Aho

But Most Importantly

You can’t do effective software systems research

without a critical mass of great software systems

researchers.

Page 44: 1 Al Aho Effective Software Systems Research Al Aho aho@cs.columbia.edu Bell Labs December 6, 2013.

44 Al Aho

Effective Software Systems Research

Al Aho

[email protected]

Bell LabsDecember 6, 2013