next up previous contents index
Next: Acknowledgements Up: Design Considerations for Kimwitu Previous: What is in a

What is the Place in Software Engineering?

In the engineering of language based software, there are two extreme approaches. One is to just use a regular programming language (assembly language is not used very much any more these days), the other is to use a very high-level formalism, such as attribute grammars. Kimwitu was designed to fill a place in between these extremes, and to attempt to bridge the gap. The main theme is that by supporting multi-paradigm programming  one can avoid being locked in by one formalism. In each formalism there are things that cannot be easily or efficiently expressed. Abstract data types can allow easy expression of certain functions, but the implementations are not necessarily efficient. In C every detail that can possibly influence performance is under the control of the programmer, but that does not necessarily allow easy expression of conceptually simple functions.