Anti-pattern Matching Modulo
Identifieur interne : 004421 ( Main/Exploration ); précédent : 004420; suivant : 004422Anti-pattern Matching Modulo
Auteurs : Claude Kirchner ; Radu Kopetz ; Pierre-Etienne MoreauSource :
- Lecture Notes in Computer Science [ 0302-9743 ]
Abstract
Abstract: Negation is intrinsic to human thinking and most of the time when searching for something, we base our patterns on both positive and negative conditions. In a recent work, the notion of term was extended to the one of anti-term, i.e. terms that may contain complement symbols. Here we generalize the syntactic anti-pattern matching to anti-pattern matching modulo an arbitrary equational theory ε, and we study the specific and practically very useful case of associativity, possibly with a unity ( $\mathcal{AU}$ ). To this end, based on the syntacticness of associativity, we present a rule-based associative matching algorithm, and we extend it to $\mathcal{AU}$ . This algorithm is then used to solve $\mathcal{AU}$ anti-pattern matching problems. This allows us to be generic enough so that for instance, the AllDiff standard predicate of constraint programming becomes simply expressible in this framework. $\mathcal{AU}$ anti-patterns are implemented in the Tom language and we show some examples of their usage.
Url:
DOI: 10.1007/978-3-540-88282-4_26
Affiliations:
Links toward previous steps (curation, corpus...)
- to stream Istex, to step Corpus: 002C80
- to stream Istex, to step Curation: 002C43
- to stream Istex, to step Checkpoint: 000E49
- to stream Hal, to step Corpus: 000F14
- to stream Hal, to step Curation: 000F14
- to stream Hal, to step Checkpoint: 003403
- to stream Main, to step Merge: 004532
- to stream Main, to step Curation: 004421
Le document en format XML
<record><TEI wicri:istexFullTextTei="biblStruct"><teiHeader><fileDesc><titleStmt><title xml:lang="en">Anti-pattern Matching Modulo</title>
<author><name sortKey="Kirchner, Claude" sort="Kirchner, Claude" uniqKey="Kirchner C" first="Claude" last="Kirchner">Claude Kirchner</name>
</author>
<author><name sortKey="Kopetz, Radu" sort="Kopetz, Radu" uniqKey="Kopetz R" first="Radu" last="Kopetz">Radu Kopetz</name>
</author>
<author><name sortKey="Moreau, Pierre Etienne" sort="Moreau, Pierre Etienne" uniqKey="Moreau P" first="Pierre-Etienne" last="Moreau">Pierre-Etienne Moreau</name>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">ISTEX</idno>
<idno type="RBID">ISTEX:BCBCB505F6725B83E57366ABE84DD07287554931</idno>
<date when="2008" year="2008">2008</date>
<idno type="doi">10.1007/978-3-540-88282-4_26</idno>
<idno type="url">https://api.istex.fr/ark:/67375/HCB-HK37NL3B-X/fulltext.pdf</idno>
<idno type="wicri:Area/Istex/Corpus">002C80</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Corpus" wicri:corpus="ISTEX">002C80</idno>
<idno type="wicri:Area/Istex/Curation">002C43</idno>
<idno type="wicri:Area/Istex/Checkpoint">000E49</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Checkpoint">000E49</idno>
<idno type="wicri:doubleKey">0302-9743:2008:Kirchner C:anti:pattern:matching</idno>
<idno type="wicri:source">HAL</idno>
<idno type="RBID">Hal:inria-00337722</idno>
<idno type="url">https://hal.inria.fr/inria-00337722</idno>
<idno type="wicri:Area/Hal/Corpus">000F14</idno>
<idno type="wicri:Area/Hal/Curation">000F14</idno>
<idno type="wicri:Area/Hal/Checkpoint">003403</idno>
<idno type="wicri:explorRef" wicri:stream="Hal" wicri:step="Checkpoint">003403</idno>
<idno type="wicri:Area/Main/Merge">004532</idno>
<idno type="wicri:Area/Main/Curation">004421</idno>
<idno type="wicri:Area/Main/Exploration">004421</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title level="a" type="main" xml:lang="en">Anti-pattern Matching Modulo</title>
<author><name sortKey="Kirchner, Claude" sort="Kirchner, Claude" uniqKey="Kirchner C" first="Claude" last="Kirchner">Claude Kirchner</name>
<affiliation><wicri:noCountry code="subField"> </wicri:noCountry>
</affiliation>
</author>
<author><name sortKey="Kopetz, Radu" sort="Kopetz, Radu" uniqKey="Kopetz R" first="Radu" last="Kopetz">Radu Kopetz</name>
<affiliation><wicri:noCountry code="subField"> </wicri:noCountry>
</affiliation>
</author>
<author><name sortKey="Moreau, Pierre Etienne" sort="Moreau, Pierre Etienne" uniqKey="Moreau P" first="Pierre-Etienne" last="Moreau">Pierre-Etienne Moreau</name>
<affiliation><wicri:noCountry code="subField"> </wicri:noCountry>
</affiliation>
</author>
</analytic>
<monogr></monogr>
<series><title level="s" type="main" xml:lang="en">Lecture Notes in Computer Science</title>
<idno type="ISSN">0302-9743</idno>
<idno type="eISSN">1611-3349</idno>
<idno type="ISSN">0302-9743</idno>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt><idno type="ISSN">0302-9743</idno>
</seriesStmt>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Abstract: Negation is intrinsic to human thinking and most of the time when searching for something, we base our patterns on both positive and negative conditions. In a recent work, the notion of term was extended to the one of anti-term, i.e. terms that may contain complement symbols. Here we generalize the syntactic anti-pattern matching to anti-pattern matching modulo an arbitrary equational theory ε, and we study the specific and practically very useful case of associativity, possibly with a unity ( $\mathcal{AU}$ ). To this end, based on the syntacticness of associativity, we present a rule-based associative matching algorithm, and we extend it to $\mathcal{AU}$ . This algorithm is then used to solve $\mathcal{AU}$ anti-pattern matching problems. This allows us to be generic enough so that for instance, the AllDiff standard predicate of constraint programming becomes simply expressible in this framework. $\mathcal{AU}$ anti-patterns are implemented in the Tom language and we show some examples of their usage.</div>
</front>
</TEI>
<affiliations><list></list>
<tree><noCountry><name sortKey="Kirchner, Claude" sort="Kirchner, Claude" uniqKey="Kirchner C" first="Claude" last="Kirchner">Claude Kirchner</name>
<name sortKey="Kopetz, Radu" sort="Kopetz, Radu" uniqKey="Kopetz R" first="Radu" last="Kopetz">Radu Kopetz</name>
<name sortKey="Moreau, Pierre Etienne" sort="Moreau, Pierre Etienne" uniqKey="Moreau P" first="Pierre-Etienne" last="Moreau">Pierre-Etienne Moreau</name>
</noCountry>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Lorraine/explor/InforLorV4/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 004421 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 004421 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Lorraine |area= InforLorV4 |flux= Main |étape= Exploration |type= RBID |clé= ISTEX:BCBCB505F6725B83E57366ABE84DD07287554931 |texte= Anti-pattern Matching Modulo }}
![]() | This area was generated with Dilib version V0.6.33. | ![]() |