Skip to content

robinastedt/ingot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ingot compiler

This project is a compiler for a programming language that I'm developing called Ingot.

Goals

  • Foremost for me to learn about compiler and language design
  • To make a pure functional language that handles concurrency automatically and by default
    • I plan to accomlish this by designing the language in a way such that the vast majority of functions written by the user are pure (no side effects), and can therefore be trivially called in a deferred manner.
  • It always bothered me that normal function definitions and lambda expressions have very different syntax, even in prominently functional languages such as haskell. I would like to see if I can find a syntax where there's no distinction between normal functions and lambda expressions in terms of their syntax.
  • Since I'm using LLVM as a backend, arbitrarily sized integers should be a part of the language itself. i8 = char, i64 = long long int, etc. But also i6, i512, should "just work".

About

Compiler for the ingot programming language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published