Floppa programming language inspired by the brainf*ck programming language. Created just for fun and you can convert your brainf*ck code to floppa code.

Overview

Floppa Programming Language

Created just for fun. But if you want to contribute, why not?

Floppa p.l. inspired by the brainf*ck programming language. So you can convert your brainf*ck code to floppa code.

Compiling

You must have installed go before using compiler. If you have, run the ./compiler/main.go program. Compiler takes two argument, first argument is input file (.flop file), second argument is output file (.go file). The compiler is written in golang, so you actually can compile your .flop code to machine language with using go build <file.go>

Converting Brainf*ck Code to Floppa Code

You can use simple python code for that. You must have python3.6>= for use this code. Converter: ./tools/bf2floppa.py. Same with compiler, takes two argument. First one is input file (.bf), Second one is output file (.flop).

Hello World

Here an example hello world program written in floppa programming language (./example/helloworld.flop);

keeerr keerr flop go keeerr keeerr keer no fo hoe go keer floppa 
no keerr flop go keeerr keeerr keer no fo hoe go fo floppa keeerr 
keerr floppa floppa keerr floppa no keeerr keerr flop go foooo fo 
foooo foo no fo hoe go foo floppa no keeerr keeerr keerr flop go 
keeerr ker no fo hoe go floppa no keeerr keer flop go keeerr no 
fo hoe go floppa keerr floppa foooo foo floppa foooo foooo floppa 
no ker keeerr ker flop go foooo foooo fooo no fo hoe go fo flop 
no ker go fo hoe no floppa fooo flop foooo foooo fooo hoe

Commands

ker => Add one byte to current cell.
fo => Remove one byte from current cell.
go => Goto next cell.
no => Goto last cell.
flop => Start loop. (will continue until no byte left.)
hoe => Finish loop or flop(0-255)
caracal => Get one byte input.
floppa => Print current cell as ascii.
flop(0-255) => Checks if current cell byte size same with the number. if so, runs the commands after this statement.

These commands added for help while adding / removing byte:
keer => Add two byte to current cell.
foo => Remove two byte from current cell.
keerr => Add three byte to current cell.
fooo => Remove three byte from current cell.
keeerr => Add four byte to current cell.
foooo => Remove four byte from current cell.

For brainf*ck;

{
    "+": "ker",
    "-": "fo",
    ">": "go",
    "<": "no",
    "[": "flop",
    "]": "hoe",
    ",": "caracal",
    ".": "floppa",
    "++": "keer",
    "--": "foo",
    "+++": "keerr",
    "---": "fooo",
    "++++": "keeerr",
    "----": "foooo"
}

Comments

Compiler ignores anything except keywords, so you can type whatever you want. Check ./example/mandelbrot.flop for example.

What Can I Do With This?

In theory, you can do everything. If you are masochist, try write a floppa programming language interpreter that created with floppa programming language!

You might also like...
PHP bindings for the Go programming language (Golang)

PHP bindings for Go This package implements support for executing PHP scripts, exporting Go variables for use in PHP contexts, attaching Go method rec

The Slick programming language is an s-expression surface syntax for Go.

The Slick programming language The Slick programming language is a Lisp/Scheme-style s-expression surface syntax for the Go programming language, with

Pineapple Lang is a simple programming language demo implements by Go

Pineapple Lang is a simple programming language demo implements by Go. It includes a hand-written recursive descent parser and a simple interpreter, although the language is not even Turing-complete. But this repo's main goal is to give beginners of compilation principles a warm up and a simple look at how a programming language is built.

A interpreter of SweetLang, is writed in Go Programming language.

SweetLang ( Soon ) A interpreter of SweetLang, is writed in Go Programming language. SweetLang is made with clarity and simplicity we try to make its

ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

WindLang, A simple programming language built with golang 🍃
WindLang, A simple programming language built with golang 🍃

WindLang, A simple programming language built with golang 🍃 WindLang, A simple programming language built with golang 🍃 What is wind? Playground Coo

Go compiler made from scratch, which can compile itself. It's going to be the smallest and simplest go compiler in the world.

Babygo, a go compiler made from scratch Babygo is a small and simple go compiler. (Smallest and simplest in the world, I believe.) It is made from scr

A dialect of Lisp extended to support concurrent programming, written in Go.

LispEx A dialect of Lisp extended to support concurrent programming. Overview LispEx is another Lisp Interpreter implemented with Go. The syntax, sema

Owner
Master Dumbass
null
T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.

The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a

T# 92 Jun 29, 2022
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

null 1 Dec 27, 2021
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

Yayx Programming Language 7 May 20, 2022
A standalone nREPL/prepl client written in Go and heavily inspired by Grenchman

Trenchman A standalone nREPL/prepl client written in Go, heavily inspired by Grenchman Trenchman is a standalone nREPL/prepl client, which means that

Shogo Ohta 58 Dec 11, 2022
Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Gentee script programming language Gentee is a free open source script programming language. The Gentee programming language is designed to create scr

Alexey Krivonogov 101 Dec 15, 2022
Simple, safe and compiled programming language.

The X Programming Language Simple, safe and compiled programming language. Table of Contents Overview OS Support Contributing License Overview The X p

The X Programming Language 51 Dec 28, 2022
Monkey programming language project from 'Writing An Interpreter In Go'and 'Writing A Compiler In Go' Books

Monkey Monkey programming language ?? project from "Writing An Interpreter In Go

Amr Hesham 1 Dec 16, 2021
a dynamically typed, garbage collected, embeddable programming language built with Go

The agora programming language Agora is a dynamically typed, garbage collected, embeddable programming language. It is built with the Go programming l

Martin Angers 324 Dec 30, 2022
Port of the lemon parser generator to the Go programming language

From the golang-nuts mailing list (with few modifications): --== intro ==-- Hi. I just want to announce a simple port of the lemon parser generator

null 54 Feb 17, 2022
An LL(1) parser generator for the Go programming language.

What is it? I have implemented an LL(1) parser generator for the Go programming language. I did this to build parse trees for my HAML parser. You can

Curtis Schlak 14 Jan 18, 2022