Ever wondered why your code feels like a bad translation, even in your native language?
Geul programming language flips that script. Built from the ground up around Korean’s SOV order, agglutinative particles, and flexible word positioning, it’s not some keyword swap on Python’s skeleton. No—creator wwoosshh engineered a compiler that parses like Hangul itself, self-hosts on x86-64, and spits out native PE binaries without a crutch like GCC.
Look, most ‘international’ languages? Lazy reskins. Swap ‘if’ for ‘만약’, keep the SVO rigidity. Korean brains don’t wire that way. Particles like 를 (object) or 에 (target) dictate roles, freeing word order. Geul bakes this in: 5를 3에 더하다. Object first, target next, verb seals it. Parser matches particles to function params—position be damned.
Why Mirror Korean Grammar in Code?
Because syntax shapes thought. English SVO shoves subjects upfront; Korean buries verbs, particles clarifying the mess. Traditional langs force Korean devs into mental gymnastics—transposing logic to fit C’s mold. Geul? Native flow. Function defs echo it: [정수 왼쪽을 정수 오른쪽에 더하기]는 -> 정수. Params crave specific particles. Mismatch? Compiler balks early.
And verbs—Korean conjugates wildly. Call 더하다 (to add), but declare as noun 더하기 (adding). A three-level recursive morpheme analyzer strips suffixes at parse time, mapping forms automatically. Clever hack. No manual dictionary drudgery.
Here’s the kicker: self-hosting since v0.5. Bootstrap binary compiles Geul source to matching SHA256 fixed-point. Brutal milestone—every feature in the compiler must steel itself.
Every non-English programming language I’ve seen does the same thing: translate the keywords. if, while, return become local words, but the grammar stays identical to C or Python.
That quote nails it. Geul transcends.
Backend splits pragmatic. Morpheme split → recursive descent parser (SOV + particle magic) → AST to 3-address IR with types → transpiler to C (via cl.exe) or direct x86-64 PE writer. Zero deps on the native path: fuses cmp/jcc, pins registers, peepholes junk, hoists invariants, tails to jmp. Impressive for solo dev since March 2026 (v0.7.1 now, MIT).
Benchmarks? Honest, not hype. On Intel Ultra 5:
Recursive fib(40): 464ms vs C’s 321ms (1.45x slower). Sieve 1M primes: 10ms vs 8ms (1.3x). Bubble 30k: 1564ms vs 564ms (ouch, 2.77x—loop pressure culprit, roadmap fix).
Still crushes Python 15-24x. Not C-killer, but viable for Korean-first tools?
Syntax delights. Types: 정수 나이 = 25. Strings interpolate smoothly: “{이름}은 {나이}세입니다\n”을 쓰다. Ifs: 값 > 10이면 { … } 아니면 { … }. Loops: (번호 < 10)동안 { 번호를 증가하다. }. Structs: 묶음 점은 정수 가로, 정수 세로. Clean.
VS Code extension? Syntax, F5 run, LSP. 9 stdlib modules, 62 funcs. Windows x86-64 solid; Linux ELF incoming. Playground: geul-web.vercel.app/playground. GitHub: wwoosshh/geul-lang.
Is Geul’s Performance Ready for Prime Time?
Bubble sort lags scream ‘not yet’. Nested loops thrash registers—Geul pins loop vars to callee-saved, but allocation heuristics need tuning. C’s MSVC /O2 laps it there. Fair? Geul’s particle parser adds overhead, but IR optimizations close gaps elsewhere.
My unique take: this echoes APL’s 1960s rebellion against linear notation. APL crammed math power into right-to-left, high-rank arrays—programmers loved/hated the alien syntax. Geul? Cultural APL for East Asia. Bold prediction: as LLMs chew natural language prompts into code, grammar-native langs like this seed polyglot IDEs. Imagine GitHub Copilot auto-transpiling Korean pseudocode to Rust. Geul’s not fringe; it’s the prototype.
But skepticism: self-hosting’s cute, yet package manager? Absent. Error handling (시도/실패)? Planned. Debug/PDB? Roadmap. Prod-ready? For scripts, VS Code tinkering—yes. Enterprise? Wait for v1.
Corporate spin? None here—solo dev, open source. No VC fluff. Just raw engineering.
Control flow shines in if-else chains—particles keep args unambiguous even shuffled. Strings auto-format in interpolations, dodging printf hell. Struct access: 위치의 가로 = 10. Possessive, intuitive.
How Does Geul’s Compiler Actually Work?
Pipeline’s beauty: recursive affix stripper handles conjugation depth (Korean verbs stack suffixes like Lego). Parser? Descent, particle-binding core. No positionals—args latch via grammar rules. IR? Three-address, types static-checked. Backends fork: C for debug ease, native for purity (PE headers hand-rolled, machine code emitted direct).
Optimizations punch above: tail calls to jmp (recursion wins), dead stores zapped. Bubble gap? Roadmap targets it—smarter alloc.
Windows lock-in? Smart start—PE mastery proves chops. ELF next. No macOS? Niche audience.
Playground lets you poke: write 5를 10에 곱하다, hit run. Feels… natural? For Koreans, yeah. English eyes squint—proves the point.
Broader why: programming’s English hegemony starves 1.5B non-natives. India mandates local langs in schools; Korea could follow. Geul tests if grammar-native boosts productivity 2x (hypothesis: fewer syntax errors, faster onboarding).
Roadmap teases packager, errors, debug. v18 since ‘26—steady clip.
🧬 Related Insights
- Read more: AWS EKS Auto Mode: Kubernetes Node Management’s Quiet Revolution
- Read more: Backrooms: Tech’s Endless Office Nightmare Goes Viral
Frequently Asked Questions
What is Geul programming language?
Geul is a natively compiled, self-hosting language designed around Korean grammar—SOV order, particles for arg binding, morpheme analysis for verbs.
Is Geul faster than Python?
Yes, 15-25x on benchmarks like fib and sieve, though slower than optimized C in some loops.
Where can I try Geul?
Browser playground at geul-web.vercel.app/playground or VS Code extension from GitHub.