DE-labtory / Koa
Labels
Projects that are alternatives of or similar to Koa
koa
The project is inspired by the simplicity and the ivy-bitcoin.
The koa project is to create a high-level language that has more expressions
than the bitcoin script and
is simpler and easy to analyze than soldity(ethereum).
A more detailed explanation is given below.
Also, koa project is published in Mobisys 2019! You can see the paper and poster below.
Title: "Demo: Light-Weight Programming Language for Blockchain"
Architecture
- Lexer
- Parser
- Compiler
- VM
Language Specification
Primitive Type
-
Integer
It is expressed in
int
. Integer size is 64 bytes. -
String
It is expressed in
string
. -
Boolean
It is expressed in
true
orfalse
.
Operators
-
Arithmetic
We support
+, -, *, /, %
only for integer. -
Comparison
We support
==, !=, >, <, >=, <=
for comparsion. -
Logical
We support
&&, ||
for logical operation. -
Prefix
We support
!, -
for prefix operator.
Condition
It is expressed in if(){}
or if(){}else{}
.
Etc
return
-
\n
: All statements should end in\n
. - Assign : It is expressed in
=
.
Example Code
contract {
func Sig(sig string){
string pubkey = "fvfidBGruUYC+mTw7CusaCOQbBuZBiYduFgH8hRW97KLmHn0xzB1FV++KI7syo8qXGo8Un24WP40IT78XjKO"
if checkSig(pubkey, sig){
return true
}
return false
}
}
Contribution
Contribution Guide CONTRIBUTION
License
Project source code files are made available under the Apache License, Version 2.0 (Apache-2.0), located in the LICENSE.
CLA Hub
To get started, sign the Contributor License Agreement.