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:
- My RSI has improved dramatically. After four years of problems, I can
type all day again!
- Difficulty getting funding,
- 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