# 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!