Jump to content

KEM – An inclusive programming language from Guatemala


Recommended Posts

Spoiler

Hello everyone,
I'm Yordan Vasquez (username: vyordan on Gitea). I'm 20 years old, from Guatemala, and I'm currently in my 5th semester of Systems Engineering.
As a personal project, I'm developing KEM, a programming language built from scratch using C++ and LLVM. Its main goal is linguistic inclusion and education – teaching programming logic.

---------------------------------------------------------------------------------------
Repository: https://github.com/vyordan/KEM
English README: https://github.com/vyordan/KEM/blob/main/README_english.md

---------------------------------------------------------------------------------------
What is it exactly about?
The core idea is to make language separation purely lexical. To achieve this, I placed all reserved keywords in an external JSON file, which allows the language to be translated into any human language without modifying the compiler.
Given my local context, I primarily thought of Mayan languages (Kaqchikel, K'iche', etc.). My goal is for people in my country to learn programming without English being a mandatory barrier. By default, the language ships with Spanish.
Current status
I've just finished the first phase of the compiler. I'd like to ask you, if you have a moment, to take a look at the repository and share your opinion. Just reading the README makes it very clear how I structured the logic and the reserved keywords I've implemented so far.
Do you think such an approach can truly be useful for education and technological inclusion?
Thanks for reading :)

  • Like 1
Link to comment
Share on other sites

1 minute ago, Yordan said:
  Reveal hidden contents

Hello everyone,
I'm Yordan Vasquez (username: vyordan on Gitea). I'm 20 years old, from Guatemala, and I'm currently in my 5th semester of Systems Engineering.
As a personal project, I'm developing KEM, a programming language built from scratch using C++ and LLVM. Its main goal is linguistic inclusion and education – teaching programming logic.

---------------------------------------------------------------------------------------
Repository: https://github.com/vyordan/KEM
English README: https://github.com/vyordan/KEM/blob/main/README_english.md

---------------------------------------------------------------------------------------
What is it exactly about?
The core idea is to make language separation purely lexical. To achieve this, I placed all reserved keywords in an external JSON file, which allows the language to be translated into any human language without modifying the compiler.
Given my local context, I primarily thought of Mayan languages (Kaqchikel, K'iche', etc.). My goal is for people in my country to learn programming without English being a mandatory barrier. By default, the language ships with Spanish.
Current status
I've just finished the first phase of the compiler. I'd like to ask you, if you have a moment, to take a look at the repository and share your opinion. Just reading the README makes it very clear how I structured the logic and the reserved keywords I've implemented so far.
Do you think such an approach can truly be useful for education and technological inclusion?
Thanks for reading :)

Hello everyone,
I'm Yordan Vasquez (username: vyordan on Gitea). I'm 20 years old, from Guatemala, and I'm currently in my 5th semester of Systems Engineering.
As a personal project, I'm developing KEM, a programming language built from scratch using C++ and LLVM. Its main goal is linguistic inclusion and education – teaching programming logic.

---------------------------------------------------------------------------------------
Repository: https://github.com/vyordan/KEM
English README: https://github.com/vyordan/KEM/blob/main/README_english.md

---------------------------------------------------------------------------------------
What is it exactly about?
The core idea is to make language separation purely lexical. To achieve this, I placed all reserved keywords in an external JSON file, which allows the language to be translated into any human language without modifying the compiler.
Given my local context, I primarily thought of Mayan languages (Kaqchikel, K'iche', etc.). My goal is for people in my country to learn programming without English being a mandatory barrier. By default, the language ships with Spanish.
Current status
I've just finished the first phase of the compiler. I'd like to ask you, if you have a moment, to take a look at the repository and share your opinion. Just reading the README makes it very clear how I structured the logic and the reserved keywords I've implemented so far.
Do you think such an approach can truly be useful for education and technological inclusion?
Thanks for reading :)

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Honestly, I'm not convinced that optimizing a programming language primarily for absolute beginners is as beneficial as it sounds. Python followed a similar philosophy, but learning to program well is vastly harder than learning a handful of keywords. Any design tradeoff that makes the language slightly easier during the first week, at the cost of making it less expressive or more awkward for experienced users over the following years, seems questionable.

Nowadays, if the goal is to let people write programs in natural language, LLMs already provide a much more flexible solution. You can describe the program in your own language and have the model translate it into an established programming language. That avoids permanently baking "natural language" compromises into the language itself.

Python is an example of the downside of prioritizing beginner friendliness too much. The core language is simple, but once you start doing more advanced things, many features feel like workarounds layered on top of the original design. The result is code that can actually become harder to read and reason about than languages that were designed with more consistency and long-term scalability in mind.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...