# Kevins Programming Language (KPL) Specification ### Version 0.0.0 --- ## Overview KPL is a statically typed and just in time compiled scripting language. The goal is to be something lower level then JavaScript/Python/Ruby/Lua but on a higher level then Go. This specification not only describes the language syntax but it's implementation because syntax reflects the implementation and vice versa. #### Language Design Goals * Single invocation, just run the code * No operator precedence * No default variables * Type inference * Automatically use threads * All code can be run asynchronously, no built in asynchronous callback functions ```text // Do Soemthing readFile("filename", callback(data)) // Continue while readFile is running // --- langauge equivalent // Do Soemthing Fn[name; callback] $ ( ( read; open ) `use "io" callback `sync read `sync open `sync name ) `async ("filename"; callback) // Continue while readFile is running ``` * C interoperability * Minimal dependencies, most X64 Linux distros shouldn't need to install anything to compile and run the source * Lightweight, can run a VPS with 1 CPU Core and 1 Gigabyte of RAM ## Contents 1. ##### [Language](./language/index.md) 2. ##### [Type System](./type_system/index.md) 3. ##### [Application](./application/index.md)