lvntky / lismbly

A minor Lisp language implemented in x64 Assembly

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 leventkayadev@gmail.com

Thank you for using Lismbly! Happy lisping! 🚀

About

A minor Lisp language implemented in x64 Assembly

License:MIT License


Languages

Language:Assembly 98.4%Language:Shell 1.6%