next up previous
Next: Object Oriented Design Up: uCRC and C++ Previous: Requirements of the Languages

Requirements of Common Sense

Ultimately, it is not enough to just make the compiler happy. The programmer using the compiler is the real customer and the programmer wants to make devices do interesting things. It is therefore not useful to have a beautiful and fast string manipulation library if the programmer cannot fit the program in memory.

Therefore, any practical system should make as much of the standard libraries as reasonable available to the programmer, without imposing extra costs. One programmer may not wish to pay for stdio, but another may find it worth while.

Finally, we wanted a lot of power out of uCR, but simplicity and efficiency were most important. It is intended to be a language runtime, so certain standards, such as POSIX [5], were not considered desireable for embedded applications. We also tried to keep the size and complexity of the programming interface small and understandable. When testing a new board design, or debugging an older malfunctioning board, simple and obvious software behavior has its own special value.

Stephen Williams
Sun May 4 15:28:26 PDT 1997