git @ Cat's Eye Technologies relwrite / 3fdddd6
Some aspirational TODO notes. Chris Pressey 10 months ago
1 changed file(s) with 21 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
6666 `relwrite` uses the term "derivation" as a generic term meaning "a parse or a generated utterance".
6767 It also uses the term "utterance" to mean "any string of terminals and non-terminals".
6868
69 ### TODO
69 ### TODO (immediate)
7070
71 * specify output filename
71 * `--output-file` to specify output filename
7272 * `--goal` to assert that a particular final utterance appears
73 * Turn `complete` into a strategy that must be explicitly selected.
74
75 ### TODO (aspirational)
76
77 Analyze the input grammar and classify it in the Chomsky hierarchy.
78
79 If the input grammar is context-free, use an algorithm such as Earley or CYK to
80 efficiently parse or generate it.
81
82 Allow strategies to be defined richly, perhaps in JSON files, and let
83 them configure parameters like beam width, max rewrites per utterance, etc.
84
85 For max rewrites per utterance, allow them to be taken from random
86 points (or at least from a randomly-chosen start point) in the utterace.
87
88 Support random search. For `contract` strategy, it should be sufficient to
89 identify the subset of the next states that is sufficiently contracting
90 (this is not a "beam width" so much as a "pre-filter"),
91 then select a single instance from it at random (beam width of 1).