When implementing any type of programming language, be it a enterprise scale systems language like Java, a small Domain Specific Language and practically anything in between there is a myriad of design decisions to be made that will influence the overa
When it comes to parsing expressions many, many books will cover addition, subtraction, and multiplication, often times leaving the implementation of division, exponents and square root "as an exercise for the reader". This is done to keep tex
It's no secret that I am an iterator pattern fan boy. When it comes to implementing search trees - or any container of which you would like to access the elements one by one and in-place for that matter, the iterator pattern is indispensable. It allows
Binary Search Tree's are great. A couple dozen lines of code yields you with an efficient ordered collection suitable for all kinds of stuff from sets to symbol tables. A couple dozen more lines, and that efficiency can be guaranteed through self balan
I often like to circle back around to things I've previously explored. It's often beneficial to see things from a fresh perspective, especially when it comes to thinking algorithmically. The N queens problem is often used to introduce computer science
-
Composable Linked Digraphs: Yet another NFA Data Structure
-
Improving the Space Efficiency of Suffix Arrays
-
Augmenting B+ Trees For Order Statistics
-
Top-Down AST Construction of Regular Expressions with Recursive Descent
-
Balanced Deletion for in-memory B+ Trees
-
Building an AST from a Regular Expression Bottom-up
-
The Aho, Sethi, Ullman Direct DFA Construction Part 2: Building the DFA from the Followpos Table
-
The Aho, Sethi, Ullman Direct DFA Construction, Part 1: Constructing the Followpos Table
-
Procedural Map Generation with Binary Space Partitioning
-
Exact Match String Searching: The Knuth-Morris-Pratt Algorithm