Skip to content

Feature

rpfister102 edited this page May 20, 2019 · 13 revisions

Note: On this page you can find information about the core features of the compiler. You can also find a prioritized list of additional features for the lazo compiler. Some of them have already been implemented.

Core Features

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."

Additional Features (sorted by implementation order)

This is an ordered list of additional features. The order expresses the priorization.

Note: Features flagged with ✅ are considered as done

  1. Function Call ✅
  2. VM support Multiple Return values ✅
  3. Designator ✅
  4. this keyword ✅
  5. Constructor ✅
  6. Array ✅ (Nested arrays are partially implemented)
  7. Map ✅
  8. Struct ✅
  9. Expressions (Rest) ✅
  10. address
  11. Else If Support
  12. Builtins -> msg, value, block a.s.o.
  13. For
  14. Foreach
  15. Annotations
  16. Builtin Errors
  17. Interfaces
  18. Custom Errors
  19. ...
Clone this wiki locally