2008 · 181 citations · 22 references
ComputingComputer ScienceCombinatoricsNatural Language ProcessingProgramming LanguagesDictionary CompilationSyntactic AnalysisKeysKleene StarLensesRegular ExpressionsTransducersTransformationsUpdate Mechanisms
A lens is a bidirectional program. When read from left toright, it denotes an ordinary function that maps inputs to outputs. When read from right to left, it denotes an ''update translator'' that takes an input together with an updated output and produces a new input that reflects the update. Many variants of this idea have been explored in the literature, but none deal fully with ordered data. If, for example, an update changes the order of a list in theoutput, the items in the output list and the chunks of the input that generated them can be misaligned, leading to lost or corrupted data.
22
Finite Automata and Their Decision Problems
M. O. Rabin, D. Scott · IBM Journal of Research and Development · 1959 · 1.9K citations
Derivatives of Regular Expressions
Janusz Brzozowski · Journal of the ACM · 1964 · 931 citations · Full text