🍑PEACH🍑 programming language

PEACH - Prototypical language with knack for extensibility and meta programming

Team @mynameisjonas:

PEACH is a modern programming language, handwritten in both Python and itself, completely written from scratch over the past 20 days. Included is the core language, a standard library, and some examples(including TicTacToe!)

In PEACH, all types are objects, and vice versa. Everything is an object, and that includes functions. Objects descend from a parent object and inherit functions and variables from the parent. For example, to create a type, we extend from a parent Object (in this case Type), and define any methods needed within the type.

The core library in PEACH is written in itself, even allowing for methods to be attached with the Object.patch() method at runtime. Types in PEACH are built of Objects and have overloadable functions for operations such as addition, subtraction, multiplication, division, modulus, and compare.

All builtin types such as String, Int, Float, Array, Bool, etc. are all defined completely in PEACH, including all operations that can be done on them. An example of this supercharged extensibility being the call operator can be overloaded, with an example being that when a Number is called, like 5(10), the values are multiplied together, allowing for a more classical math-like syntax in programming.


Types are objects and all objects are patchable, meaning you can swap out or add methods dynamically.

Later we plan to rewrite PEACH in C/C++ for better speed, efficiency. Both of us have more experience in C/C++. We plan to keep PEACH code and the standard library similar to how it is today.

Github Repository
Repl.it link(click here to run)


vars - How to declare and use variables

functions - Writing and calling functions

strings - Strings operations and interpolation

operators - Available operators + Operator overloading

types - Custom types

embedding - Embedding in Python

proto - Extending types using prototypical inheritance

macros - Macros

arrays - Array operations

iterators - Building custom iterator objects

random - Random number generation

modules - Modules

console - Console input and output

files - File reading and writing

Standard Library

Standard Library






TicTacToe Example

Be sure play the TicTacToe example for yourself!
Start the REPL by running main.py and call tictactoe(); to try it out!



using our macro syntax (check the doc for more info), we have been able to prototype more of the extensibility features we’d envisioned originally. This includes building custom control structures such as a custom match or switch-like block.

With the macro feature:

To start the PEACH repl:

Click HERE

You are viewing a single comment. View All

@SeamusDonahue to create a modular/customizable language, having types internally defined, etc.
We did this all during the 10 days of the jam so it's not as polished as say a year old language, but it works fairly well.