Developing a Language for Spoken Programming

Abstract

The dominant paradigm for programming a computer today is text entry via keyboard and mouse, but there are many common situations where this is not ideal. For example, tablets are challenging the idea that computers should include a keyboard and mouse. The virtual keyboards available on tablets are functional in terms of entering small amounts of text, but they leave much to be desired for use as a keyboard replacement. Before tablets can can become truly viable as a standalone computing platform, we need a programming environment that supports non-keyboard programming. I address this through the creation of a new language that is explicitly intended for spoken programming. Rather than attempting to retrofit spoken syntax or other speech aids onto an existing language, I propose to create a new language that has spoken input designed into the syntax from the start. This will enable fluent spoken code dictation in a manner that feels natural to English speakers. In addition, productive programming requires more than just convenient syntax, so I describe a supporting editor that uses two types of additional context to increase the speech recognizer’s accuracy. First, knowledge of identifier scope allows the editor to dynamically modify its speech model increase the probability of in-scope identifiers. Second, the use of type information can be used similarly to constrain the speech model based on which variables can be passed to functions or used in assignments. 1

Cite

Text

Gordon. "Developing a Language for Spoken Programming." AAAI Conference on Artificial Intelligence, 2011.

Markdown

[Gordon. "Developing a Language for Spoken Programming." AAAI Conference on Artificial Intelligence, 2011.](https://mlanthology.org/aaai/2011/gordon2011aaai-developing/)

BibTeX

@inproceedings{gordon2011aaai-developing,
  title     = {{Developing a Language for Spoken Programming}},
  author    = {Gordon, Benjamin M.},
  booktitle = {AAAI Conference on Artificial Intelligence},
  year      = {2011},
  url       = {https://mlanthology.org/aaai/2011/gordon2011aaai-developing/}
}