The consistent intialization of differential-algebraic systems
SIAM Journal on Scientific and Statistical Computing
Generalized algorithmic debugging and testing
ACM Letters on Programming Languages and Systems (LOPLAS)
Bipartite graphs and their applications
Bipartite graphs and their applications
Introduction to Physical Modeling with Modelica
Introduction to Physical Modeling with Modelica
Algorithmic Program DeBugging
A Theory of Objects
Modelica - A Unified Object-Oriented Language for System Modelling and Simulation
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Using Graph Decomposition for Solving Continuous CSPs
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
Mixed signal design space exploration through analog platforms
Proceedings of the 42nd annual Design Automation Conference
Static balance checking for first-class modular systems of equations
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
Hi-index | 0.00 |
This paper concerns the static analysis for debugging purposes of programs written in declarative equation based modeling languages. We first give an introduction to declarative equation based languages and the consequences equation based programming has for debugging. At the same time, we examine the particular debugging problems posed by Modelica, a declarative equation based modeling language. A brief overview of the Modelica language is also given. We also present our view of the issues and solutions based on a proposed framework for debugging declarative equation based languages. Program analysis solutions for program understanding and for static debugging of declarative equation based languages, based on bipartite graph decomposition, are presented in the paper. We also present an efficient way to annotate the underlying equations in order to help the implemented debugger to eliminate the heuristics involved in choosing the right error fixing solution. This also provides means to report the location of an error caught by the static analyzer or by the numeric solver, consistent with the user's perception of the source code and simulation model.