Colang - Programming language and compiler —WORK IN PROGRESS—

Overview

Co programming language

Building

Initial setup: ./init.sh will install the following into deps/:

Build:

  • Unoptimized with all checks enabled: ckit build co
  • Optimized with assertions: ckit build -safe co
  • Optimized without assertions: ckit build -fast co
  • RT test program: ckit watch -r co-rt-test
  • Verbose build: ckit build -v
  • Build everything: ckit build

Development and testing:

  • Run all tests: ./test.sh
  • Run all tests live: ./test.sh -w
  • Run unit test with prefix "scan": ./test.sh scan
  • Run unit test with prefix "scan" live: ./test.sh -w scan
  • Live main program: ckit watch -rsh="{BUILD}/co build example/hello.co" co

Note: debug builds have the following checks and features enabled:

You might also like...
Competitive Programming Language MM

MM Language MM Languageは、競技プログラミングのために開発中のプログラミング言語です。 どんなことが可能なのかは、examplesおよびexamples_outputsを参照ください。 まだ開発中の言語であるため、諸々不備があり、コンパイルエラーの行数表示さえまともに出せない状

the kyanite programming language

Kyanite Kyanite is a small passion-project programming language intended to be light-weight and simple to use. You can read more on the language itsel

λQ: A Simple Quantum Programming Language based on QWIRE.

λQ λQ: A Simple Language based on QWIRE which can be compiled to QASM. The name λQ means lambda calculus with quantum circuits. This is a term project

The Scallion Programming Language

--------------------------------- The Scallion Programming Language --------------------------------- Version ------- Here's no version to download,

A powerful, strongly-typed, functional programming language.

SuperForth About A minimal, performant, strongly-typed, and functional programming language focused on being practical and pragmatic, yet powerful eno

My journey through learning C following the "The ANSI C programming language" book

The ANSI C programming language: Some of the exercises This is a repo containing my attempts at some of the exercices present in the "The ANSI C progr

Stack based programming language

stacky WIP stack-based compiled concatenative programming language. Currently it's somewhere between B and C programming languages in universe where B

A Simple Toy Programming Language
A Simple Toy Programming Language

Tovie Lang Small toy programming language. Docs : https://github.com/Jaysmito101/tovie/wiki Examples : 1. Hello World proc_0 "Hello" 32 "World!"

An embeddable programming language just for fun

hm3 A vapourware minimalist statically typed 'glue language' that can be embedded in C/C++/Rust projects. The implementation aims to capture the essen

Comments
  • Memory management (AOT malloc + free versus GC; stack versus heap)

    Memory management (AOT malloc + free versus GC; stack versus heap)

    How do you plan to do memory management (stack and heap if applicable)?

    Do you want to even use heap?

    If so, will you want to do extensive analysis (like Lobster, Passerine, V, and a bit Basil) to avoid garbage collector at all (i.e. insert ahead of time all the needed malloc & free calls) or do you just want to use a garbage collector?

    If not, how will your stack memory management look like? Will it be a pure continuation passing style? Or rather something like Forth (and other concatenative languages)? Or some kind of (partially) virtual memory (imagine https://github.com/josephg/jumprope-rs or alike or https://www.codeproject.com/Articles/3479/The-Bip-Buffer-The-Circular-Buffer-with-a-Twist or alike)? Or some hybrid like stack-based allocation in Basil?

    opened by dumblob 0
  • Offtopic - Question about creating compiled languages

    Offtopic - Question about creating compiled languages

    Hello, Rasmus! First of all, congratulations on this challenging journey.

    tl;dr Which approach do you believe is more "human/humane" to create a compiled language? Which books do you recommend me?

    The not-so-important-part I studied "compilers" more than 10 years ago (using the Alfred and Ullman book), recreating a really small subset of the Pascal language through lexical and syntax analysis (but I give 100% credit to my teacher), and I was not so good at it at that time.

    But I still have this dream of creating my own language that could be more accessible for developers (like JS is), but that could be compiled and performant.

    Thanks!

    opened by paulocoghi 0
Owner
Rasmus
Personal Software, languages, compilers, Humans & Computers, and other fun things. Past professional life at Figma, Facebook, Spotify, Dropbox, etc.
Rasmus
Programming Language T#. Compiled language. In development.

Programming Language T# WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! $ make func main() {

Ibuki Yoshida 1 Feb 1, 2022
T# Programming Language. Interpreted language. In development. I will make this compilable later.

The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Install Install $ make

T# 91 Jun 24, 2022
Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable executables. Has a modern C++ wrapper.

memscan Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable

cristei 15 Oct 2, 2022
A comprehensive catalog of modern and classic books on C++ programming language

A comprehensive catalog of modern and classic books on C++ programming language

Yurii Cherkasov 384 Dec 28, 2022
A minimal, toy programming language implemented in C++ and STL.

od Programming Language Mod (or ModLang) is a minimal, toy programming language implemented in C++ and STL (Standard Template Library) with no other e

Pranav Shridhar 27 Dec 4, 2022
A modern dynamically typed programming language that gets compiled to bytecode and is run in a virtual machine called SVM (Strawbry Virtual Machine).

Strawbry A bytecode programming language. Here is what I want Strawbry to look like: var a = 1 var b = 2 var c = a + b print(c) func sqrt(x) { re

PlebusSupremus1234 6 Jan 5, 2022
Teach the C programming language using a collection of super beginner friendly tutorials and challenges.

TeachMeCLikeIm5 You are welcome to contribute to this repo. See the CONTRIBUTING.md for more info ?? About this repo ?? A collection of super beginner

inspirezonetech 11 Nov 4, 2022
Roadmap for learning the C++ programming language for beginners and experienced devs.

Roadmap for learning the C++ programming language for beginners and experienced devs. // Дорожная карта по изучению языка программирования C++ для начинающих и практикующих.

Evgeny 1.8k Jan 1, 2023
General purpose and statically typed programming language

Synthium Synthium is designed to be a systems programming language. It takes inspiration from existing systems programming languages, but also from so

Synthium Programming Language 12 Oct 16, 2021
Programming-Basics - This Repository Contains source codes of various programming languages. Please Contribute to make this Useful.

Programming-Basics About ❓ Want To Start your Open-Source Journey Without Facing Difficulties?,If Yes, Then You Are at The Right Place! ?? Don't Know

Mr. Ånand 67 Dec 8, 2022