On 2008 Sep 3, at 14:34, Andrew Coppin wrote:
Brandon S. Allbery KF8NH wrote:
You can define a set of valid transformations, have the interpreter
log each transformation, and verify that all are correct (that is,
that both the transformation and the logged result are correct.
This assumes the interpreter can be resolved down to a sufficiently
simple set of transformations; if not, you're right back at having
the tester being the interpreter itself. Note that you don't check
if the transformation plan for the program matches a specified
list, just that all transformations are correct. (Just remember
that "logic is an organized way of going wrong with confidence.")
The amusing (?) part is that the interpretter itself is essentially
quite simple. I've implemented it several times before now. But what
I'm trying to do it make it print out elaborately formatted
execution traces so that a human user can observe how execution
proceeds. This transforms an essentially simple algorithm into
something quite nausiatingly complex, with many subtle bugs and
issues.
This seems odd to me: I would expect to wrap a WriterT around it, log
unformatted actions there, and dump it to a file at the end to be read
by an analyzer tool which can optionally reformat the log to be human-
readable.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon university KF8NH
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe