Spoken Language Support for Software Development Andrew Begel University of California, Berkeley Advisor: Prof. Susan L. Graham.

Slides:



Advertisements
Similar presentations
Chapter 15 Debugging. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Debugging with High Level Languages.
Advertisements

Semantics Static semantics Dynamic semantics attribute grammars
1 Mooly Sagiv and Greta Yorsh School of Computer Science Tel-Aviv University Modern Compiler Design.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Compiler Construction by Muhammad Bilal Zafar (AP)
1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
A Review. a review of lessons learned so far… ( 2 steps forward - 1 step back) Software Development Cycle: design, implement, test, debug, document Large.
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
1 Java Basics. 2 Compiling A “compiler” is a program that translates from one language to another Typically from easy-to-read to fast-to-run e.g. from.
September 28, 2004 Programming By Voice Andrew Begel Advisor: Prof. Susan L. Graham University of California, Berkeley VL/HCC 2004.
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.1 Introduction to Java.
Visual Languages and Human-Centric Computing September 9, 2004 Managing Duplicated Code with Linked Editing Michael Toomim, Andrew Begel and Susan L. Graham.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Variables, Data Types, & Arithmetic Expressions CSC 1401: Introduction to Programming with Java Lecture 3 Wanda M. Kunkle.
Java An introduction. Example 1 public class Example1 { public static void main (String [] args) { System.out.println (“This is the first example”); int.
Introduction to a Programming Environment
1 Designing an XML-based Exchange Format for Harmonia Marat Boshernitsan Susan L. Graham University of California, Berkeley, USA Exchange Formats Workshop.
Course: Introduction to Computers
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Lecture 1, 7/21/2005Natural Language Processing1 CS60057 Speech &Natural Language Processing Autumn 2005 Lecture 1 21 July 2005.
Computer Science 101 Introduction to Programming.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
1 Chapter-01 Introduction to Computers and C++ Programming.
Introduction to High-Level Language Programming
1 Chapter 5: Names, Bindings and Scopes Lionel Williams Jr. and Victoria Yan CSci 210, Advanced Software Paradigms September 26, 2010.
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
Alexandria University Faculty of Science Computer Science Department Introduction to Programming (CS 102) C++ Programminhg.
Java Language and SW Dev’t
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
1 Spoken Language Support for Software Development Andrew Begel Advisor: Susan L. Graham Computer Science Division, EECS University of California, Berkeley.
Computer Science 101 Introduction to Programming.
More with Methods (parameters, reference vs. value, array processing) Corresponds with Chapters 5 and 6.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Computer Programming I An Introduction to the art and science of programming with C++
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Principles of Programming Languages Asst. Prof. Dr. Ahmet Sayar Spring-2012 Kocaeli University Computer Engineering Department Introduction.
1 An Assessment of a Speech-Based Programming Environment Andrew Begel Microsoft Research (formerly UC Berkeley)
1 Computer Systems -- Introduction  Chapter 1 focuses on:  the structure of a Java application  basic program elements  preparing and executing a program.
The Java Programming Language
School of Computer Science & Information Technology G6DICP - Lecture 9 Software Development Techniques.
Introduction to Computer Programming Using C Session 23 - Review.
1 Spoken Language Support for Software Development Andrew Begel Advisor: Susan L. Graham Computer Science Division, EECS University of California, Berkeley.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
6/3/2016 CSI Chapter 02 1 Introduction of Flow of Control There are times when you need to vary the way your program executes based on given input.
Parse & Syntax Trees Syntax & Semantic Errors Mini-Lecture.
CLIP Command Line InterPreter for a subset of C++.
JavaScript Syntax, how to use it in a HTML document
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Principles of programming languages 6: Types Isao Sasano Department of Information Science and Engineering.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
By Mr. Muhammad Pervez Akhtar
Objective You will be able to define the basic concepts of object-oriented programming with emphasis on objects and classes by taking notes, seeing examples,
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
 Introduction  Methodology  Case Study 1 : Event-B and RODN  Case Study 2 : B-Method and Atelier B  Observations and Analysis  Conclusion.
Chapter 3 AS3 Programming. Introduction Algorithms + data structure =programs Why this formula relevant to application programs created in flash? The.
Scion Macros How to make macros for Scion The Fast and Easy Guide.
Chapter – 8 Software Tools.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CS210 Intermediate Computing with Data Structures (Java)
Lecture 1b- Introduction
EGR 2261 Unit 11 Pointers and Dynamic Variables
Dept of Computer Science University of Maryland College Park
Today’s topic: Arithmetic expressions.
Working with Java.
Principles of programming languages 8: Types
Lecture 5 from (Chapter 4, pages 73 to 96)
Lecture 13 Introduction to High-Level Programming (S&G, §§7.1–7.6)
Presentation transcript:

Spoken Language Support for Software Development Andrew Begel University of California, Berkeley Advisor: Prof. Susan L. Graham

2 February 27, 2002SIGCSE 2002 Introduction and Motivation  Development mechanisms mostly unchanged for 30 years  Enable people to program linguistically rather than textually  Program by Voice  Intended to help RSI sufferers, as well as students learning to program High-Level Code and Commands Programming Language Analysis Source Code

3 February 27, 2002SIGCSE 2002 Current Tools Are Painful! for statement … next … declare variable name india variable type integer … assign zero … next … recall one … less than ten … next … recall one … post increment … next for (int i = 0; i < 10; i++ ) {  } Program editing and navigation are much worse!

4 February 27, 2002SIGCSE 2002 Hard Problems Disambiguation User says ARGS SUB ARG NUM PLUS PLUS Possible interpretations: args[arg.num]++ args[arg(num)]++ args[argNum]++ Must support navigation and editing Go to the second if statement and replace the predicate by x is less than 7 Programming languages aren’t spoken Modify syntax to be easier to say without changing semantics

5 February 27, 2002SIGCSE 2002 Cognitive Questions How do programmers express themselves? Does everyone speak the same language? Vocal expressiveness is important: x[i]++ vs. x[i++] Abstraction is natural Consistency and correctness are inferred by context How does speaking affect programming concentration? How hard is it to learn to program by voice? How fast or slow can one write code? What kinds of mistakes are made?

6 February 27, 2002SIGCSE 2002 Where are we? Harmonia-Mode for XEmacs Provides interactive, on-line program analysis services Deployed in undergraduate compiler class Program by voice prototype: Code template expansion by voice Initial design for Spoken Java language

7 February 27, 2002SIGCSE 2002 Conclusions and Questions Programming by voice won’t be for everyone How can we apply this to novices? Will it be easier to learn to code? Could this change how we teach programming? How do we study this in a real course? Next up Document navigation by voice Voice-over program comments