I’ve recently added the following to my GitHub account:
- A new update to the HaskELF parser. It now sort of works, although I still need to work on making it actually translate parse-stuff to machine code some time.
- Haskell project that does Gödel encoding of simple arithmetic statements through prime factorization.
- Massive Modularity (MM). Deprecated code that I might still use as the base for some other project in the future. People new to POSIX sockets may find it useful, too. Then again, they may not – I wrote this a long time ago and can’t guarantee it doesn’t contain lots of terrible bugs (besides being a pretty terrible program by itself, of course).
- Dotfiles and scripts. It seemed like a good idea to a.) back those up on GitHub, b.) make it easier for me to retrieve those files should I need them on some other PC, and c.) allow other people to find a few useful bits of code there. Maybe.
I put the first two iterations of HaskELF – the Haskell Elf Builder – on GitHub. It’s essentially my “building an ELF” tutorial converted to Haskell. The goal is to demonstrate how to create an extremely simple compiler in Haskell, but currently it’s just a direct translation of the ELF created by hand to constants in Haskell. It also contains a parser which can parse some extremely simple programs. Expect it to become fancier in the future.
Link to HaskELF.
My mail server appears to be working, which means I can receive email once more! I’ve added a contact page if you want to get in touch with me.
As you can probably see, my site looks rather different from before, and is likely much more responsive than it used to be: I’m finally hosting my website on a VPS instead of that 50-cents-per-month hosting I used to use.
This website may change a lot in the coming weeks. Dead links need to be cleaned up now that I’ve moved to WordPress, I’m working on setting up an MTA, and I’m obviously still messing around with WP themes and settings.
Hello class, and welcome to x86 Masochism 101. Here, you’ll learn how to use opcodes directly to create an executable without ever actually touching a compiler, assembler or linker. We’ll be using only an editor capable of modifying binary files (i.e. a hex editor) and ‘chmod’ to make the file executable.
If that doesn’t turn you on, I don’t know what will.
On a more serious note, this is one of those things that I personally think are a lot of fun. Obviously, you’re not going to be using this to create serious million-line programs. However, it can give you an enormous amount of satisfaction to know that you actually understand how this kind of thing really works on a low level. It’s also cool to be able to say you wrote an executable without ever touching a compiler or interpreter. Beyond that, there are applications in kernel programming, reverse engineering and (perhaps unsurprisingly) compiler creation.