|
From: <fra...@us...> - 2009-07-17 04:39:34
|
Revision: 1766
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1766&view=rev
Author: frankrimlinger
Date: 2009-07-17 04:39:24 +0000 (Fri, 17 Jul 2009)
Log Message:
-----------
The "fourth error condition" for AALOAD, involving the rulekey heapThrewException, was unnecessary and probably wrong. This error condition, the rulekey, and the corresponding rules have been eliminated.
We now come to an interesting semantic question: what should be the formal type of
(valueH (refH ref ^className ) heap)
First it is important to understand that this is not the question: how shall concrete representations of this expression be realized in the code base? The answer to the second question is: use ClassNameSym. So, the first question now becomes, what is the formal type of ClassNameSym. I had carelessly decided to introduce the new formal type <className>, but this just leads to trouble. To see why, consider
(valueH (refH array-of-arrays index) heap)
Clearly this has formal type <object>. This device allows us to formally manufacture sub-arrays as their name. Similarly, we should be able to formally manufacture Class_MangoFormal objects as their name, so, for example, the native implementation of Object_MangoFormal.getClass() just pushes
(valueH (refH '@this ^className) '@inputHeap )) onto the caller frame. This avoids meaningless conversion back and forth between <object> and <className>.
Finally, we introduce the RuleKeys makeClass and makeComponentClass and rules
(makeClass sym) ---> ClassNameSym with same name as sym
(makeComponentClass sym) --> ClassNameSym with name x, where x[] is the name of sym.
With this new conceptualization, the old RuleKeys
getComponentType
makeClassPtr
are retired.
We also retire the synthetic field _fully_qualified_class_name in Class_MangoFormal. This will require reimplementing the native abstractions for this class.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Automatic.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Instantiated.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashCoreParser.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashMangoModel.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashRewriter.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/InterpretableSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapPointer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/FunctionSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/AALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/AASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ACATCHHANDLER.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/system/System/java/lang/Class_MangoFormal.java
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/MakeArray.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/MakePtr.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|