TY - GEN
T1 - Boolean constraints for binding-time analysis
AU - Glynn, Kevin
AU - Stuckey, Peter J.
AU - Sulzmann, Martin
AU - Søndergaard, Harald
PY - 2001/12/1
Y1 - 2001/12/1
N2 - To achieve acceptable accuracy, many program analyses for functional programs are "property polymorphic". That is, they can infer different input-output relations for a function at separate applications of the function, in a manner similar to type inference for a polymorphic language. We extend a property polymorphic (or "polyvariant") method for binding-time analysis, due to Dussart, Henglein, and Mossin, so that it applies to languages with ML-style type polymorphism. The extension is non-trivial and we have implemented it for Haskell. While we follow others in specifying the analysis as a non-standard type inference, we argue that it should be realised through a translation into the well-understood domain of Boolean constraints. The expressiveness offered by Boolean constraints opens the way for smooth extensions to sophisticated language features and it allows for more accurate analysis.
AB - To achieve acceptable accuracy, many program analyses for functional programs are "property polymorphic". That is, they can infer different input-output relations for a function at separate applications of the function, in a manner similar to type inference for a polymorphic language. We extend a property polymorphic (or "polyvariant") method for binding-time analysis, due to Dussart, Henglein, and Mossin, so that it applies to languages with ML-style type polymorphism. The extension is non-trivial and we have implemented it for Haskell. While we follow others in specifying the analysis as a non-standard type inference, we argue that it should be realised through a translation into the well-understood domain of Boolean constraints. The expressiveness offered by Boolean constraints opens the way for smooth extensions to sophisticated language features and it allows for more accurate analysis.
UR - http://www.scopus.com/inward/record.url?scp=84888247018&partnerID=8YFLogxK
M3 - Conference Paper
AN - SCOPUS:84888247018
SN - 3540420681
SN - 9783540420682
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 39
EP - 62
BT - Programs as Data Objects - Second Symposium, PADO 2001, Proceedings
T2 - 2nd Symposium on Programs as Data Objects, PADO 2001
Y2 - 21 May 2001 through 23 May 2001
ER -