Skip to content
/ lismbly Public

A minor Lisp language implemented in x64 Assembly

License

Notifications You must be signed in to change notification settings

lvntky/lismbly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

lismbly

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.

Getting Started

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.

Building lismbly

To build Lismbly, follow these steps:

  1. Clone the repository
    git clone https://github.com/lvntky/lismbly.git
    cd lismbly/
  1. Assemble the source files eg.
    nasm -f elf lismbly.asm
  1. Link the object files:
    ld -m elf_i386 -o lismbly lismbly.o

Usage

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.

Feature

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!

Example

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

Contributions to Lismbly are welcome! Feel free to fork the repository, make your changes, and submit a pull request.

License

Lismbly is licensed under the MIT License

Acknowledgments

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:

Contact

For any questions or feedback, please contact the project maintainer at [email protected]

Thank you for using Lismbly! Happy lisping! 🚀