# Sonara > Sonara is a speakable constructed language (conlang) that is simultaneously a Turing-complete programming language — every sentence can be recited aloud and executed by a machine. This site hosts the interactive interpreter with a step-by-step debugger, the full grammar reference, a phrasebook, the dictionary, and a community feed of poem-programs shared on Nostr with the hashtag #sonara. Sonara ("sanara" — the number 547 spelled in the language's own gematria) rests on three ideas: consonants are digits, vowels are grammar, and sentences are stack programs (SOV word order is exactly Reverse Polish Notation). ## The language - Alphabet: ten consonants (p t k m n s l r v z) that are also the digits 0–9, and five vowels (a e i o u). Words are strict consonant-vowel syllables; stress is always penultimate. Any human can pronounce anything. - Gematria: the consonant skeleton of every word is its number, most significant digit first. sama (water) = s·m·a = 53. Pure numbers are words without a legend: taka = 12. - Word classes by final vowel: -a noun (pushes its gematria onto the stack), -i verb (one of 21 core operations), -e particle (structure), -o adjective (transforms the top of the stack), -u name (memory-cell reference: pu "I" = cell 0, tu "you" = cell 1, ku "it" = cell 2; any other -u word addresses the cell of its gematria). - Verbs (human gloss = computation): vani unite/add, tiri take away/subtract, mili grow/multiply, kivi split/divide (truncating), miki leave a remainder/modulo, nivi agree/equal→1|0, risi surpass/greater-than→1|0, pili deny/boolean-not, kipi echo/duplicate, pisi let go/drop, sivi trade/swap, riti lift/over, sipi speak/print number, siki sing/print Unicode codepoint as character, niti hear/read integer from input, nili listen/read character codepoint, rimi remember/store (value addr → cell), viri recall/load (unset cell = 0), tivi do/call a rule by its number, ziti sleep/halt, pivi rest/no-op. - Particles: te "and then" (no-op), ve … ne … ze "suppose … otherwise … enough" (if / else / end; ve pops a condition), le … ze "again … enough" (loop: ze pops and repeats while nonzero), ke NAME … ze defines a named rule (skipped in normal flow; call it with NAME tivi; rules may recurse), me "as a number" (marks the next word as meant numerically; no-op for the machine), re … se "code begins … speech resumes" (when present, only the marked regions execute; blocks may not cross the boundary). - Adjectives: pono negate, kipo double, milo square, riso increment ("great, more"), tiro decrement ("small, less"), and the heart-only identities savo (good), piso (bad), saso (hot), nuso (cold). - Scribe conventions: # starts a margin note to end of line; punctuation is ignored by the machine; inner vowels are free melody (vani = veni = voni). - Conversation model: a dialogue is a shared stack. Giving is remembering (sama tu rimi — "water, you keep" = I give you water). Wanting is summoning (pu sama viri — "I summon water" = I'm thirsty). States are unions (pu zava vani — "I unite with joy" = I'm happy). Plural is a doubled pronoun (pu kipo = we). Questions rise in tone; answers are ta (1 = yes), pa (0 = no), ta pono ("a lacking one" = maybe). - Turing-completeness: unbounded stack, numbered memory cells, arithmetic, conditionals, loops, and recursive rules — enough to simulate any counter machine. ## Examples - `naka sa vani te sipi.` — "forty-two and five unite, and then it speaks" → prints 47. - `pu tu liva vani te sipi.` — "I, you, love unite — and then it speaks" → prints 69. - `sa le kipi sipi ta tiri te kipi pa risi ze pisi te ziti.` — a countdown, prints 5 4 3 2 1. - `rala siki lasa siki maka siki rala siki lasa siki te ziti.` — sings "LA LA" (76 = L, 65 = A, 32 = space). - The anthology on /play includes "The mirror", a real quine: about 19 KB of Sonara that speaks exactly its own source text. ## Site sections - [Home](https://sprachcode.shakespeare.wtf/): overview and a live mini demo - [Playground](https://sprachcode.shakespeare.wtf/play): the interpreter — stepper, tempo control, stack/memory/output views, interlinear speech view, recitation, Nostr sharing - [Learn](https://sprachcode.shakespeare.wtf/learn): the complete grammar reference on one page - [Speak](https://sprachcode.shakespeare.wtf/speak): the phrasebook and the shared-stack conversation model - [Lexicon](https://sprachcode.shakespeare.wtf/lexicon): the dictionary plus a two-way number↔word namer - [Community](https://sprachcode.shakespeare.wtf/community): #sonara poem-programs from Nostr relays ## Optional - [Source repository](https://marlowe.shakespeare.wtf/clone?url=nostr%3A%2F%2Fnpub14rg4vrt2v374q95ezeeydu3hkdhmzglcj950mggacap4x0lv0gyq04wun7%2Frelay.ngit.dev%2Fsprachcode): clone and edit the project with Marlowe - [Marlowe](https://marlowe.shakespeare.wtf): the Nostr-native AI app builder this site was vibed with