Adequate proof principles for invariance and liveness properties of concurrent programs
Science of Computer Programming
Novice/expert differences in programming skills
International Journal of Man-Machine Studies - The MIT Press scientific computation series
Cognitive dimensions of notations
Proceedings of the fifth conference of the British Computer Society, Human-Computer Interaction Specialist Group on People and computers V
Twinkling lights and nested loops: distributed problem solving and spreadsheet development
International Journal of Man-Machine Studies - Computer-supported cooperative work and groupware. Part 1
Information relationships in PROLOG programs: how do programmers comprehend functionality?
International Journal of Man-Machine Studies
A small matter of programming: perspectives on end user computing
A small matter of programming: perspectives on end user computing
Watch what I do: programming by demonstration
Watch what I do: programming by demonstration
HyperTalk 2.2 (2nd ed.): the book
HyperTalk 2.2 (2nd ed.): the book
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
KidSim: end user programming of simulations
CHI '95 Conference Companion on Human Factors in Computing Systems
NaturalJava: a natural language interface for programming in Java
Proceedings of the 5th international conference on Intelligent user interfaces
Graph of triangulations of a convex polygon and tree of triangulations
Computational Geometry: Theory and Applications
Mental imagery in program design and visual programming
International Journal of Human-Computer Studies - Best of empirical studies of programmers 7
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Synthesis of Communicating Processes from Temporal Logic Specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
The use of English as a programming language
Communications of the ACM
Training agents to recognize text by example
Your wish is my command
Studying the language and structure in non-programmers' solutions to programming problems
International Journal of Human-Computer Studies
Learning to Build and Comprehend Complex Information Structures: PROLOG as a Case Study
Learning to Build and Comprehend Complex Information Structures: PROLOG as a Case Study
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Aspects and polymorphism in AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
An Overview of Temporal and Modal Logic Programming
ICTL '94 Proceedings of the First International Conference on Temporal Logic
Abstracting Process-to-Function Relations in Concurrency Object-Oriented Applications
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
The cognitive dimension of viscosity: A sticky problem for HCI
INTERACT '90 Proceedings of the IFIP TC13 Third Interational Conference on Human-Computer Interaction
ECOOP '98 Workshop ion on Object-Oriented Technology
Pluggable reflection: decoupling meta-interface and implementation
Proceedings of the 25th International Conference on Software Engineering
Using HCI Techniques to Design a More Usable Programming System
HCC '02 Proceedings of the IEEE 2002 Symposia on Human Centric Computing Languages and Environments (HCC'02)
Programming in natural language: “NLC” as a prototype
ACM '79 Proceedings of the 1979 annual conference
XAspects: an extensible system for domain-specific aspect languages
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Acoustic Modems for Ubiquitous Computing
IEEE Pervasive Computing
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
ACM SIGPLAN Notices
Weaving a social fabric into existing software
Proceedings of the 4th international conference on Aspect-oriented software development
Documenting aspect-oriented PHP (AOPHP)
SIGDOC '06 Proceedings of the 24th annual ACM international conference on Design of communication
The paradoxical success of aspect-oriented programming
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Pegasus: first steps toward a naturalistic programming language
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Semantics-based composition for aspect-oriented requirements engineering
Proceedings of the 6th international conference on Aspect-oriented software development
Conservative aspect-orientated programming with the e language
Proceedings of the 6th international conference on Aspect-oriented software development
Semantic vs. syntactic compositions in aspect-oriented requirements engineering: an empirical study
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Types and modularity for implicit invocation with implicit announcement
ACM Transactions on Software Engineering and Methodology (TOSEM)
Expressive pointcuts for increased modularity
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
Decoupling Aspects in Board Game Modeling
International Journal of Gaming and Computer-Mediated Simulations
An Empirical Investigation into Programming Language Syntax
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
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.