Introduction

A unified syntax that compiles into a number of OOP languages. Formerly known as General Language Syntax (GLS).

Budgie is still under development. Don't expect everything to work!

Usage

Budgie can be used as a command-line app or via import/require.

CLI

To convert file.bg to file.py:

npm install budgie-cli --global

budgie --language Python file.bg

See budgie-cli.

Code

npm install budgie

import { Budgie } from "budgie";

const budgie = new Budgie("C#");

// System.Console.WriteLine("Hello world!");
budgie.convert([`print : ("Hello world!")`]);

Why?

No reason in particular!

Budgie is not intended to be a useful language or targeted to any real purpose. It's a proof-of-concept exploration for the fun of it.

Status

Budgie is just shy of 0.4.

Deliverable

Version

Description

C++ Compiler

0.1

Command-line Budgie prototype, written in C++.

TypeScript Compiler draft

0.2

Budgie compiler as a website, written in TypeScript.

TypeScript Compiler + C# Output

0.3

Budgie compiler re-written in TypeScript. Near-working C#, Java, JavaScript, Python, Ruby, and TypeScript output.

Roundtripping Feature Complete

0.4

All features required for roundtripping implemented. Working C# and TypeScript output. Near-working Java, JavaScript, Python, and Ruby output. Switched to a better name.

Full Language Outputs

0.5

Working C#, Java, JavaScript, Ruby, Python, and TypeScript output.

Haxe, Powershell, Misc.

0.6

Onboard or reject those languages and other possibilities.

Language Specification Finalized

0.7

Finalized language spec & cleaned internals of code.

General Release

1.0

Public announcement, glory to everyone.

Development

If you'd like to contribute to Budgie, see Development.md.

Requires Node >=12

💖 Many thanks to @matthojo for allowing use of the budgie npm package name!

Last updated