This page contains the list of my non-commercial projects. To some extent, the page summarizes my current interests and experience.

The following list is by no means complete, so if you are interested you might want to check my profiles at Bitbucket and GitHub.

Contributor/Maintainer

This section contains a list of the projects that I contribute to or help to maintain.

Corman Lisp

I am a co-maintainer/developer of the Corman Lisp – an implementation of the Common Lisp programming language. I helped to make this project run on modern 64-bit versions of Windows operating system.

Personal Projects

This section contains a list of the projects on which I work (occasionally) in my spare time. The sources of some programming projects are not available yet as they are still not ready for the prime-time. I am going to add links in the future. Feel free to contact me if you are really interested in some project to which I have not provided the link to its source code yet.

META II

META II is a compiler writing programming (meta)language originally described in detail in paper “META II a Syntax-oriented Compiler Writing Language” by D. V. Schorre. I implemented the virtual machine for it in C and Common Lisp.

Tiny BASIC to x86 Compiler

Compiler for Extended Tiny BASIC programming language described using META II. A simple compiler for a somewhat restricted dialect of the BASIC programming language.

SECD Virtual Machine

An implementation of a highly influential SECD virtual machine for programming languages based on the untyped lambda calculus (namely Lisp). I also have a port of LispKit compiler for my implementation of the virtual machine. It slightly differs from the one, described in the famous Handerson's book [1], because it emits symbolic instruction codes instead of numeric ones which make generated code easier to understand.

References:

  1. Peter Henderson. Functional Programming: Application and Implementation, 1980.

Port of Nicklaus Wirth's Oberon-0 Compiler

This is a port of the Niklaus Wirth's Oberon-0 compiler to Oxford Oberon-2 compiler. This is the port of the version described in his e-book "Compiler Construction" published in February 2014. The latest version of the book can be found on Wirth's homepage. The original version of the compiler is developed to run on Wirth's own computer, thoroughly described in his famous book "Project Oberon". I believe it makes the compiler source code less useful for beginners, so I decided to make the port. Otherwise, the book is the best introductory compiler construction book I have ever seen.

These sources are distributed on the same terms as the unmodified sources by N. Wirth. I do not own them.

USLAB

USLAB stands for "Userspace SLAB." It is a userspace version of SLAB memory allocator, originally developed as a part of the operating systems kernels. The techniques used to implement this kind of memory allocators are described in [1] and [2].

References:

  1. Jeff Bonwick, The Slab Allocator: An Object-Caching Kernel Memory Allocator (1994);
  2. Jeff Bonwick, Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources.

uCRT (Micro C Runtime)

It is a minimalistic C language runtime for Windows. It is a very small subset of standard C library. Developed as an example for Systems Programming course at East Ukrainian National University.

Plan 9 Inspired Command Line Arguments Parser

A command line parser inspired by the one, found in Plan 9. It is portable header-only C library which additionally contains the version which can be used in Unicode Windows applications. I use it in almost every console program which I have developed.

Daemonize

A simple, easy to integrate library which can be handy when writing UNIX daemons. This project implements two functions (roughly modelled on BSDs' daemon()) which might be used in a project to daemonize process on the UNIX-like operating systems which follow System V semantics as well as other UNIX derivatives. These functions fully implement all the steps that need to be performed by a classical daemon process (e.g. double-forking, PID-file checking, creation and locking, etc).

There is a post which describes the library.

RGPIO

A simple, easy to integrate library for working with GPIO registers on all released versions of Raspberry Pi microcomputer.

FooBar Service

A template for a Windows Service. Developed as an example Windows service for Systems Programming course at East Ukrainian National University.

Windows 10 Lock Screen Disabler

A simple Windows service which keeps Windows 10 Anniversary Update lock screen disabled (except on boot). Unfortunately, starting from the Windows 10 Anniversary Update there is no way to disable Lock Screen even on Professional edition of the operating system. It is annoying, so I created this simple program and posted it on Reddit.