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