CYC: a large-scale investment in knowledge infrastructure
Communications of the ACM
Programmatic semantics for natural language interfaces
CHI '05 Extended Abstracts on Human Factors in Computing Systems
Pegasus: first steps toward a naturalistic programming language
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Personal reflections on automation, programming culture, and model-based software engineering
Automated Software Engineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Digital Intuition: Applying Common Sense Using Dimensionality Reduction
IEEE Intelligent Systems
Managing ambiguity in programming by finding unambiguous examples
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Software helps people fulfill their goals, but development tools lack understanding of those goals. But if development tools did understand how software artifacts relate to higher-level intents and goals, they could help developers reuse code, solve problems, and develop systems that are more robust and easier to use. In this paper, we suggest that supporting software development at a stage before concrete formalization is an area of opportunity for software engineering research. We discuss three aspects that are both core challenges and opportunities for this research area: handling ambiguity, understanding human situations, and flexible reflection about failure, and identify research results suggesting that substantial progress can be made on these problems within a decade. We believe that this research will make it easier to develop software that is more broadly useful and robust, even in the face of everyday uncertainty and failure.