DinoCode v0.2.0: Official Release

The source code of the DinoCode compiler and virtual machine (developed in Rust) is now officially available to the community under the Apache 2.0 license.

From academic project to open source#

Until now, version v0.1.0 existed in closed form as pre-compiled binaries for usability evaluation in my thesis. After successfully completing the defense and graduating as a Software Engineer, the natural step for the project was to be released as open source.

Transparency

By releasing the code, I seek to offer transparency and open the doors to anyone who wishes to study the internal workings of the language or contribute to its development.

The new web platform#

Alongside this opening, I am officially launching this website. I developed it over the last few months (incrementally) as a complete platform designed for you to experiment with the language interactively.

The site premieres documentation I wrote personally with guides, examples, and notes on my decisions when designing the syntax and functionality of DinoCode.

Interactive examples

The documentation includes executable code blocks so you can test how DinoCode works directly from the browser. Press the icon .

name = "DinoCode 🦖"
print "Welcome to " name

Interactive environment and WebAssembly#

The site integrates an interactive environment based on WebAssembly. Unlike other playgrounds, this one supports real-time keyboard input and functions to pause execution without blocking the browser.

For example, you can write Dino code like the following and test it yourself:

# Keyboard input with the <- operator
name <- "Enter your name: "

# Using functions like input()
last_name = input("Enter your last name: ")

# 3 second pause
print "DinoCode is waiting for 3 seconds..."
Time.sleep 3

# Result
> MESSAGE
  Hello, $name $last_name! 
  Welcome to DinoCode.

print MESSAGE

To complement the learning experience, the editor also generates in real-time:

Flowcharts:

Visual flowchart generated by the DinoCode editor

Bytecode Inspection:

View of the bytecode generated by the DinoCode compiler

The future of DinoCode#

DinoCode goes from being an academic prototype to an accessible and transparent ecosystem. I invite you to explore the repository on GitHub, experiment with the web console, and be part of this project.

Join the community

Found a bug or have an idea to improve the language? PRs and Issues in the official repository are more than welcome!