Next: , Previous: , Up: Top   [Contents][Index]

6 Implementation

coNCePTuaL could have been implemented as a benchmarking library instead of as a special-purpose language. In addition to improved readability and the practicality of including entire source programs in every log file, one advantage of the language approach is that the same coNCePTuaL source code can be used to compare the performance of multiple communication libraries. A compiler command-line option selects a particular backend module to use to generate code. Each backend outputs code for a different combination of low-level language and communication library.

The coNCePTuaL compiler is structured into a pipeline of modules. Thus, the backend can be replaced without altering the front end, lexer, or parser modules. coNCePTuaL ensures consistency across backends by providing a run-time library that generated code can link to. The run-time library encapsulates many of the mundane tasks a network correctness or performance test needs to perform.

Scott Pakin,