Schemik is a high-level lexically-scoped implicitly-parallel dialect of Scheme (R5RS) and Common LISP, this means the parallel execution of programs is done independently of the programmer and each program written in Schemik always produces the same results no matter which parts of the program are executed simultaneously.
This project is a part of my doctoral research at Palacky University and particular parts of the research are covered in the following papers:
Data parallel dialect of Scheme: Outline of the formal model, implementation, and performance.
In Proc. 24th Annual ACM Symposium on Applied Computing (ACM SAC '09), pp. 1938-1939 (coauthor Vychodil V.).
[ACM Press, DOI 10.1145/1529282.1529713, ISBN 978-1-60558-166-8/09/03]
- Software transactional memory for implicitly parallel functional language.
In Proc. 25th Annual ACM Symposium on Applied Computing (ACM SAC '10), pp. 2123-2130. (coauthor Vychodil V.).
[ACM Press, DOI 10.1145/1774088.1774536, ISBN 978-1-60558-638-0/10/03]
MyJIT library allows to generate machine code at run-time and afterwards execute it. The project has started as a part of the Just-in-Time compiler for Schemik and as a replacement for the GNU lightning library fixing some of its design issues. However, it has evolved into a more powerful tool. The most important features which make MyJIT different or which should be highlighted are:
- support for an unlimited number of registers
- support for the i386, AMD64, and SPARC processors
- convenient debugging
- easy to use and easy to extend design
- support for optimizations
- the library is fully embeddable
- particular backward compatibility with GNU lightning