All Projects → raphamorim → Kyoto

raphamorim / Kyoto

Licence: MIT license
Kyoto Lang - A programming language designed to build WebAssembly

Programming Languages

rust
11053 projects
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to Kyoto

compiler
Implementing a complete Compiler for a simple C-like language using the C-tools Flex and Bison
Stars: ✭ 106 (+562.5%)
Mutual labels:  compiler-design
tiny-lang
tiny-lang — A different programming language. Supports a bunch of spoken languages.
Stars: ✭ 26 (+62.5%)
Mutual labels:  compiler-design
Compiler-Principle
词法分析,LL(1) 文法分析,LR(1) 文法分析
Stars: ✭ 18 (+12.5%)
Mutual labels:  compiler-design
pyCompiler
Python Compiler
Stars: ✭ 13 (-18.75%)
Mutual labels:  compiler-design
compiler-course-project
华中科技大学编译原理实验2019
Stars: ✭ 61 (+281.25%)
Mutual labels:  compiler-design
memalloy
Memory consistency modelling using Alloy
Stars: ✭ 23 (+43.75%)
Mutual labels:  compiler-design
Extensive-C0-Compiler
北航计算机学院 编译原理最高难度课程设计 BUAA SCSE - Extensive C0 Compiler Design
Stars: ✭ 34 (+112.5%)
Mutual labels:  compiler-design
compiler-course-unipi
Lab of the course Languages, Compilers and Interpreters (Cod. 653AA) @ UNIPI
Stars: ✭ 18 (+12.5%)
Mutual labels:  compiler-design
programming-language-theory
Programming Language Research, Applied PLT & Compilers
Stars: ✭ 53 (+231.25%)
Mutual labels:  compiler-design
AwesomeCompiler
The Big list of the github, open-source compilers.
Stars: ✭ 27 (+68.75%)
Mutual labels:  compiler-design
jet
A Fast C and Python like Programming Language that puts the Developer first. WIP
Stars: ✭ 41 (+156.25%)
Mutual labels:  compiler-design
compiler-design-lab
These are my programs for compiler design lab work in my sixth semester
Stars: ✭ 47 (+193.75%)
Mutual labels:  compiler-design
CaptCC
A tiny C compiler written purely in JavaScript.
Stars: ✭ 175 (+993.75%)
Mutual labels:  compiler-design
regal86
Register Allocator for 8086
Stars: ✭ 62 (+287.5%)
Mutual labels:  compiler-design
PigletC
A toy C-like language compiler for PigletVM
Stars: ✭ 51 (+218.75%)
Mutual labels:  compiler-design
hascal
Hascal is a general purpose and open source programming language designed to build optimal, maintainable, reliable and efficient software.
Stars: ✭ 56 (+250%)
Mutual labels:  compiler-design
JuCC
JuCC - Jadavpur University Compiler Compiler
Stars: ✭ 34 (+112.5%)
Mutual labels:  compiler-design
librxvm
non-backtracking NFA-based regular expression library, for C and Python
Stars: ✭ 57 (+256.25%)
Mutual labels:  compiler-design

Kyoto 京

ポータブルバイナリコードアセンブリのコンパイルに重点を置いて作成された並列プログラミング言語。

Lightweight programming language (designed to have very small memory footprint and with minimalist syntax and features) powered by LLVM that have as compilation target: WebAssembly.

pub myCustomFuction = String.toInt |> sum(2)
<!-- Will be transformed into WASM by webpack-kyoto-loader -->
<script type="text/javascript">
  import myCustomFuction from "./main.kto";

  console.log(myCustomFuction("1")); // 3
</script>

Features

  • Lazy and async collections with streams.
  • Built-in types based on unsigned memory.
  • Memory lifecycle.
  • Enforces use more memory only when it's really necessary.

Example Code

main.kto

"1" |> String.toInt |> sum(2) |> log
# 3

fib.kto

fn fibonacci() fn() Int64 {
    x, y := 0, 1
    <- fn() Int64 {
        x, y = y, x + y
        <- y - x
    }
}

WebAssembly

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.

Usage with WASM

Kyoto is made and focused exclusively for WASM usage. Here's an example using Kyoto Webpack loader:

import fib from 'fib.kto';

console.log(fib(13))

TODO Kyoto 0.0.1

Types

  • Built-in types
    • Int (8-bit unsigned integer)
      • Min: –128, Max: 127
      • toString
    • Int16 (16-bit unsigned integer)
      • Min: –32768, Max: 32767
      • toString
    • Int32 (16-bit unsigned integer)
      • Min: –2147483648, Max: 2147483647
      • toString
    • Int64 (64-bit unsigned integer)
      • toString
    • Float (64-bit unsigned float)
      • toString
    • Function (fn) A reference to code chunk
  • Data types
    • String (UTF-8 encoded binaries representing characters)
    • Map
    • List

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].