August was all about cleaning up details on the Qubic programming language Abra. We finalized many details associated with the syntax of the language and began understanding user experience implementation aspects of the project. The results are promising and cemented our belief that we should be able to show a proof-of-concept Qubic implementation around the end of 2018.

We also started to document the Qubic computational model. The document goes deeper into how an Abra program is translated into an intermediate trit-code representation that we call Handy. The document will also detail how the code will interact with the Qubic Dispatcher, which is the qubic task and event dispatcher on Qubic-enabled nodes.

Handy encodes the Abra program into a compact trinary representation so that it can easily be packaged into a Qubic transaction and posted on the Tangle. Handy will have done the syntax checking and flagging of any errors in the Abra program before packaging happens, which means that any post-processing tool, like the Qubic Dispatcher, will not have to do that any more.

The Qubic Dispatcher runs on a Qubic-enabled node and will translate the qubic trit-code to its target architecture. The dispatcher will also listen for the events that can trigger the qubics and pass them to those qubics for further processing. The processing of qubic code is tightly interwoven with the dispatcher as the documentation will make clear.

The Qubic computation model document is next in the pipeline. Its two main parts will be about the Abra syntax and about the interaction with the dispatcher.

The other document that should be ready around the same time is the paper on the mathematics behind Qubic. The initial layout is complete and we’re filling in the meat of the sections right now.

Meanwhile, the work on the Abra compiler has been progressing nicely. We are including the latest revisions to the language at the moment, and will finalize the LLVM code generation next. That should allow us to run and test simple, straightforward Abra code. After that the dispatcher will be created and the whole interaction between the code and the dispatcher should allow for much more complex programs to be created and tested.

The FPGA implementation is being researched in parallel so that our design process will always keep that one in mind. Remember that our main focus is on energy-efficient distributed computing for the Internet of Things.

Because of this focus, we have decided to postpone further work on the gateway concept (for moving funds with Qubic) until we have reached the point where we can actually run qubics in their entirety. Such gateways will need a full running system first, to be able to implement and test them.

We have also started looking for additions to the Qubic team because we think the general design is now stable enough. We have identified where people can work on different parts simultaneously, without getting in each other’s way.

All in all it was an exciting month with lots of insights and our enthusiasm for the Qubic project has only grown.

Bonus: some sample Abra