@conference {106,
	title = {Combining Fuzzy Logic and Behavioral Similarity for Non-strict Program Validation},
	booktitle = {Proceedings of the 8th ACM-SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP06)},
	year = {2006},
	abstract = {<p>The quality of an application{\textquoteright}s implementation can be assured by validating the presence or absence of a set of user-prescribed software patterns such as software engineering best practices, programming conventions and indications of poor programming. Most of the existing pattern detection techniques, however, interpret pattern descriptions in an inflexible manner, leaving the quality assurance tool to approve only the most strictly adhering pattern implementations. In order to detect various concrete pattern implementations using a single pattern description, we have combined logic meta programming {\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}-wherein patterns can be expressed as constraints over facts representing a program{\textquoteright}s source code{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}-, fuzzy logic and static program analysis in a way that is completely transparent to the end-user. We have achieved this by having the conditions in a logic rule interpreted as constraints over the run-time behavior source code constructs give rise to instead of as constraints over the literal source code constructs themselves. This way, a pattern{\textquoteright}s abstract description often suffices to recognize various concrete implementation variants with an indication of the similarity between the recognized implementation and the abstract pattern description.</p>},
	keywords = {fuzzy logic programming, logic meta programming, points-to-analysis, program analysis, program validation, quality assurance of object-oriented programs},
	isbn = {1-59593-388-3},
	author = {Coen De Roover and Johan Brichau and Theo D{\textquoteright}Hondt}
}
