I'm a programmer by trade and by hobby. I currently work doing web development in Python. In my free time, I like to think about and play with programming language design and implementation.
I also like learning about linguistics (the workings of human languages), and especially historical linguistics (etymologies, the evolution of languages in time, language reconstruction, that sort of stuff).
I have a blog here (partly in Portuguese, partly in English).
I obtained a Master's degree in Computer Science in 2018 at the Institute of Informatics of the Federal University of Rio Grande do Sul (UFRGS), Brazil. I obtained a Bachelor's degree in Computer Science in 2013, also at UFRGS.
My e-mail address begins with vbuaraujo, ends with inf.ufrgs.br, and has an @ sign between those.
You can also find me on Mastodon.
Here are some things I have worked on. I'm still in the process of migrating them from GitHub.
- Blognir: a no-frills, databaseless blog system in PHP, which powers my blog since 2012.
- Parenthetical Blognir: a rewrite of Blognir in Guile Scheme.
- Litlavík: the simplest thing that might still be called a wiki, in PHP.
- Hel: my playground for learning and experimenting with language design and implementation. Currently a compiler from an R5RS Scheme subset to C, written in an R5RS Scheme subset.
- Neander-js and Ahmes-js: simulators for the Neander and Ahmes didactical architectures.
- AMK CYK parser: a parser and sentence generator for context-free grammars. Written for a Formal Languages course, and kept around for amusement value.
- MLP: an ALGOL-like language with closures and a graphical interpreter, which I designed as the final project of a Programming Language Models course.
- Hatter: a hat-oriented esoteric programming language.
- Faz: a didactical functional programming language I designed as my Bachelor's final project, built on the Racket environment.
- Týr: a code transformation for LLVM IR to ensure memory safety based on programmer-provided annotations. My Master's thesis project. Not maintained and not supported.
Here are a few things I have written. Most of what write nowadays tends to go to my blog instead.
- Introdução ao bash (Portuguese)
- Kontraŭranto: Learn Not Not to Speak Esperanto