Why BERK
BERK is a deterministic, certification-oriented systems language: determinism, purity, WCET bounds,
heap-less and panic-free execution are machine-checked effects, not conventions. Error handling is
contract-based and traceable, not panic — a violated contract stops the program before it runs.
- Contracts, not monads — behavior is provable rather than merely tested.
- 16 machine-checked effects & capabilities — determinism, purity (
saf), WCET bounds, heap-less
(yığın-yok) and panic-free (panik-yok) are enforced by the compiler; etkiler(sabit_zaman)
(constant-time) gives side-channel resistance.
- Engineered for certification — designed to meet DO-178C, ISO 26262 and IEC 62304
(these are targets; there is no formal certification yet — maturity ≈ TRL 4). Where a wrong bit is
not an option.
- Pure-Rust DDS/RTPS 2.4 stack — wire-compatible with Eclipse CycloneDDS and eProsima Fast-DDS
(the principal ROS 2 RMWs); 681 unit tests.
- One safe HAL, 18 MCU families (19 targets counting desktop & WebAssembly) — pure-BERK bare-metal
across Cortex-M, RISC-V, ESP32… behind a single API, with an opt-in LLVM/AOT backend for
C/C++-level performance.
- Two languages, one syntax — canonical Turkish keywords with full English equivalents, and a
core standard library that ships prefixed English aliases (
str_*, list_*, map_*,
istats_*, parse_int, …) next to the Turkish originals.
BERK is one of five products that form a single proof chain — from language to network, from the
OS layer to the digital twin — built by LL BERK Yazılım Teknolojileri A.Ş.
Syntax note: BERK blocks are written with yap … son (do … end), not { }. A newline ends a
statement — no semicolons.
Berk Studio — the official IDE
Berk Studio is the official development environment of the BERK language. It brings the code
editor, the package manager and the Visual, Web API, Embedded (PCB/Gerber), CAD
(B-Rep) and AI Model designer panels under one roof — the design is data, code is generated
from it, and every claim is verified by a proof report. The core edition (IDE + Visual Designer)
is free.
 IDE — Turkish-first coding, live output |
 Visual Designer — a 76-widget CRM dashboard, built in minutes |
 Embedded — schematic → routed PCB → Gerber |
 CAD — the same board, now a parametric 3D model |
 AI Model — visual graph, compiler-verified code |
 Web API — route = data = proof, deploy-ready |
Download: berk-tech.com/indir.html (TR) ·
berk-tech.com/en/download.html (EN) — Windows 10/11, 64-bit.
This extension is the lightweight companion for developers who prefer VS Code: the same compiler,
LSP, linter, REPL and package manager, fully offline.
Features
- Syntax highlighting for
.berk / .brk (TextMate grammar) plus a bundled BERK Dark theme.
- Language Server (LSP) — completion with grammar-true snippets, document-symbol completion
(your own functions and variables), hover, go-to-definition, references, rename, signature help,
document symbols, code actions, semantic tokens, inlay hints, and code lens.
- Debugging (DAP) — launch/attach, breakpoints, and step debugging.
- Build & run — run the current file, build native executables, and emit LLVM IR or assembly.
- Linting & formatting — on-demand lint,
berk fmt-backed document formatting, format-on-save.
- REPL and project scaffolding (
New Project).
- UTF-8 Turkish terminal so
ğ ü ş ı ö ç render correctly on Windows PowerShell.
- BPM aware — works with the BERK Package Manager (
bpm) for signed package install & use.
- AI-assistant ready — discovery metadata lets AI assistants learn BERK correctly and lazily load
per-library training docs (see AI assistant support).
Learn BERK on YouTube
Step-by-step video tutorials, in Turkish and English, from first program to the Studio designer
panels: youtube.com/@BerkSystemProgrammingLanguage
- BERK 101 / 201 — the language, from basics to advanced patterns.
- Berk Studio series — Visual, Web API, AI Model, Embedded (schematic → PCB → Gerber) and CAD
walkthroughs, produced with the built-in presentation engine.
Requirements
The extension looks for the BERK toolchain (berk, berk-lsp, berk-repl, berklint, bpm); a
bundled copy ships under bin/ — all five binaries are Authenticode-signed by
LL BERK Yazılım Teknolojileri A.Ş. (Sectigo Cloud OV, RFC 3161 timestamped). To use your own
toolchain, set berk.compilerPath / berk.lspPath in Settings. If a binary is missing, the
command falls back to the name on your PATH.
Quick start
Install the extension.
Open or create a .berk file.
Write a program:
fonksiyon ana() -> sayı yap
yazdır("Merhaba, BERK!")
döndür 0
son
or, with English keywords:
function main() -> sayı do
print("Hello, BERK!")
return 0
end
Press Ctrl+Shift+B to run, or F5 to debug. Or try it in the browser at the
playground.
Commands
Open the Command Palette (Ctrl+Shift+P) and type BERK:. Highlights:
| Command |
Description |
| BERK: Run Current File |
Run the active .berk file |
| BERK: Build Project |
Build the workspace project |
| BERK: Compile to Native Executable |
LLVM native build (-O2 default) |
| BERK: Emit LLVM IR / Emit Assembly |
Emit .ll / .s for the current file |
| BERK: Start REPL |
Interactive BERK session |
| BERK: Format Document |
Format the current file |
| BERK: Lint Current File |
Run the linter |
| BERK: Run All Tests |
Run the project's tests |
| BERK: Debug Current File |
Start a debug session |
| BERK: Create New Project |
Scaffold a new BERK project |
| BERK: Setup UTF-8 Terminal |
Enable Turkish characters in the terminal |
| BERK: Toggle Turkish/English |
Switch preferred keyword language |
Keyboard shortcuts
| Shortcut |
Action |
|
Shortcut |
Action |
Ctrl+Shift+B |
Run current file |
|
F5 |
Debug current file |
Ctrl+Shift+N |
Compile to native |
|
Ctrl+Shift+T |
Run all tests |
Ctrl+Shift+F |
Format document |
|
Ctrl+Shift+L |
Lint current file |
Settings
| Setting |
Default |
Description |
berk.preferredLanguage |
auto |
Preferred keyword language (turkish / english / auto) |
berk.compilerPath |
berk-lang |
Path to the BERK compiler |
berk.lspPath |
(auto) |
Path to the LSP server (empty = auto-detect from bin/) |
berk.enableLinter |
true |
Enable the linter |
berk.format.onSave |
true |
Format BERK files on save |
berk.llvm.optimizationLevel |
O2 |
LLVM optimization level (O0–O3) |
berk.llvm.emitType |
exe |
Default LLVM output (exe / llvm-ir / asm / obj) |
berk.inlayHints.enable |
true |
Show inlay type hints |
berk.codeLens.enable |
true |
Show reference/implementation code lens |
berk.terminal.enableUtf8 |
true |
Auto-enable UTF-8 for Turkish characters |
berk.trace.server |
off |
Trace LSP communication (off / messages / verbose) |
Packages (BPM)
Functionality beyond the core standard library is delivered as ed25519-signed packages via the BERK
Package Manager:
bpm install json --strict # verify the signature on install
kullan json
değişken v = json::ayrıştır(metin)
Public ecosystem (open registry): BerkROS, BerkRTOS, BerkFinance, BerkBio, BerkAI,
and the civil DSP spectral package, alongside the general-purpose standard library.
Sector packages (licensed — authorized distribution only): domain libraries for Avionics
(DO-178C), Automotive / ADAS (ISO 26262), Medical (IEC 62304), Railway (EN 50128), Space
(ECSS), Robotics (ROS 2), Telecom, DDS/RTPS, industrial protocols, reproducibility, and
defense applications. These are not on the public registry and ship only through authorized,
offline channels — contact us for access.
AI assistant support
The extension carries guidance so AI coding assistants (Copilot, Claude, Cursor, Gemini, …) produce
correct, compilable BERK:
BERK_AI_REHBERI.md — full syntax, type tables, method lists, execution modes
(interpreter / paketle / LLVM AOT) and common pitfalls. Shipped with the extension and copied into your
workspace as .berk/BERK_AI_REHBERI.md (with STDLIB_AI_REHBERI.md) so assistants that only read the
workspace can find it.
STDLIB_AI_REHBERI.md — the standard-library model: import rules, value semantics, error discipline.
egitim_indeks.json + stdlib_rehber/ — a discovery index for lazy-loading per-library training
docs (egitim_listesi / egitim_oku), so assistants pull only the library in use rather than the
whole corpus.
- Package awareness: the workspace file
.berk/EGITIM_DURUM.md also lists the public BPM packages that are
not installed yet (name · area · description), so an assistant can recognise "this task needs fem" and offer
bpm install fem --strict. Run BERK: AI Asistan Yönergesini Projeye Ekle / Add AI Assistant Guide to Project
to point your project's AGENTS.md, CLAUDE.md or .github/copilot-instructions.md at it.
Language at a glance
tip Nokta = yapı yap x: ondalık, y: ondalık son
saf fonksiyon uzaklık_kare(p: Nokta) -> ondalık yap
döndür p.x * p.x + p.y * p.y
son
fonksiyon ana() -> sayı yap
değişken noktalar = []
noktalar.ekle(Nokta yap x: 3.0, y: 4.0 son)
her biri p içinde noktalar yap
yazdır(uzaklık_kare(p).metin())
son
döndür 0
son
- Blocks
yap … son (or do … end); conditionals eğer … ise yap … değilse yap … son.
- Loops
iken …, her biri x içinde … yap … son; match eşleştir … yap … son / match … do … end.
- Generics use square brackets:
Sonuç[T, E], liste[bayt].
- Errors: built-in
Sonuç[T,E] (Tamam/Hata — Ok/Err) and Seçenek[T] (Bazı/Hiç) with ? propagation.
- English-keyword code can freely call Turkish stdlib names, or use the prefixed English aliases.
Documentation & links
License
Released under the GNU General Public License v3.0 — see LICENSE.
© 2026 LL BERK Yazılım Teknolojileri A.Ş. (Muğla, Türkiye). BERK and the BERK logo are marks of
LL BERK Yazılım Teknolojileri A.Ş.