About Me

I am a Maths and Physics graduate, whose main hobby is computing. My interests are broad, but on my GitHub you will mainly find software development tools and libraries. Privately however, I am also interested in graphics, games, and GPGPU computing.

Projects

My GitHub currently hosts three public projects.

The Tabitha SDK

Tabitha is a new programming language, whose design and first compiler have been developed over the past few months. Tabitha's flagship feature is its context model of global data. This is a semi-safe way to share program data between many functions, and indeed many slabs (i.e. source files). It also has a rich type system, arising from the action of type functors. Tabitha works well on Linux systems. It has working version on Windows, though this is less-thoroughly tested.

The version the SDK linked here is a proof-of-concept. A new version, with many changes, is being developed privately. It is planned to be released sometime in 2024.

EAC-y EAC-y is a toolkit to aid in edit and continue for C/C++ on Unix-like systems. It does this via an abstracted dynamic loading system controlled by macros. The toolkit does not work very well with virtual methods. DOP-C

DOP-C is a very new project. It is a header-only library for creating and manipulating column-based data tables. Tables are given a class dopc::Table, and so are their fields (columns). The dopc::Field class has as single template argument for the type of field it is. The precise mechanics of a library such as this were not immediately obvious to me, hence my previous attempt at something similar, Tabular-C++.

Tabular-C++

Tabular-C++ is a header library, along with a Python-based toolset for generating class definitions corresponding to data tables in C++. Tabular-C++ was an attempt at what DOP-C is currently trying to achieve. Though functional, Tabular-C++ suffers from a somewhat clunky workflow. The project is not entirely abandoned, but it is expected that development of DOP-C will soon dominate.