-
Notifications
You must be signed in to change notification settings - Fork 0
Feature
rpfister102 edited this page May 20, 2019
·
13 revisions
The features contained in the following list specify the core compiler. Those features will be considered as the base of the language and are required to be able to write (very primitive) smart contracts.
Core Features
- contract
- arithmetic operations (+/-/*///%)
- comparison operattions (<, >, <=, >=, ==, !=)
- negation (!)
- variable declaration without structs, map, array (int, bool, string, address, a.s.o.)
- function declaration
- return statements (multiple)
- structural statements (if, else a.s.o)
- call statement
- variable access
- assignment
The features will be implemented first. Other features will be implemented in later phases.
Thomas Bocek - "For me, Core is really just creating a contract with a function that adds two integers and returns it."
This is an ordered list of additional features. The order expresses the priorization.
Note: Features flagged with ✅ are considered as done
- Function Call ✅
- VM support Multiple Return values ✅
- Designator ✅
- this keyword ✅
- Constructor ✅
- Array ✅ (Nested arrays are partially done as the virtual machine does not yet support it)
- Map ✅
- Struct ✅
- Expressions (Rest) ✅
- address
- Else If Support
- Builtins -> msg, value, block a.s.o.
- For
- Foreach
- Annotations
- Builtin Errors
- Interfaces
- Custom Errors
- ...