Ruslan Popov's personal website

Student of DNU Faculty of Physics, Electronics and Computer Systems


Home | Github | Projects | Papers

Source: Github repository.

Lisp interpreter

This project is written for educational purposes.

License

MIT

Language

Value types

Evaluation rules

Capabilities

Implementation

Values implementation

Lisp value has a two level representation:

Object management and GC

Code structure

About macros

Because the definition of data and code in Lisp is deeply interconnected, it's natural to Lisp to have different implementations of syntax checking stage, macro expansion stage with evaluation.

I don't understand this part fully, because I haven't read many books about interpreters and Lisp. So for now, I decided to perform macro expansion while evaluating Lisp forms and not to check the correctnes of lambda parameters.


Copyright (c) 2023 Ruslan Popov

My email: ruslanpopov1512@gmail.com; popov_ro@ffeks.dnu.edu.ua.

You can find me everywhere by this nickname: InAnYan.