Abstract
Software understanding for documentation, maintenance or evolution is one of the longest-standing problems in Computer Science. The use of "high-level" programming paradigms and object-oriented languages helps, but fundamentally remains far from solving the problem. Most programming languages and systems have fallen prey to the assumption that they are supposed to capture idealized models of computation inspired by deceptively simple metaphors such as objects and mathematical functions. Aspect-oriented programming languages have made a significant breakthrough by noticing that, in many situations, humans think and describe in crosscutting terms. In this paper we suggest that the next breakthrough would require looking even closer to the way humans have been thinking and describing complex systems for thousand of years using natural languages. While natural languages themselves are not appropriate for programming, they contain a number of elements that make descriptions concise, effective and understandable. In particular, natural languages referentiality is a key factor in supporting powerful program organizations that can be easier understood by humans.
Original language | English |
---|---|
Pages (from-to) | 34-43 |
Number of pages | 10 |
Journal | ACM SIGPLAN Notices |
Volume | 38 |
Issue number | 12 |
DOIs | |
State | Published - 2003 |
Externally published | Yes |
Event | 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA'03 - Anaheim, CA, United States Duration: 26 Oct 2003 → 30 Oct 2003 |
Keywords
- Aspect-Oriented Programming
- Cognitive Foundations of Programming
- Language design
- Natural Language