# EK9 Programming Language > EK9 is an AI-native, statically-typed programming language whose compiler enforces quality, security, and safety as hard errors — if it compiles, it meets the bar. It fuses object-oriented and functional styles, removes whole classes of bug from the grammar (no break/continue/return/null), models every value as tri-state (absent/unset/set), and compiles to JVM bytecode (LLVM native planned). This file follows the llmstxt.org convention. The full language reference is at [llms-full.txt](https://ek9.io/llms-full.txt); the structured, machine-readable reference is [forAI.json](https://ek9.io/forAI.json). ## Critical paradigm shifts (read first) - No `break`, `continue`, `return`, or `null` — use stream pipelines, guard expressions, and tri-state `?`. - `<-` declares a new variable, `:=` assigns to an existing one, `:=?` assigns only if currently unset. - `$` converts a value to String (it is not interpolation); backtick strings interpolate with `${...}`. - Types are closed by default (like Kotlin `final`) — use `as open` or composition. - Records have public fields and operators only; classes have private fields and methods. - Banned identifiers are compile errors: temp, tmp, value, val, flag, flg, data, dat, buffer, buf, object, obj. ## Documentation ### Getting Started _Introduction and basics for new developers_ - [About EK9](https://ek9.io/index.html): Overview and philosophy - [Introduction](https://ek9.io/introduction.html): Getting started guide - [Structure](https://ek9.io/structure.html): Module structure, indentation syntax - [Basics](https://ek9.io/basics.html): Variables, types, tri-state semantics ### Core Language _Core language constructs and syntax_ - [Operators](https://ek9.io/operators.html): All EK9 operators including ?. :=?, ==, <=> - [Flow Control](https://ek9.io/flowControl.html): Guards, conditionals, loops (NO break/continue/return) - [Exceptions](https://ek9.io/exceptions.html): Error handling with try/catch - [Constants](https://ek9.io/constants.html): Constant definitions - [Programs](https://ek9.io/programs.html): Entry points and program structure ### Types _Type system and built-in types_ - [Built-in Types](https://ek9.io/builtInTypes.html): String, Integer, Boolean, etc. (NO null) - [Collection Types](https://ek9.io/collectionTypes.html): List, Dict, Optional, Result - [Standard Types](https://ek9.io/standardTypes.html): Date, Time, Duration, etc. - [Network Types](https://ek9.io/networkTypes.html): HTTP, TCP, UDP types - [Input Sanitization](https://ek9.io/sanitized.html): Sanitized types for security - [Enumerations](https://ek9.io/enumerations.html): Enum definitions - [Records](https://ek9.io/records.html): Data-focused aggregates (mutable — immutability via 'pure') - [Generics/Templates](https://ek9.io/generics.html): Generic type parameters ### Object Oriented _Object-oriented programming constructs_ - [Classes](https://ek9.io/classes.html): Class definitions (closed by default) - [Methods](https://ek9.io/methods.html): Method definitions and dispatchers - [Traits](https://ek9.io/traits.html): Interface-like abstractions - [Composition](https://ek9.io/composition.html): Extension by composition with 'by' - [Inheritance](https://ek9.io/inheritance.html): Type inheritance (use 'as open') - [Advanced Methods](https://ek9.io/advancedClassMethods.html): Advanced class method patterns ### Functional _Functional programming features_ - [Functions](https://ek9.io/functions.html): Function definitions (NO return statement) - [Dynamic Functions](https://ek9.io/dynamicFunctions.html): First-class functions - [Dynamic Classes](https://ek9.io/dynamicClasses.html): Runtime class creation - [Streams/Pipelines](https://ek9.io/streamsAndPipelines.html): Stream processing (replaces break/continue) ### Enterprise _Enterprise and application features_ - [Components](https://ek9.io/components.html): Component definitions - [Dependency Injection](https://ek9.io/dependencyInjection.html): DI patterns - [Web Services](https://ek9.io/webServices.html): REST services - [Design Patterns](https://ek9.io/commonDesignPatterns.html): Common EK9 patterns - [Text/Properties](https://ek9.io/textProperties.html): I18n and configuration ### Tooling _Development tools and compiler_ - [Command Line](https://ek9.io/commandline.html): Compiler options including -E3/-E5 for AI - [Testing](https://ek9.io/testing.html): Test framework and coverage - [Code Quality](https://ek9.io/quality.html): Metrics and thresholds - [Packaging](https://ek9.io/packaging.html): Building and distributing - [REPL](https://ek9.io/repl.html): Interactive evaluation ### Reference _Reference documentation_ - [Error Index](https://ek9.io/errors.html): All compiler errors with fixes - [For AI Assistants](https://ek9.io/forAI.html): AI-specific guidance (HTML version) ## For AI assistants - [For AI Assistants (HTML)](https://ek9.io/forAI.html): guide to EK9 for coding assistants. - [forAI.json](https://ek9.io/forAI.json): structured machine-readable reference (error codes, type APIs, examples). - [llms-full.txt](https://ek9.io/llms-full.txt): the full language reference in one file. - [Q&A corpus](https://ek9.io/qa/): compiler-validated question-and-answer examples (machine-readable: https://ek9.io/qa/qa.jsonl).