blob: afbb356e8ba618290735144a0f19f473318b4c0b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# 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
* All code can be run asynchronously
* No built in asynchronous callback functions
```text
readFile("filename", callback(data))
// langauge equivalent
Fn[name; callback] $ (
( read_file ) : `use "io"
callback `sync read_file `sync name
) `async ("filename"; callback)
```
* Automatically use threads
* 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)
|