Debugging and Structural Analysis of Declarative Equation-Based Languages

A significant part of the software development effort is spent on detecting deviations between software implementations and specifications, and subsequently locating the sources of such errors. This thesis illustrates that is possible to identify a significant number of errors during static analysis...

Full description

Bibliographic Details
Main Author: Bunus, Peter
Format: Others
Language:English
Published: Linköpings universitet, PELAB - Laboratoriet för programmeringsomgivningar 2002
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-5727
http://nbn-resolving.de/urn:isbn:9173733822
id ndltd-UPSALLA1-oai-DiVA.org-liu-5727
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-liu-57272020-05-30T03:46:11ZDebugging and Structural Analysis of Declarative Equation-Based LanguagesengBunus, PeterLinköpings universitet, PELAB - Laboratoriet för programmeringsomgivningarLinköpings universitet, Tekniska högskolanInstitutionen för datavetenskap2002software developmentobject-orienteddebuggingcomputer programmingdebugging kernel prototypesComputer SciencesDatavetenskap (datalogi)A significant part of the software development effort is spent on detecting deviations between software implementations and specifications, and subsequently locating the sources of such errors. This thesis illustrates that is possible to identify a significant number of errors during static analysis of declarative object-oriented equation-based modeling languages that are typically used for system modeling and simulation. Detecting anomalies in the source code without actually solving the underlying system of equations provides a significant advantage: a modeling error can be corrected before trying to get the model compiled or embarking on a computationally expensive symbolic or numerical solution process. The overall objective of this work is to demonstrate that debugging based on static analysis techniques can considerably improve the error location and error correcting process when modeling with equation-based languages. A new method is proposed for debugging of over- and under-constrained systems of equations. The improved approach described in this thesis is to perform the debugging process on the flattened intermediate form of the source code and to use filtering criteria generated from program annotations and from the translation rules. Each time when an error is detected in the intermediate code and the error fixing solution is elaborated, the debugger queries for the original source code before presenting any information to the user. In this way, the user is exposed to the original language source code and not burdened with additional information from the translation process or required to inspect the intermediate code. We present the design and implementation of debugging kernel prototypes, tightly integrated with the core of the optimizer module of a Modelica compiler, including details of the novel framework required for automatic debugging of equation-based languages. This thesis establishes that structural static analysis performed on the underlying system of equations from object-oriented mathematical models can effectively be used to statically debug real Modelica programs. Most of our conclusions developed in this thesis are also valid for other equation-based modeling languages. <p>Report code: LiU-Tek-Lic-2002:37.</p>Licentiate thesis, monographinfo:eu-repo/semantics/masterThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-5727urn:isbn:9173733822Local LiU-Tek-Lic-2002:37Linköping Studies in Science and Technology. Thesis, 0280-7971 ; 964application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic software development
object-oriented
debugging
computer programming
debugging kernel prototypes
Computer Sciences
Datavetenskap (datalogi)
spellingShingle software development
object-oriented
debugging
computer programming
debugging kernel prototypes
Computer Sciences
Datavetenskap (datalogi)
Bunus, Peter
Debugging and Structural Analysis of Declarative Equation-Based Languages
description A significant part of the software development effort is spent on detecting deviations between software implementations and specifications, and subsequently locating the sources of such errors. This thesis illustrates that is possible to identify a significant number of errors during static analysis of declarative object-oriented equation-based modeling languages that are typically used for system modeling and simulation. Detecting anomalies in the source code without actually solving the underlying system of equations provides a significant advantage: a modeling error can be corrected before trying to get the model compiled or embarking on a computationally expensive symbolic or numerical solution process. The overall objective of this work is to demonstrate that debugging based on static analysis techniques can considerably improve the error location and error correcting process when modeling with equation-based languages. A new method is proposed for debugging of over- and under-constrained systems of equations. The improved approach described in this thesis is to perform the debugging process on the flattened intermediate form of the source code and to use filtering criteria generated from program annotations and from the translation rules. Each time when an error is detected in the intermediate code and the error fixing solution is elaborated, the debugger queries for the original source code before presenting any information to the user. In this way, the user is exposed to the original language source code and not burdened with additional information from the translation process or required to inspect the intermediate code. We present the design and implementation of debugging kernel prototypes, tightly integrated with the core of the optimizer module of a Modelica compiler, including details of the novel framework required for automatic debugging of equation-based languages. This thesis establishes that structural static analysis performed on the underlying system of equations from object-oriented mathematical models can effectively be used to statically debug real Modelica programs. Most of our conclusions developed in this thesis are also valid for other equation-based modeling languages. === <p>Report code: LiU-Tek-Lic-2002:37.</p>
author Bunus, Peter
author_facet Bunus, Peter
author_sort Bunus, Peter
title Debugging and Structural Analysis of Declarative Equation-Based Languages
title_short Debugging and Structural Analysis of Declarative Equation-Based Languages
title_full Debugging and Structural Analysis of Declarative Equation-Based Languages
title_fullStr Debugging and Structural Analysis of Declarative Equation-Based Languages
title_full_unstemmed Debugging and Structural Analysis of Declarative Equation-Based Languages
title_sort debugging and structural analysis of declarative equation-based languages
publisher Linköpings universitet, PELAB - Laboratoriet för programmeringsomgivningar
publishDate 2002
url http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-5727
http://nbn-resolving.de/urn:isbn:9173733822
work_keys_str_mv AT bunuspeter debuggingandstructuralanalysisofdeclarativeequationbasedlanguages
_version_ 1719315542240657408