What does a minimal EK9 program look like?

← Getting Started · Ref: Q1

A minimal EK9 program requires three things:
1. A module declaration (`defines module`)
2. A program construct (`defines program`)
3. A program entry point (a named function inside `defines program`)

The program name becomes the entry point. EK9 uses indentation (2 spaces) to define scope — no braces needed.

To compile and run:

  ek9 -c hello.ek9    (compile)
  ek9 hello.ek9       (run)

For the full Stdout API, run: ek9 -h Stdout

See Q3 for printing output. See Q5 for source file structure. See Q17 for entry points and defines program. See Q93 for defining classes. See Q19 for scripting.

Example

#!ek9
defines module qa.getting.started.minimal

  defines program
    MinimalProgram()
      stdout <- Stdout()
      stdout.println("Hello, World!")

Common mistakes

E01040 — Defining two programs with the same name in the same module triggers E01040 — duplicate type definition. Each program must have a unique name within its module. See ek9 -h E01040 for details.

Incorrect:

defines program
    MinimalProgram()
      stdout <- Stdout()
      stdout.println("Hello, World!")
    MinimalProgram()
      stdout <- Stdout()

Correct:

defines program
    MinimalProgram()
      stdout <- Stdout()
      stdout.println("Hello, World!")
Other ways to ask this
  • Hello World in EK9
  • Simplest EK9 program
  • EK9 getting started example

Coming from another language?

All — first thing everyone asks

Keywords: basic, beginner, first, hello, intro, minimal, program, simple, start, world