2013/03/19

Software design is Language Design



Library Design is Language Design,
- Bell Labs proverb
and vice vera.
- Andrew R. Koenig
... Designing a general library is much harder than designing an ordinary program. A program solution to a particular context, but a library must be the solution to a set of problems encountered in a number of projects. An ordinary program can make strong assumptions about its environment, but a good library has to operate successful in the contexts provided by a number of programs. ... 
- Bjarne Stroustrup, The C++ Programming Language 2nd Edition, Chapter 13. Design of Libraries


2013/03/10

Organizing a program as a language processor

File:English4.gif
...  A Second, more philosophical point, is the value of thinking of the job at hand more as language development than as "writing a program." Organizing a program as a language processor encourages regularity of syntax (which is the user interface), and structures the implementation. It also helps to ensure that new features will mesh smoothly with existing ones.

Brian W. Kernighan and Rob Pike, "The UNIX Programming Environment", p286, 1984

2013/03/08

Multi-lingual Programming

앞표지 

Beauty in programs, as in poetry, is not language-independent. There is an aesthetic dimension in programming that is visible only to the multi-lingual programmer.

"Programming Languages: An Intepreter-Based Approach.", Samuel N. Kamin, 1990