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":"https://raw.githubusercontent.com/zarajoy/testbibtex/refs/heads/main/test.bib","dataSources":["yWvm3kzg5vKQAPLm7","ofmsZryxNDBSpE7j5","9aC4cxLD8D6oJ3FLN","wpkuJrZJJtqra3FbL","W7ih7WyQivP4EDh83","BNGFBQQncqevukxoe","q5pWX4XZgAS4TQBof","yb3uN577XrYa7qf57","9jmvjAEoFta6emcgS","XqcrNTrCCBr9mSd37"],"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}