All Projects → square-lang → Square

square-lang / Square

Licence: MIT License
The Square Programming Language. A tiny programming language under 200kb.

Programming Languages

c
50402 projects - #5 most used programming language
Yacc
648 projects

Projects that are alternatives of or similar to Square

Tiny-Basic
A tiny and basic TINY-BASIC interpreter
Stars: ✭ 33 (+43.48%)
Mutual labels:  interpreter, tiny
embed
An embeddable, tiny Forth interpreter with metacompiler.
Stars: ✭ 80 (+247.83%)
Mutual labels:  interpreter, tiny
Minimal
A Delightfully Diminutive Lisp. Implemented in < 1 KB of JavaScript with JSON source, macros, tail-calls, JS interop, error-handling, and more.
Stars: ✭ 560 (+2334.78%)
Mutual labels:  interpreter, tiny
ol
Otus Lisp (Ol in short) is a purely* functional dialect of Lisp.
Stars: ✭ 157 (+582.61%)
Mutual labels:  interpreter, tiny
permissionary
Tiny and framework-agnostic role-based permission management using composition over inheritance
Stars: ✭ 19 (-17.39%)
Mutual labels:  tiny
dragon
🐲 Object orientated, dynamically typed, interpreted programming language inspired by Python and Javascript.
Stars: ✭ 14 (-39.13%)
Mutual labels:  interpreter
oxide-lang
Oxide Programming Language, an interpreted scripting language with a Rust influenced syntax.
Stars: ✭ 106 (+360.87%)
Mutual labels:  interpreter
fakejava
嵌入式脚本语言 Lightweight embedded scripting language
Stars: ✭ 41 (+78.26%)
Mutual labels:  interpreter
hopes
Higher Order Prolog with Extensional Semantics
Stars: ✭ 43 (+86.96%)
Mutual labels:  interpreter
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (+165.22%)
Mutual labels:  interpreter
samlang
Sam's Programming Language
Stars: ✭ 22 (-4.35%)
Mutual labels:  interpreter
wazm
Web Assembly Zig Machine
Stars: ✭ 54 (+134.78%)
Mutual labels:  interpreter
boba-js
Toy programming language. Now being reimplemented in Rust: https://github.com/poteto/monkers
Stars: ✭ 22 (-4.35%)
Mutual labels:  interpreter
tiny-framework
A light wight easy to use RESTful apis framework for education & demo purposes. stripped down framework to the fundamental components that that every one would essentially need to (learn / make a demo application).
Stars: ✭ 13 (-43.48%)
Mutual labels:  tiny
cosy
A simple and pleasant programming language.
Stars: ✭ 21 (-8.7%)
Mutual labels:  interpreter
tranquility
Tranquility is an in-development programming language intended to replace Solidity
Stars: ✭ 17 (-26.09%)
Mutual labels:  interpreter
wymlp
tiny fast portable real-time deep neural network for regression and classification within 50 LOC.
Stars: ✭ 36 (+56.52%)
Mutual labels:  tiny
chickadee
Chickadee is a minimal programming language implemented in TypeScript for teaching purposes.
Stars: ✭ 13 (-43.48%)
Mutual labels:  interpreter
esoo
Like the Programming Languages Zoo but with esoteric languages.
Stars: ✭ 18 (-21.74%)
Mutual labels:  interpreter
js-slang
Implementations of the Source languages, which are small sublanguages of JavaScript designed for SICP JS
Stars: ✭ 41 (+78.26%)
Mutual labels:  interpreter

The Square programming language

Build status Gitpod ready-to-code

What is Square

Square is a powerful programming language.

Features of Square

  • Simple Syntax
  • Highly Portable
  • Easy to learn
  • Small

How to run

Compile:

cd src
gcc -w main.c node.c parse.tab.c squ_run.c value.c squ_math.c -lm

Run with a file:

cd src
$ a.exe ../examples/helloworld.squ

Examples

Print "Hello World!" on the screen:

print "Hello World!"

A program to check whether it is an even number:

def a := 10
# You can replace "==" with "is" #
if a % 2 is 0 -> {
    print "This is a even number"
}

else -> {
    print "This is a odd number"
}

Result:

This is a even number

Contribution

Welcome to pull a request!

TODO

  • A tiny VM for square!

License

Copyright (c) 2020 Stepfen Shawn

The Author

Square was designed and developed by Stepfen Shawn in 2020.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].