Hi, always wanted to create a toy lisp compiler in LLVM for some reason, but never had the time to get it working.
Took a new stab at it with Claude 3.7. Got a working version up in less than 8hrs in total with passing tests! Never wrote a single line of code. I would estimate the number of cursor iterations to about 500.
Process was:
1. Ask Claude to create a boiler plate JIT in LLVM (see below shared chat)
2. Asked Claude on the architecture and what classes should be created (did this in cursor):
- lexer
- parser
- AST
- Code gen
3. Implemented each part separately, lexer, parser and AST took 1hr, codegen took ~7hrs.
It can define variables, functions and do some basic stuff:
try: (defn factorial [n] (if (= n 0) 1 (* n (factorial (- n 1))))) (factorial 5)
Hope you like it!
Here are some chats if you are interested in the first part of the coding (the rest was done in cursor):
Took a new stab at it with Claude 3.7. Got a working version up in less than 8hrs in total with passing tests! Never wrote a single line of code. I would estimate the number of cursor iterations to about 500.
Process was: 1. Ask Claude to create a boiler plate JIT in LLVM (see below shared chat) 2. Asked Claude on the architecture and what classes should be created (did this in cursor): - lexer - parser - AST - Code gen 3. Implemented each part separately, lexer, parser and AST took 1hr, codegen took ~7hrs.
It can define variables, functions and do some basic stuff: try: (defn factorial [n] (if (= n 0) 1 (* n (factorial (- n 1))))) (factorial 5)
Hope you like it!
Here are some chats if you are interested in the first part of the coding (the rest was done in cursor):
LLVM - https://claude.ai/share/3c5a1f92-389f-4274-8348-dcceaee8f140
Lexer - https://claude.ai/share/fa32b8bd-0b8e-4faa-bc09-fc3dd9bb5ad3