Flow Diagram
This page illustrates one of the configurations in which the language engine can be deployed.
Generating a COM module for an existing 'C' language function libraryThis is a fairly common problem, where one set of programmers with particular domain knowledge have written a function library in C or C++, and need to integrate it with other systems via COM. They will not necessarily have the technical skills to write COM wrappers, nor any inclination to acquire same.

- 
				Select templates
				
The task here is to build a COM object library, so an appropriate pre-rolled COM library template is selected. This manages all implementation details, such as creating a DevStudio project and all its source files, enabling the selected thread and deployment models, and supplying all the texts required for both in-library documentation and on-line help.
 - 
				Read existing code
				
 The existing 
					source code is read into the object model using 'C' language parsers. All 
					function signatures are parsed, and all available comments, including 
					structured comments (e.g. '@param') are read in. In addition assertions can be 
					read in, to establish any constraints assumed by the writer of the library 
					function. - 
				Enrich model
				
 
					Interactive tools are used by the developer to enrich the object model. In 
					particular, constraints on inputs and relations between inputs should be 
					indicated at this point, such as the linkage between an array pointer and an 
					array bound.
				 - 
				Generate binaries
				
 
					The language engine generates all the C++, IDL and RGS code and optionally 
					builds the project. The module is now complete and is ready for testing from 
					other modules and IDEs.The language engine also builds a test harness. This might be written in Visual Basic, with a custom form containing entry fields for all the function's parameters. Or it could be an Excel spreadsheet, with input & output fields laid out in a user-friendly way, and an add-in function written in VBA.
 - 
				Test and redesign
				
If further changes to the interface are required, return to Step 2 and make them, then regenerate the code.
 
In the following pages, we discuss some of the applications for which the engine has been used:
