fspl/README.md

1.7 KiB

FSPL

Freestanding programming language: a high-ish-level language that has absolutely no need for any runtime support, designed to work well in scenarios where dragging along a language runtime is either not possible or simply not wanted.

This language is designed for:

  • Operating system development
  • Embedded software
  • People who think modern languages are bloated and dislike them on principle

This is really another go at the ARF programming language. FSPL is a working title because the ARF acronym did not make any sense but I can't think of a better name. I am now working on this as a senior project so I am obligated to not abandon it and start over again.

Design Principles

  • Abstractions must happen at compile time unless absolutely necessary
  • Compiler must not generate any functions that the user does not write
  • Compiler must avoid generating logic that the user does not write

Roadmap

Late 2023

  • Top-level entities
    • Type definitions
      • Methods
    • Defined and external functions
  • Type system
    • Strict, static, bottom-up type inference
    • Pointers
    • Arrays
    • Slices
    • Structs
    • Interfaces
  • Expressions and control structures
    • Literals adapt to types via bottom-up type inference
    • Assignment
    • Variable declaration
    • Variable access
    • Function calls
    • Method calls
    • Interface behavior calls
    • Operations
    • Casting
    • Blocks
    • If/else
    • Loops

Early 2024

  • Union types (carry type information)
  • Match statements
  • Modules
  • Vararg
  • Lightweight, modularized (and of course, totally optional) standard library
  • Conditional compilation
  • Constants
  • For loops
  • Range loops

Afterwards

  • Generics?
  • Ownership system?
  • And more!