^ go up - main page


Zecena /ˈzexena/ is a constructed language I created. Its primary features are a stack-based grammar (akin to a programming language like Forth) and an orthography consisting entirely of Latin letters lacking any ascenders or descenders, resulting in every character having uniform height. This is far from the first time I have experimented with either of these two concepts. In fact, the name isn't even entirely new: "Zecena" is derived from "Zeetchian", the name of a very simple cipherlang I made around 2019 which followed the latter orthographic restriction, and a name which was for some strange reason derived from the word "cheese" spoken backwards.

The aformentioned lack of ascenders or descenders results in a rather small and somewhat bizzare (but surprisingly symmetric) phonology of 8 consonants and 4 vowels. The consonants consist of mostly fricatives and nasals, but no plosives whatsoever! One fun aspect of such a phonology is that I can loosely derive words from languages that are familiar to me (mostly English, admittedly...) while having them generally not be too obvious or recognizable.

I cannot guarantee that I do a good job at explaining this language and its stack-based nature in this document. However, if you already have some prior experience with similar conlangs, you might be able to instinctively understand much of how this language works.

Also, the language is very incomplete and barely has any words. Do not try to use it for anything substantial yet, or you will pay.

Phonology and Orthography

One of the key principles of Zecena is that all of its letters lack any ascenders or descenders: that is, every symbol has a uniform height, and no part of any symbol goes below the baseline (as the letters [gjpqy] do) or above the mean line (as the letters [bdfhijklt] do). Thus, the language uses only 12 letters, from which a phonology of 8 consonants and 4 vowels is derived:

Letter Sound
m /m/
n /n/
v /v/
s /s/
z /z/
c /x/
x /ɣ/
r /ɾ/
a /a/
e /e/
o /o/
u /u/

You may have noticed that there is one letter that is excluded but which certainly fits the criteria: the letter 'w'. I was originally going to include it, but I decided that I didn't enjoy it aesthetically, and due to /w/ being a semivowel it tends to cause all sorts of problems that would require complicating the phonotactics to fix (for instance, 'uwa' sounds almost identical to 'ua').

Zecena is always written using only lower-case letters, to satisfy the uniform letter height rule.

Stress always falls on the first syllable in a word.


There may be a maximum of 2 consecutive consonants (a "consonant cluster") in a word. All consonant clusters must be followed by a vowel. For consonant clusters at the beginning of a word: only the following are valid:

-m -n -v -r
v- vm vn vr
s- sm sn sv sr
z- zm zn zv zr
c- cm cn cv cr
x- xm xn xv xr

For all consonant clusters in between vowels, the following rules apply:

There may be a maximum of two consecutive vowels in a word. Two of the same vowel may not appear consecutively.


Zecena's grammar is stack-based. I won't attempt to explain what a "stack" is (I presume much of the people reading this will already be very familiar with this), but if you don't already know, go read about stacks and RPN and stuff or watch some videos about it or something. It's neat stuff.

A sentence is a sequence of words separated by spaces and may be punctuated by a period. Other punctuation such as exclaimation and question marks are generally not used, as they violate the "no ascenders or descenders" rule. A sentence should result in a single value being pushed to the stack; the meaning of the sentence is that whatever this value refers to exists/happens/is true.

All words in Zecena have a certain number of arguments which they take, known as its arity. This is equivalent to the number of values that are popped off the stack when that word is used. A word's arity is indicated by a vowel suffix:

Vowel Arity
-a 0
-e 1
-o 2

Each arity can be roughly equated to familiar parts of speech:

Words with 'u' directly before the arity suffix are reserved for words formed via special systematic means, such as numbers and colors.

Each word in the Zecena dictionary is defined with a specific arity, known as its root arity.

All words will push exactly one value onto the stack upon usage. If a word's definition explicitly states what it "pushes", then that is what the word pushes. Otherwise, the word pushes a default value according to the following:

When a 0-ary word is used, it simply pushes itself onto the stack. When a 1-ary or 2-ary word is used, it pops the corresponding number of words off the stack and uses them as arguments. These arguments are labeled as "x1" and "x2", in order from left to right (from the earlest to the latest pushed onto the stack). Then, a new word is pushed onto the stack representing the state, quality, action, or process of the resulting predicate.


x1 is good

x1 eats x2

ma srume.
me-0 sleep-1
I sleep.

ma ranza secro.
me-0 land-0 see-2
I see land.

ra vasra moco vene.
you-0 water-0 consume-2 good-1
You drinking water is good. / It is good that you drink water. / The fact that you drink water is good.

ma snenza sveco zecena maeso.
me-0 sentence-0 speak-2 zecena-0 use-2
I speak sentences using Zecena. (I am speaking sentences, and that speaking is using Zecena)


There are a few suffixes which may be placed on words to alter their meaning in specific ways.

Normally when a 1-ary or 2-ary word is used, it pushes a value which refers to the state, quality, action, or process of the resulting predicate. However, it is possible to make the word refer to one of the predicate's arguments instead.

-n causes a word to refer to its x1 argument. -s causes a word to refer to its x2 argument.

xana ranza secro
person-0 land-0 see-2
A person seeing land

xana ranza secron
person-0 land-0 see-2-x1
A person who sees land

xana ranza secros
person-0 land-0 see-2-x2
Land which a person sees

The roles of the x1 and x2 arguments of a predicate may be swapped with the -r suffix:

meusca xana caeror.
music-0 person-0 hear-2-swap.
Music is being heard by a person.

If both the -r suffix and one of -n or -s must be used on the same word, they combine to form the -run and -rus suffixes.

ma meusca xana caerorun cono.
me-0 music-0 person-0 hear-2-swap-x1 know-2.
I know the music which is being heard by a person.

Arity Casting

As previously mentioned, each word in Zecena has a specific root arity. A word may be cast from its root arity into another arity.

When a word is cast into an arity which is less that its root arity, it is just like removing arguments from the predicate and leaving them unspecified. A 2-ary word cast into a 1-ary word has its x2 argument removed:

ma moce.
me-0 eat-1.
I eat. (what is being eaten is unspecified)

If you wish to remove the x1 argument instead, you can use the -r suffix:

maca mocer.
food-0 eat-1-swap.
Food is eaten. (who/what is eating the food is unspecified)

A word cast into a 0-ary word has all arguments removed:

Eating (the word has now become a noun referring to the act of eating in general)

Note that the -n and -s suffixes can still be used on words which have been cast to lower arities:

Something which eats

ra secres
you-0 see-1-x2
Something which you see

When a word is cast into an arity which is greater than its root arity, the predicate has extra arguments added to it. The meaning of these new arguments is determined in a consistent way. A 0-ary word cast into a 1-ary word means "x1 is [original word]":

ma xane.
me-0 person-1.
I am a person.

A 1-ary word cast into a 2-ary word means "x2 causes x1 to [original word]". This argument order may seem backwards from what you might expect. This is for self-consistency: casting a 2-ary word into a 1-ary word removes its x2 argument, so "veno" (x2 causes x1 to be good) becomes "vene" (x1 is good) which means exactly what it did before.

resca ma veno.
liquid-0 me-0 good-2.
I cause the liquid to be good.

ra ma xano.
you-0 me-0 person-2.
I cause you to be a person. / You are a person because of me.


Words expressing numerical values are formed in a systematic way. All words for numbers are 0-ary words representing the quantity itself. (The word 'cuvo' may be used to specifiy the quantity of another word.)

Numbers are expressed in base 10 as a sequence of digits, from most significant to least significant. Number words consist of the syllables below, and are suffixed with -nua.

Syllable Value
zu 0
mo 1
ni 2
ca 3
ro 4
xe 5
se 6
za 7
vo 8
na 9



ma voza cavozunua cuvon secro.
me-0 object-0 three-eight-zero-number-0 have_quantity-2-x1 see-2.
I see 380 objects. / I see objects which have a quantity of 380.

Note that numbers such as larger powers of ten, which can be unwieldy to express otherwise, can be expressed using Zecena's mathematical operator words:

ma voza mozunua nanua vauro cuvon secro.
me-0 object-0 one-zero-number-0 nine-number-0 exponentiate-2 have_quantity-2-x1 see-2.
I see one billion objects. / I see 10⁹ objects.