show navigation menu
Blake O'Hare dot com
Login | Register

Programming Languages

I create programming languages.

Crayon

Crayon is an interpreted language designed to feel syntactically familiar to those already comfortable with various well-known languages. It is general purpose and can generates a bytecode that can be generated and interpreted on the fly, but primarily Crayon is designed as a way to export 2D games to various platforms as standalone bundles. As a syntax, it could be described as a dynamically-typed Java, or as a Python with curly-brace syntax.

Pastel

Pastel is a verbose statically-typed language that transpiles to various other languages as directly as possible without adding interpretation overhead. The primary goal of Pastel is to serve as a way to generate vanilla code that can be dropped into any codebase. This makes it ideal for writing cross-platform code that has very little bloat or abstraction overhead or for porting a codebase to a new programming language incrementally. Currently Pastel supports transpilation to Java, C#, JavaScript, Python, PHP, and Go.
In-Development

CommonScript

I am currently developing a language called CommonScript. CommonScript is the successor to Crayon and is designed to be an extensible scripting engine that can be used to create domain-specific scripting language engines that you can run as a standalone runtime + compiler OR as embedded engines for other codebases (e.g. a game scripting language, like Lua). The syntax of CommonScript is mostly similar to Crayon and is designed to feel familiar to anyone familiar with curly brace languages. To maximize portability, CommonScript is written entirely in Pastel.
Hackathons & For-Fun

Mark Sideways

Mark Sideways is a literate programming language that uses Markdown (.md) files as its file type. It was created as part of LangJam #1 in 2021. The interpreter executes the program by interpreting it directly from the syntax tree and was written in Python. The interpreter also has functionality for running games and therefore requires PyGame to be installed. The sample code includes a simple implementation of Tetris. The README linked here is BOTH a description of how it works AND the Hello World example code. The README *is* the code.

ROFLang

ROFLang was created as a joke as part of Global Game Jam 2024. It is an interpreted curly-brace style language that uses cliche joke setups as syntactic constructs. For this jam, I created a frogger clone, but the repository below contains other examples as well. Please do not use ROFLang for production software. The interpreter for ROFLang is written in JavaScript such that the games written in it can run in a browser.

EmojiLang

It is a programming language that just uses emojis. I don't know why I did this. I was probably in a dark place.