blob: 5d8ba9d56fa17bb7ff21024c8762a5dba9848ed5 (
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
47
48
49
50
|
# 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
([name; callback]
`use "io" [open; read]
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)
|