MGCLisp
Coming on the heels of MGCBasic is MGCLisp, the next adventure of my compiler writing expedition. MGCLisp is a simple S-expressions interpreter, and still very much a work in progress. Many lessons were learned over the course of developing MGCBasic and were put to good use in the development of MGCLisp.
Because of the widely differing syntax of BASIC and Lisp, the only code from that project that was reusable was the main Lexing logic and the symbol table code.
One thing I did differently this time around was wrap the token stream in an iterator class, which has worked surprisingly well, and done a lot to increase the readability of the code.
The recursive nature of S expressions meant the eval() method was an absolute pleasure to write. But enough of the yakity yak, lets see MGCLisp in action!
More to come soon!
MGCLisp is available on my Github! http://github.com/maxgoren/mgclisp
-
Digital Search Trees
-
Lossless Compression Part III: Huffman Coding
-
Lossless Compression Part II: The LZ77 Algorithm
-
Lossless Compression Part I: Working with Bits in a Byte Oriented World
-
Bottom Up AVL Tree: The OG Self-Balancing Binary Search Tree
-
A Different Take on Merge Sort: Binary Search Trees?
-
Deleting Entries From Open-Address Hash tables
-
Transform any Binary Search Tree in to a Sorted Linked List
-
From Regular Expressions To NFA by way of Abstract Syntax Trees: Thompsons Construction
-
Extending Sedgewick's explicit Digraph NFA
Leave A Comment