prev next

Design of a Speech Oriented Programming Language (sopl)


Adam Janin
Mar 9, 2000

Please Note!

I'm no longer working on SOPL for several reasons:
  1. My RSI has improved dramatically. After four years of problems, I can type all day again!
  2. Difficulty getting funding,
  3. Another interesting project (speech on PDAs) with lots of funding came along.
There are several other projects that are related to SOPL. First, we proposed a variant of SOPL to the NSF (a US grant body). It was turned down, but I think it had some good ideas in it.

http://www.icsi.berkeley.edu/~janin/nsf.ps

Alain Desilets has worked quite a bit on some programs and macros to import variable and method names into the speech environment.

http://voicecode.iit.nrc.ca (URL updated Dec 3, 2007)

He also has some good links to other resources off the above link.

Finally, there's another student here at Berkeley who's interested in some of the issues regarding programming with voice, although mostly from a productivity viewpoint, rather than accessibility. His name is Andy Begel, and his email is abegel@cs.berkeley.edu (I pretty sure Andy is now at Microsoft -- Dec 3, 2007).

Vision

Imagine a programming environment designed from the ground up with voice as its primary mode of input. Such a system requires many components: a source language, a compiler or translator, an editor, a debugger, a speech recognition engine, etc. The components should be designed to work well together. For example, the command and control structure should be voice-centric rather than mouse-centric. Also, the source language should be designed so that the speech recognition engine performs well on it. Currently, most of these components do not exist.

These pages describe the design of the source language component of the speech environment. The new language is called "sopl" (Speech Oriented Programming Language), and is pronounced "saw - pull".

How To Read This Document

By simply selected the "next" link at the top and bottom of these pages you can visit every page in this document in a reasonable order. You can also navigate the pages using the hot-links. Note that because of hand problems (the whole reason I'm interested in Speech Oriented Programming!), navigation isn't as complete as it should be (no table of contents or index, for example).

Part One of the document consists of the introduction, including high level design goals, background information, and some concluding remarks.

Part Two contains the description of the language itself, including context-free grammars, lexical and semantic information, operational semantics (where necessary), and other miscellaneous environment information.

Part Three briefly describes the motivation for each feature described in Part Two.


prev next