Engineering domain-specific languages and automatic code generation for computational simulations of complex systems

Ken A. Hawick


domain specific languages, automatic code generation, simulation models, complex system, software engineering


Simulating complex systems often requires highperformance software to be custom developed. However families of simulation problem do arise in which many computational tools, data structures and semantic ideas are shared in common. Software engineering mechanisms that support the sharing and reuse of developed code are strongly desirable to save cost on development effort, testing and validation effort, and specifically to lower the time involved from concept to implementation for a new simulation model. Domain-Specific Languages (DSLs) provide a valuable such mechanism and act as a semantic bridge between application domain expert and programmer. Even in cases of computational scientists where these two roles might be played by the same individual, a DSL provides a powerful mechanism to abstract domain-specific ideas to improve the development time by lowering the software code complexity. We discuss some families of complex systems simulation problem and some experiences with domain-specific languages and automatic code generation (ACG) tools – particularly when applied to manage simulations where parallel and distributed computing technologies are used to speed-up the process of statistics collection from the numerical experiments.

Important Links:

Go Back