0% found this document useful (0 votes)
88 views

Engineering Iron Man's JARVIS: Dr. Emily Hill Drew University

The document discusses research on making programming languages more natural and accessible to novice programmers. It summarizes work on keyword programming, code completion, domain-specific languages tailored to individuals, and representing source code concepts with natural language phrases. While progress has been made, challenges remain in dealing with ambiguity and domain knowledge. The document questions whether we could meet the demand for programmers by developing truly naturalistic programming languages.

Uploaded by

Aparna Kamble
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Engineering Iron Man's JARVIS: Dr. Emily Hill Drew University

The document discusses research on making programming languages more natural and accessible to novice programmers. It summarizes work on keyword programming, code completion, domain-specific languages tailored to individuals, and representing source code concepts with natural language phrases. While progress has been made, challenges remain in dealing with ambiguity and domain knowledge. The document questions whether we could meet the demand for programmers by developing truly naturalistic programming languages.

Uploaded by

Aparna Kamble
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Engineering Iron Man’s JARVIS

Dr. Emily Hill


Drew University

OOPSLE 2015
Art informs Science
JARVIS:
Just A Rather Very Intelligent System

TONY: Notes. Main transducer feels sluggish at plus 40 altitude. Hull


pressurization is problematic. I'm thinking icing is the probable factor.

JARVIS: A very astute observation, Sir. Perhaps, if you intend to visit


other planets, we should improve the exosystems.

TONY: Connect to the sys. co. Have it reconfigure the shell metals. Use
the gold titanium alloy from the seraphim tactical satellite. That should
ensure a fuselage integrity while maintaining power-to-weight ratio.
Got it?

JARVIS: Yes. Shall I render using proposed specifications?

TONY: Thrill me.


Programming Jarvis
• Connect to the sys. co. Have it reconfigure the
shell metals. Use the gold titanium alloy from
the seraphim tactical satellite. That should
ensure a fuselage integrity while maintaining
power-to-weight ratio. Got it?
• Commands:
– Connect
– Reconfigure with parameters (use) & constraints
(ensure…while)
– Confirmation
Other applications?
• Anecdotally, hardest challenge for novice
programmers is translating high-level NL
description of problem into 7 basic programming
concepts (variables, lists, loops, functions,
conditions, etc)
• Could we meet the coming shortage of
programmers by making programming languages
operate at a higher level?
• Or at the very least, make better programming
tutors?
How close are we?
Code Code
Search Keyword Completion
Programming
Naturalistic Programming [Little ASE ‘07]
People-Specific
Languages [Knoll &
Languages
Mezini OOPSLA ’06
Method [Poss OOPSLE ‘14]
invocation
Informal Software search
Representations
[Arnold & Lieberman Representing NL
OOPSLA ‘10] Phrasal Concepts
[Hill 2010]
How close are we?
• Keyword Programming (Little ASE 2007)
• Code completion
• People-specific languages (Poss OOPSLE 2014)
• NLP (Hill 2010)
Naturalistic PLs
(Knoll & Mezini OOPSLA ’06)

Challenges:
- unnaturally precise wording?
- Dealing with ambiguity & domain
knowledge
People-Specific Languages
• Domain-specific languages taken to the
extreme
• Open problems:
– What personality/programming traits should be
part of a PSL?
• Male/female?
• Personality features: intro vs extrovert?
– Tool support to convert between PSLs
Informal Software Representations
Phrasal Concepts in Source Code
• Phrasal concepts generalize to arbitrary phrases
using 4 types of semantic roles:
direct object (DO)
– action (verb) e.g., “add item to list”
– theme (direct object) indirect object (IO)
– secondary argument (preposition + indirect object)
– auxiliary arguments (any remaining signature information)
Phrasal Concepts in Source Code
Method invocation sequences:
RANDOOP
Problem Summary: Translation
• High-level NL description of problem ➡
executable code
• Possible solutions/directions:
– Pull out actionable VPs from NL & search for code
examples or chains of invocations (a la RANDOOP)
– Constrain NL (a la Pegasus) or train PL with people-
specific DSLs
– Learn correspondence between HL NL -> PL
• Documentation-code mining (naming conventions &
naming bugs)
• Apply comment generation rules in reverse
End-user naturalistic
programming:

Feasible? Pipe dream?

Why so little progress


from PL community?

You might also like