Skip to content
mar edited this page May 25, 2023 · 7 revisions

Welcome to the harlock language wiki!

Harlock is a small language with a focus on binary data manipulation and data embedding in executables, mainly usable as a scripting language for binaries post-processing. It is based around the ideas discussed in the Writing An Interpreter In Go book by Thorsten Ball.

Why a language?

This is an experiment based on a hobby project combined with a real use case that I had.

The ihex parser is pretty complete and I have an experimental project where I have partially ported it to C as a standalone library. This is something that I'm thinking of doing too for the core go sub-package.

One big advantage of having a small simple DSL is that it's quick and easy to just write a 4-5 line script, that you can then insert into your build pipeline.

Navigate the Wiki

  • The Builtins page includes information on the builtin functions and the methods callable on the builtin file types, including signatures and actual runnable examples.
  • The Data Types page explains a little bit about the basic types available in the language, and the operations that can be used with them.
  • The File Types page goes further in the description of File APIs and of each file type available in the language.
  • The Installation page goes over the different ways that can be used to install the interpreter.
  • The Language Constructs section goes through the building blocks of the language.
  • The Running a Program page talks about the ways that the harlock tool can be used to run scripts.
  • The Use Cases page contains material and examples related to real-world use cases.
Clone this wiki locally