summaryrefslogtreecommitdiff
path: root/docs/index.md
blob: 389b7a82737f1056ae478cd8b503e9db1d18c7fa (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
# 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
readFile("filename", callback(data))
// langauge equivalent
Fn[name; callback] $ (
    ( read_file ) : `use "io"
    callback `sync read_file `sync name
) `async ("filename"; callback)
```

* 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)