The visitor pattern is a behavioral design pattern first popularized in the "Gang of Four" book. It is used to separate operations on types from the types themselves. When using the composite pattern to build an AST from a class heiracrchy, as one woul
When implementing mgclisp, I took a shortcut (gasp! horror!) when implementing user defined functions. Scheme, and pretty much every other modern lisp when defining a function allows you to write something along the lines of the following expression:
When I set out to develop my own language, there were a several "milestones" I had set for myself along the way. Goals I could tick off to gauge my progress. One such goal I've been working towards for some time was to be able to pass Knuth's "Man or B
AVL trees are the oldest of the self-balancing binary search trees. Like other self-balancing BST's, AVL trees use rotations to enforce balancing. While the tight balancing conditions of AVL tree's result in quick search times, it also has the effect o
Normally when discussing parsing were concerned with assosciativity and operator precedence for constructing Abstract Syntax Trees using either recursive descent, or some stack driven algorithms for subsuming LL(1) or LALR(1) based grammars. When it co
-
DFA Minimization: Moore's Algorithm
-
Parsing Regular Expressions with MGCPGen
-
Determinization: Converting εNFA to DFA
-
Implementing Lexical Scoping: Resolving Variable Names with De Bruijn Indices
-
Improving Balance of Ternary Search Tries
-
Making Sense of LALR Parser Construction
-
Compiling Set Comprehensions to Bytecode: an exercise in managing abstractions
-
Fast Multi-Pattern String Searching with the Aho-Corasick Algorithm
-
Capture Groups: Tracking Regular Expression Sub Matches
-
Resolving Shift/Reduce Conflicts With Operator Precedence