Welcome to Lismbly, a minimalistic Lisp language implemented entirely in assembly language. This project aims to explore the intersection of Lisp's expressive power and the low-level control afforded by assembly programming.
To start using Lismbly, you'll need an assembly language development environment capable of assembling x86 or another suitable architecture. Currently, Lismbly supports the x86 architecture.
To build Lismbly, follow these steps:
- Clone the repository
git clone https://github.com/lvntky/lismbly.git
cd lismbly/
- Assemble the source files eg.
nasm -f elf lismbly.asm
- Link the object files:
ld -m elf_i386 -o lismbly lismbly.o
Once you've built Lismbly, you can run it like any other executable. Simply execute the lismbly binary.
./lismbly
This will launch the Lismbly REPL (Read-Eval-Print Loop), where you can interactively enter Lisp expressions.
Lismbly provides a basic set of Lisp features, including:
- Symbolic expressions (S-expressions)
- Symbol definition with def
- Function definition with fn
- Conditional evaluation with if
- Basic arithmetic operations
- And more!
Here's a simple example of Lismbly programmin:
(def add (fn (a b) (+ a b)))
(def square (fn (x) (* x x)))
(if (> (add 3 4) 5)
(print (square 2))
(print "Addition is less than 5"))
Contributions to Lismbly are welcome! Feel free to fork the repository, make your changes, and submit a pull request.
Lismbly is licensed under the MIT License
Lismbly was inspired by the beauty of Lisp and the challenge of implementing it in assembly language. Fallowing resources used during the development of lismbly:
For any questions or feedback, please contact the project maintainer at [email protected]
Thank you for using Lismbly! Happy lisping! 🚀