Skip to content

Introduction

Sjoerd Vermeulen edited this page Jun 10, 2022 · 10 revisions

1 – Introduction

Evi is a general-purpose, low-level, procedual, compiled programming language with lexical variable scope and static typing. It offers an efficient and quick programming experience with its absence of keywords but otherwise c-like syntax.

The official Evi implementation is written in C++ and uses the LLVM project as backend to compile your code reliably and efficiently to a standalone executable. If specified, the Evi compiler can also generate unlinked object files, LLVM IR or an abstract syntax tree (AST) of your program. The invokes ld to link everything into the final executable.

Evi also comes with its own standard library (currently under development), the documentation for which can be found in §5.

Not unlike most reference manuals this one is not complete and might leave some questions unanswered. Please feel free to contact me. Do however mind that the Evi language, including its documentation, are still in development. Some example files can be found in the test/ directory the Evi github repository.



Next: 2 – Hello World

Contents

Home

1 – Introduction

2 – Hello World

3 – Basic Concepts

  3.1 – Types And Values

  3.2 – Type Modifiers

  3.3 – Arrays And Pointers

4 – The Language

  4.1 – Lexical Conventions

  4.2 – Variables And Parameters

  4.3 – Statements

    4.3.1 – Blocks

    4.3.2 – Assignment

    4.3.3 – Control Flow

    4.3.4 – Loops

    4.3.5 – Variable Declarations

  4.4 – Expressions

    4.4.1 – Arithmetic Operators

    4.4.2 – Bitwise Operators

    4.4.3 – Relational Operators

    4.4.5 – Logical Operators

    4.4.6 – The SizeOf Operator

    4.4.7 – The Casting Operator

    4.4.8 – Function Calls

    4.4.9 – Precedence

  4.5 – Visibility Rules

5 – The Standard Library

  5.1 – The Std Library

    5.1.1 – Input And Output

    5.1.2 – Mathematics

    5.1.3 – Memory Management

6 – The Preprocessor

  6.1 – Including Files

  6.2 – Setting Flags

  6.3 – Conditional Directives

  6.4 – Macros

  6.5 – Pragma Directives

  6.6 – Miscellaneous Directives

7 – The Compiler

  7.1 – Installation

  7.2 – Compilation

  7.3 – Execution

8 – The Complete Syntax

9 – Miscellaneous Information

  9.1 – Coding Conventions

    9.1.1 – Naming Conventions

    9.1.2 – Commenting Conventions

    9.1.3 – Miscellaneous Conventions

  9.2 – Credits

  9.3 – License

Clone this wiki locally