Ola Language¶
Ola is a high-level language for implementing smart contracts. From the outset, it is designed to be a zk-friendly programming language.
Ola is compiled into ola ir, which is then optimized and compiled into ola opcode, which is executed by the OlaVM.
Ola is influenced by Solidity and Rust, and is very easy for developers familiar with these languages to get started. It is statically typed and supports complex user-defined types among other features. With Ola, you can create contracts for a variety of uses.
The current Ola Language is unstable, with many features that need to be improved. Keep an eye on our progress!
Contents¶
Introduction
Quick Start
Ola Syntax
- Ola Language Grammar
- Rule SourceUnit
- Rule SourceUnitPart
- Rule ImportDirective
- Rule Type
- Rule IdentifierOrError
- Rule VariableDeclaration
- Rule StructDefinition
- Rule ContractPart
- Rule ContractDefinition
- Rule EnumDefinition
- Rule VariableDefinition
- Rule TypeDefinition
- Rule VariableAttribute
- Rule Expression
- Rule Precedence14
- Rule Precedence13
- Rule Precedence12
- Rule Precedence11
- Rule Precedence10
- Rule Precedence9
- Rule Precedence8
- Rule Precedence7
- Rule Precedence6
- Rule Precedence5
- Rule Precedence4
- Rule Precedence3
- Rule Precedence2
- Rule NamedArgument
- Rule FunctionCall
- Rule Precedence0
- Rule LiteralExpression
- Rule Parameter
- Rule OptParameter
- Rule ParameterList
- Rule BlockStatementOrSemiColon
- Rule FunctionDefinition
- Rule BlockStatement
- Rule OpenStatement
- Rule ClosedStatement
- Rule Statement
- Rule SimpleStatement
- Rule NonIfStatement
- Rule Comma
- Rule CommaOne
- Rule CommaTwo
- Rule Number
- Rule Identifier
- Rule StringLiteral
- Ola Language Syntax
Compiler
Appendix