Code without if and while: five programming languages not in English

Hello, tekkix! My name is Yura, I am the team lead of the Waterbase project at KION, and in my free time, I love reading about what's new in the world of IT and what programming approaches are used in other countries. Today, I want to talk about programming languages with non-English syntax — these do not have commands like if, print, and while, which we are all so used to. The authors aimed either to simplify entry into IT for native speakers of their language or to rethink the very concept of a programming language. Below are five such projects: LSE, VisuAlg, Aheui, Qalb, and Kalaam. Let's go!

LSE (Langage Symbolique d’Enseignement): French hello from the past

In the late 1970s, when computers were just beginning to appear in schools, engineers from Supélec developed LSE — "Symbolic Language of Teaching." It was created to ensure that the language barrier wouldn't hinder beginner programmers from France in mastering algorithms and creating applications. Structurally, the language resembled BASIC, but its syntax was entirely in French: SI instead of IF, ALORSTHEN, SINONELSE.

Commands like AFFICHER (show) and LIRE (read) made the language understandable for French-speaking students. Due to its strict logic and relative simplicity, LSE became widespread in educational institutions, including the Télématique system and Minitel terminals.

Here is an example of code — the program asks the user for two strings and checks if they are anagrams:

1 CHAINE A,B,BP
5 FAIRE
10   AFFICHER 'A = ' ;LIRE A ; SI A=’’ ALORS FINI
11   AFFICHER 'B = ' ;LIRE B ; BP ← B
12
15   R SI LGR(A) # LGR(B) ALORS .FAUX. SINON &ANAG(A,B)
20   SI R ALORS AFFICHER A, 'EST ANAGRAMME DE ',BP
21   SINON AFFICHER A, 'N’’EST PAS ANAGRAMME DE ',BP
25 BOUCLER
30 TERMINER
50 FONCTION &ANAG(U,V) LOCAL J {lgr(u)=lgr(v)}
51   SI U=' ' ALORS RESULTAT .VRAI.
52   SI J = 0 ALORS RESULTAT .FAUX.
54   RESULTAT &ANAG(SCH(U,2, ' '),MCH(V,J,1, ' '))

The project became quite popular (for its time, of course). LSE was actively used in schools in France, Belgium, and the French-speaking part of Canada, including Quebec. By the way, it is one of the first languages adapted to the native language of students. However, with the spread of more universal and powerful languages like Pascal and C, LSE gradually lost its significance. Today, it is considered more of a museum exhibit: it has no official website or active community, but its contribution to the development of IT education in the French-speaking world remains significant.

VisuAlg: Brazilian guide to the world of code

In 2002, Brazilian teacher Antonio Carlos Moreira introduced VisuAlg — a language designed to help students focus on algorithms rather than English grammar. It is not a full-fledged programming language for development, but a pseudocode in Portuguese, turned into a working environment. Here, escreva replaces print, leia — read, and se — if. VisuAlg is focused on teaching: it supports basic constructs — loops, conditions, variables — and comes with an interpreter and debugger, allowing you to immediately see the result of the code. Its strength lies in its simplicity and accessibility, especially for beginners.

inicio
  inteiro n
  escreva("Digite um número: ")
  leia(n)
  se (n % 2 = 0) entao
    escreva("O número é par!")
  senao
    escreva("O número é ímpar!")
  fimse
fim

VisuAlg remains in demand in Brazil: version 3.0.7, released in 2019, is actively used in schools and colleges. It is not a competitor to global languages, but in the educational niche, it retains its relevance.

Aheui: a Korean experiment in programming

In 2006, Korean developer Minhwan Choi introduced Aheui — an esoteric programming language based on the Hangul alphabet of the Korean language. The name Aheui (아희) has no specific translation; it is an abstract word.

In Aheui, each command is a symbol of Hangul. Moreover, different parts of a syllable (initial consonant, vowel, and final consonant) define:

  • the type of the command (e.g., arithmetic, input/output);

  • the direction of execution (up, down, left, right);

  • the stack control structure.

This makes the language two-dimensional — like in another esolang, Befunge, code execution can move not only line by line but in any direction on the character table. Aheui has only 26 stacks (corresponding to the number of initial consonants in Hangul) and one queue. This data storage system makes the language powerful, but quite complex to understand. Especially for those who are not familiar with Korean.

Fortunately, there is no need to torture yourself: in practice, Aheui is not used for real tasks — it is an experiment and an artistic project created to show how algorithms can be expressed through the structure of a native language and the visual form of text.

Example code to print Hello, World!:

밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅

Updates are rare, and the language is not particularly developed. However, interpreters are available, and this programming language continues to inspire those who see more in code than utility.

Qalb: the Arabic voice in the digital world

In 2012, Lebanese developer Ramsey Nasser introduced the programming language Qalb — which means "heart" in Arabic. It is one of the first programming languages to use Arabic syntax and the right-to-left writing direction. The project was created as an attempt to show that programming does not necessarily have to be tied to English — code can also reflect the characteristics of one's native culture and language. Here is an example of Hello, World! in this language:

  
Programming without if and while: five unique languages

Qalb has a simple syntax (for native speakers, of course): for example, the قول command means "say". The language wasn't created for developing complex applications — it's more of an experiment aimed at education and drawing attention to linguistic diversity in IT. It's been many years since the last update, the project is barely maintained — the latest commit was made in 2013. So there's really no talk of further development. But it doesn't need to develop any further, since Qalb is an experimental project. Its concept isn't used in industry, but it lives on as an interesting experience.

Here's another example of a code snippet:

  
Using programming languages without if and while: top-5 options

And the repository on GitHub, it's still available.

Kalaam: Hindi for a New Generation

In 2019, Indian developer Aditya Bhargava released Kalaam — a Hindi language where kalaam means "words" or "speech". The goal is to make programming accessible for millions of Indians who don't know English. To work around keyboard limitations (not everyone has a Hindi keyboard), the syntax uses Latin transliteration.

As for commands, it's likho instead of print, jab tak instead of while, agar replaces if, etc. Kalaam is simple and aimed at learning; it helps beginners grasp basic concepts without language barriers.

shuru
  likho("1 se 5 tak gino:")
  i = 1
  jab tak (i <= 5) {
    likho(i)
    i = i + 1
  }
khatam

Kalaam is a young language that's actively developing. It's being used in educational projects in India. The language brings programming closer to local cultural traditions. So, the phrase "Indian code" has taken on new meaning.

That's all for today. If you have other examples of non-English languages, share them in the comments — let's discuss!

Comments