* -> x in interpreter - for non-determinism multiple clauses with same name with output *()-[unnec x test works before *2] Make bottom up entry version for CAWMP - finds multiple clauses with same name, recursive clauses by making a predicate that calls them, moving bottom up and calling the multiple clauses with the same name (a level below the predicate that calls them) - possibly reverse Algorithms to call the upper predicates first -- test alg can write nondet clauses, then do s2mls - s2mls x write alg backwards (and forwards, meeting in the middle) x forwards, using qa - calls cawmp if nec - writes specs, connects specs together - give rules to write alg (using recursive templates x modified cawmp *2 x better to write spec, not alg first - write as go, running code so far to find new input spec, doesn't require input after initial input spec, can do non r,mr cawmp this way, also for manual entry (me): identifying dependent segments in spec to do together when bottom up - like backtracking symbols to specs, checks spec matches data on way - with full spec does it need bottom up? - yes - so scrap input for new preds computation and check and have qa, but top down ok too for mr, r - me is bottom up and top down) and spec (saves along way x), not: uses templates with e.g. list checked against list to produce list, numbers as data - bottom up is faster, if could do qa, would be better for r,mr,me x too difficult to split single spec, so top down - do lpv with rec s2mls x - splits single line specification into multiple lines - splits on choice points in lists - tries 1, then multiple choice points () Algorithm generator --- () Program Finder for multiple lists - for repeating data - parts of program finder's predicate can be put into cawmp - * don't need num io in call's parameters because in dictionary - put in notes CAWMP - for unidentified (transformed) data - identifies constants () - uses multiple predicates as if-then - tries on purpose ()