Help me chart the battle against program complexity
August 16, 2005 11:19 AM
Subscribe
I'm doing some research for a paper about the ways in which computer science has been coping with program complexity throughout its short yet interesting history, and I'm worrying I might have overlooked some fundamental developments.
We're not talking about run-time complexity, I'm only interested in paradigms, methods and techniques that aid humans in understanding and managing a given codebase.
Currently, I've identified the following techniques:
- Structured programming: restricted list of language constructs including assignment, composition, iteration and selection
- Modularization: subroutines, coroutines, namespaces, packages, components, libraries, frameworks
- Object-oriented programming: classes and objects, encapsulation, polymorphism, inheritance
- Parametrization, templates, generic programming
- Meta-techniques: design patterns, coding standards, conventions
- Miscellanea: type checking, exception handling, garbage collection
Undoubtedly I've forgotten some fundamental developments in the field. Would you care to enlighten me? Any recommendations on seminal articles about the subject are highly appreciated too. Thanks a lot!
posted by koenie to science & nature (10 comments total)
It seems like what you're shooting for is a paper on comparative programming languages. It's a pretty standard CS class. If you can grab a syllabus, I'm sure there'll be plenty of reading.
Looking at your list subjectively, I might add:
aspect oriented programming
evolution of source control management
integrated development environments
software testing
posted by Loser at 11:44 AM on August 16, 2005