Monday, February 13, 2012

Fred Brooks' Five Design Principles For Programming Language Design (2.22)

Have you wondered what the basic ideas are for creating a programming language? No? Well, according to Fred Brooks, they are as follows:

  1. Design, don't hack
  2. Study other designs
  3. Design top-down
  4. Know the application area
  5. Iterate
Let's see what these mean and if the design of the C++ language has utilized these five principles effectively.


  1. Just to tweak someones work, isn't design.
  2. Design requires the knowledge of what works/doesn't. Of what's missing. This can only be acquired through the study of previous and current design.
  3. You must break up the structure into basic blocks to understand every aspect. If you don't understand, then you aren't designing, but coming upon an accident. You have to see the parts and the whole.
  4. Knowing how the language will be used/implemented will guide you in its design.
  5. You must go over every aspect of the whole design. This must be done many times to see what is missing, or what is too much. Have you gone beyond what you intended? Or have you not reached your goal yet? 

From the sidelines, it seems like C++ was hacked a little too much from C. Although, there are many different aspects that show the studying of other languages. The top down approach evident, along with the iterative design method. From C++'s widespread use and the development of C# and other languages that took after C++, I can see that the designer knew the application area very well. Last, but not least, C++ is still a very widely used language and I think it deserves the credit due.

No comments:

Post a Comment