A Practical Object-Oriented Analysis Engine for Constraint Logic Programs. Kelly, A. D., Marriott, K., Søndergaard, H., & Stuckey, P. J. Software—Practice and Experience, 28(2):199–224, 1998. doi abstract bibtex The incorporation of global program analysis into recent compilers for constraint logic programming (CLP) languages has greatly improved the efficiency of these new languages. We present a global analyzer based on abstract interpretation. Unlike traditional optimizers, whose designs tend to be ad hoc, the analyzer has been designed with maxiaml flexibility in mind. The analyzer is incremental, allowing substantial program transformations by a compiler without requiring redundant re-computation of analysis data. The anayser is also generic in that it can perform a large number of different program analyses. Furthermore, the analyzer has an object-oriented design, enabling it to be adapted to different applications and allowing it to be used with various CLP languages with simple modifications. As an example of this generality, we sketch the use of the analyzer in two different applications involving two different CLP languages: an optimizing compiler for CLP(${a̧l R}$) programs and an application for detecting occur-check problems in Prolog programs.
@Article{Kel-Mar-Son-Stu_SPE98,
author = {Andrew D. Kelly and
Kim Marriott and
Harald S{\o}ndergaard and
Peter J. Stuckey},
title = {A Practical Object-Oriented Analysis Engine for Constraint
Logic Programs},
journal = {Software---Practice and Experience},
volume = {28},
number = {2},
pages = {199--224},
year = {1998},
doi = {10.1002/(SICI)1097-024X(199802)28:2<199::AID-SPE150>3.0.CO;2-4},
abstract = {The incorporation of global program analysis into recent
compilers for constraint logic programming (CLP) languages has
greatly improved the efficiency of these new languages. We
present a global analyzer based on abstract interpretation.
Unlike traditional optimizers, whose designs tend to be ad hoc,
the analyzer has been designed with maxiaml flexibility in
mind. The analyzer is incremental, allowing substantial program
transformations by a compiler without requiring redundant
re-computation of analysis data. The anayser is also
generic in that it can perform a large number of different
program analyses. Furthermore, the analyzer has an
object-oriented design, enabling it to be adapted to different
applications and allowing it to be used with various CLP
languages with simple modifications. As an example of this
generality, we sketch the use of the analyzer in two different
applications involving two different CLP languages: an
optimizing compiler for CLP(${\cal R}$) programs and an
application for detecting occur-check problems in Prolog
programs.},
keywords = {Constraint programming, Logic programming, Abstract interpretation, Prolog, Static analysis, Program transformation, Compilation, Unification},
}
Downloads: 0
{"_id":"5PkPfeDoq6QLRyNxv","bibbaseid":"kelly-marriott-sndergaard-stuckey-apracticalobjectorientedanalysisengineforconstraintlogicprograms-1998","author_short":["Kelly, A. D.","Marriott, K.","Søndergaard, H.","Stuckey, P. J."],"bibdata":{"bibtype":"article","type":"article","author":[{"firstnames":["Andrew","D."],"propositions":[],"lastnames":["Kelly"],"suffixes":[]},{"firstnames":["Kim"],"propositions":[],"lastnames":["Marriott"],"suffixes":[]},{"firstnames":["Harald"],"propositions":[],"lastnames":["Søndergaard"],"suffixes":[]},{"firstnames":["Peter","J."],"propositions":[],"lastnames":["Stuckey"],"suffixes":[]}],"title":"A Practical Object-Oriented Analysis Engine for Constraint Logic Programs","journal":"Software—Practice and Experience","volume":"28","number":"2","pages":"199–224","year":"1998","doi":"10.1002/(SICI)1097-024X(199802)28:2<199::AID-SPE150>3.0.CO;2-4","abstract":"The incorporation of global program analysis into recent compilers for constraint logic programming (CLP) languages has greatly improved the efficiency of these new languages. We present a global analyzer based on abstract interpretation. Unlike traditional optimizers, whose designs tend to be ad hoc, the analyzer has been designed with maxiaml flexibility in mind. The analyzer is incremental, allowing substantial program transformations by a compiler without requiring redundant re-computation of analysis data. The anayser is also generic in that it can perform a large number of different program analyses. Furthermore, the analyzer has an object-oriented design, enabling it to be adapted to different applications and allowing it to be used with various CLP languages with simple modifications. As an example of this generality, we sketch the use of the analyzer in two different applications involving two different CLP languages: an optimizing compiler for CLP(${a̧l R}$) programs and an application for detecting occur-check problems in Prolog programs.","keywords":"Constraint programming, Logic programming, Abstract interpretation, Prolog, Static analysis, Program transformation, Compilation, Unification","bibtex":"@Article{Kel-Mar-Son-Stu_SPE98,\n author = {Andrew D. Kelly and \n\t\tKim Marriott and \n\t\tHarald S{\\o}ndergaard and \n\t\tPeter J. Stuckey},\n title = {A Practical Object-Oriented Analysis Engine for Constraint\n Logic Programs},\n journal = {Software---Practice and Experience},\n volume = {28},\n number = {2},\n pages = {199--224},\n year = {1998},\n doi = {10.1002/(SICI)1097-024X(199802)28:2<199::AID-SPE150>3.0.CO;2-4},\n abstract = {The incorporation of global program analysis into recent \n\t\tcompilers for constraint logic programming (CLP) languages has \n\t\tgreatly improved the efficiency of these new languages. We \n\t\tpresent a global analyzer based on abstract interpretation.\n\t\tUnlike traditional optimizers, whose designs tend to be ad hoc,\n\t\tthe analyzer has been designed with maxiaml flexibility in\n\t\tmind. The analyzer is incremental, allowing substantial program\n\t\ttransformations by a compiler without requiring redundant\n\t\tre-computation of analysis data. The anayser is also\n\t\tgeneric in that it can perform a large number of different\n\t\tprogram analyses. Furthermore, the analyzer has an\n\t\tobject-oriented design, enabling it to be adapted to different\n\t\tapplications and allowing it to be used with various CLP \n\t\tlanguages with simple modifications. As an example of this \n\t\tgenerality, we sketch the use of the analyzer in two different\n\t\tapplications involving two different CLP languages: an \n\t\toptimizing compiler for CLP(${\\cal R}$) programs and an \n\t\tapplication for detecting occur-check problems in Prolog \n\t\tprograms.},\n keywords = {Constraint programming, Logic programming, Abstract interpretation, Prolog, Static analysis, Program transformation, Compilation, Unification},\n}\n\n","author_short":["Kelly, A. D.","Marriott, K.","Søndergaard, H.","Stuckey, P. J."],"key":"Kel-Mar-Son-Stu_SPE98","id":"Kel-Mar-Son-Stu_SPE98","bibbaseid":"kelly-marriott-sndergaard-stuckey-apracticalobjectorientedanalysisengineforconstraintlogicprograms-1998","role":"author","urls":{},"keyword":["Constraint programming","Logic programming","Abstract interpretation","Prolog","Static analysis","Program transformation","Compilation","Unification"],"metadata":{"authorlinks":{}}},"bibtype":"article","biburl":"people.eng.unimelb.edu.au/harald/bibbase.bib","dataSources":["yWvm3kzg5vKQAPLm7","ofmsZryxNDBSpE7j5","9aC4cxLD8D6oJ3FLN","wpkuJrZJJtqra3FbL","XqcrNTrCCBr9mSd37","W7ih7WyQivP4EDh83"],"keywords":["constraint programming","logic programming","abstract interpretation","prolog","static analysis","program transformation","compilation","unification"],"search_terms":["practical","object","oriented","analysis","engine","constraint","logic","programs","kelly","marriott","søndergaard","stuckey"],"title":"A Practical Object-Oriented Analysis Engine for Constraint Logic Programs","year":1998}