The programmer's apprentice
U-TEL: a tool for eliciting user task models from domain experts
IUI '98 Proceedings of the 3rd international conference on Intelligent user interfaces
Community Support for Constructionist Learning
Computer Supported Cooperative Work - Special issue on interaction and collaboration in MUDs
Studying the language and structure in non-programmers' solutions to programming problems
International Journal of Human-Computer Studies
Toward a Programmatic Semantics of Natural Language
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Metafor: visualizing stories as code
Proceedings of the 10th international conference on Intelligent user interfaces
Translating keyword commands into executable code
UIST '06 Proceedings of the 19th annual ACM symposium on User interface software and technology
Building an Autopoietic Knowledge Structure for Natural Language Conversational Agents
RuleML '08 Proceedings of the International Symposium on Rule Representation, Interchange and Reasoning on the Web
Constructing composite web services from natural language requests
Web Semantics: Science, Services and Agents on the World Wide Web
No Code Required: Giving Users Tools to Transform the Web
No Code Required: Giving Users Tools to Transform the Web
Managing ambiguity in programming by finding unambiguous examples
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the FSE/SDP workshop on Future of software engineering research
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Synthesizing method sequences for high-coverage testing
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
NLP (natural language processing) for NLP (natural language programming)
CICLing'06 Proceedings of the 7th international conference on Computational Linguistics and Intelligent Text Processing
The continuing quest for abstraction
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Proceedings of the 34th International Conference on Software Engineering
SmartSynth: synthesizing smartphone automation scripts from natural language
Proceeding of the 11th annual international conference on Mobile systems, applications, and services
Visually modelling data intensive web applications to assist end-user development
Proceedings of the 6th International Symposium on Visual Information Communication and Interaction
Hi-index | 0.00 |
An important way of making interfaces usable by non-expert users is to enable the use of natural language input, as in natural language query interfaces to databases, or MUDs and MOOs. When the subject matter is about procedures, however, we have discovered that interfaces can take advantage of what we call Programmatic Semantics, procedural relations that can be inferred from the linguistic structure. Roughly, nouns can be interpreted as data structures; verbs are functions; adjectives are properties. Some linguistic forms imply conditionals, loops, and recursive structures.We illustrate the principles of Programmatic Semantics with a description of Metafor, a "brainstorming" editor for programs, analogous to an outlining tool for prose writing. Metafor interactively converts English sentences to partially specified program code, to be used as "scaffolding" for a more detailed program. A user study showed that Metafor is capable of capturing enough Programmatic Semantics to facilitate non-programming users and beginners' conceptualization of programming problems.