|
From: <fra...@us...> - 2009-08-08 01:37:04
|
Revision: 1812
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1812&view=rev
Author: frankrimlinger
Date: 2009-08-08 01:36:57 +0000 (Sat, 08 Aug 2009)
Log Message:
-----------
Implementing new strategy for RuleViewSym secondary hashing. The basic contract of this hash is that rule patterns must hash to the same place as all expressions which match on such a pattern. The original idea to just take the top-level (ruleKey, numArgs) pair as the hash key is inadequate, but now serves as a primary hash. After the primary has is built for the rulebase, a census is taken. All the rules whose corresponding class is not variable length but is too coarse are then further subgrouped by "secondary pattern". The secondary pattern associates to each argument:
rulekey if the argument is a corresponding cons (rulekey ...)
arg if the argument is <patternImmutable>
#SWildCard ? otherwise
to form the key (secondaryPattern arg1 ... argn)
A rewrite candidate expression which hashes to a coarse class is then matched against each secondary pattern using simple grep logic, and the hits are forwarded to the rewrite engine for unification.
Hopefully this will eliminate unifier bottlenecks. The variable length rules are not believed to be a performance issue, but there is no factual basis for this belief.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/sym/RuleViewSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/events/Rewriter.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleBase.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleGenerator.java
branches/mango/Mango/Mango/src/mango/worker/engine/unifier/UnifyEvent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleCensus.java
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()Ljava.lang.Class_MangoFormal;/
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/core/sym/LengthViewSym.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|