  Specifying and implementing flexible human-computer dialogs, such as those
used in kiosks and smart phone apps, is challenging because of the numerous and
varied directions in which each user might steer a dialog. The objective of
this research is to improve dialog specification and implementation. To do so
we enriched a notation based on concepts from programming languages, especially
partial evaluation, for specifying a variety of unsolicited reporting,
mixed-initiative dialogs in a concise representation that serves as a design
for dialog implementation. We also built a dialog mining system that extracts a
specification in this notation from requirements. To demonstrate that such a
specification provides a design for dialog implementation, we built a system
that automatically generates an implementation of the dialog, called a stager,
from it. These two components constitute a dialog modeling toolkit that
automates dialog specification and implementation. These results provide a
proof of concept and demonstrate the study of dialog specification and
implementation from a programming languages perspective. The ubiquity of
dialogs in domains such as travel, education, and health care combined with the
demand for smart phone apps provide a landscape for further investigation of
these results.
