RingLang : A multilingual Marvel

221 views
Skip to first unread message

Ziad Rabea

unread,
Nov 16, 2023, 6:59:07 PM11/16/23
to The Ring Programming Language
Dear Tech Innovators

    I am thrilled to announce that I finished the first yet experimental version of Ring multilingual system, a system that aims to break the language barrier and make coding accessible to everyone, some statistics show that native English speakers are less than 5% of the world population, so, in a world where the next Steve Jobs could possibly be one of the 95% non-English speakers, it's crucial to provide a language that open doors for their innovation.

    After studying the previous attempts creating a multilingual programming language, I found that the common factor of failure was the concept of "localization" because when the user writes code in their mother tongue, no one can contribute developing it except for is own language speakers, which actually prevents creating successful and diverse projects.

    The core Idea of the system is to provide a translator that helps translating ring code & keywords from one language to another to help breaking the language barrier and provide a world where innovation knows no limits, it currently supports the following languages (English, Arabic, French, Turkish and Spanish). 

    The package is called "multilingual" and you can access it by using "ringpm install multilingual from ziadrabea" command. it's still an experimental version, so it does not yet have all the keywords of the language as I tried it on the basic ones, feel free to add other keywords and include new languages here : https://github.com/ZiadRabea/multilingual/tree/master.
 
Note : ringpm run packagename will work, but you will need to pass the entire file path to be able to access & translate it, so I prefer to use the translator which you can access by typing ring_translator in the command line interface if you have the language main directory path added to the path variable. 

Let's share this wonderful technology and break the linguistic barriers ✨❤

Best Regards
Ziad Rabea

Ziad Rabea

unread,
Nov 16, 2023, 11:32:37 PM11/16/23
to The Ring Programming Language
Hello all,

    There will be a short video explaining the process of downloading and using the package tonight ✨❤

Sincerely
Ziad Rabea
bandicam 2023-11-17 06-10-00-182.jpg
bandicam 2023-11-17 06-07-06-859.jpg
bandicam 2023-11-17 05-59-20-549.jpg

Mahmoud Fayed

unread,
Nov 17, 2023, 6:51:19 AM11/17/23
to The Ring Programming Language
Hello Ziad

Thanks for sharing :D
The project looks like an idea in very early stages. 

Please check the related projects
Was a graduation project by 4 students and provide Arabic translation to the most important features of the Ring language
You will find many examples and implementation for some AI algorithms that are used as an introduction to AI

You have good writing skills which is useful in documentation/marketing
But software development is a different story, my suggestions is to invest more time working on your idea/project.
After that when you share your work, it will be more interesting because it will be useful.

Keep up the good work, step by step until you achieve your goal.

Greetings,
Mahmoud

Ziad Rabea

unread,
Nov 17, 2023, 7:53:58 AM11/17/23
to Mahmoud Fayed, The Ring Programming Language
Hello Dr. Mahmoud,
Thanks for your positive feedback, I mentioned that it's still an experimental, yet incomplete version, It'll be better over time.

Just finished the video of the package demo : https://www.youtube.com/watch?v=7L9ibTuR6-s.

Best regards
Ziad Rabea

--

---
You received this message because you are subscribed to a topic in the Google Groups "The Ring Programming Language" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ring-lang/K1bdlwFvEp0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ring-lang+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ring-lang/bc981edc-14e2-4255-b1a2-81d7c7171082n%40googlegroups.com.

Mahmoud Fayed

unread,
Nov 17, 2023, 9:49:29 AM11/17/23
to The Ring Programming Language
Hello Ziad

>> "Thanks for your positive feedback, I mentioned that it's still an experimental, yet incomplete version, It'll be better over time."

You are welcome :D

>> "Just finished the video of the package demo"

Nice demo, the idea is interesting.
To develop a powerful translator (Stable/Fast), You will need a real Ring parser, That can analysis the Ring source code 
You can write it in Ring itself, get some help from the TokensLib: Using TokensLib — Ring 1.18 documentation (ring-lang.github.io) 

In PWCT2 project, we have Ring2PWCT (written in Ring) that uses the TokensLib + Ring Parser (Converted from C to Ring) 
I am sure you will enjoy these tasks if your tried to do it.

Greetings,
Mahmoud

max

unread,
Nov 17, 2023, 11:29:41 AM11/17/23
to The Ring Programming Language
Hallo,

i am also interested in ring parser. ring is opensource. does anyone have an idea how to use lexer and parser from ring without executing the code.

the TokensLib + Ring Parser (Converted from C to Ring)  is that available on github?


Greetings 
max

Mahmoud Fayed

unread,
Nov 17, 2023, 12:03:01 PM11/17/23
to The Ring Programming Language
Hello max

>> "i am also interested in ring parser. ring is opensource. does anyone have an idea how to use lexer and parser from ring without executing the code."

Ring parser which is written in C doesn't produce AST 
It uses the Code Generator directly, to produce the Byte Code
This match one of the design goals behind Ring (Small Implementation + Faster Compiler)
So, we don't have standalone parser module that you can take from Ring code and use it to get AST
What we have will produce a List of ByteCode instructions
i.e. To have AST from Ring code, You have to modify the parser code and customize it.

>> "the TokensLib + Ring Parser (Converted from C to Ring)  is that available on github?"

This is part of PWCT2 source code which is not open-source at the current stage
What I did is simple
Using TokensLib ---> I can get the tokens from Ring source code file
I converted stmt.c and expr.c to Ring Classes while removing anything related to CodeGen
 (Each class is less than one thousand lines of code)
I did the conversion in one day since it's easy to convert this C code to Ring code (Thanks to supporting the Braces Style in Ring)

Then I customized the output of these classes to produce PWCT visual source file instead of ByteCode

Greetings,
Mahmoud

max

unread,
Nov 17, 2023, 1:05:57 PM11/17/23
to The Ring Programming Language
Hallo Mahmoud,

Thanks for these tips. I will give it a try.

I have another question about calling C code from Ring. I know how to do it with functions.

is it also possible to call c++ struct and class from ring.

can you please add an example of this in extention tutorial

Greetings,
Max

Mahmoud Fayed

unread,
Nov 17, 2023, 2:01:04 PM11/17/23
to The Ring Programming Language
Hello Max

>> "is it also possible to call c++ struct and class from ring."

We have a code generator that take configuration files as input (That describe C++ classes) then produce the extension code in C++ & Ring (Classes).


Greetings,
Mahmoud

Ziad Rabea

unread,
Nov 17, 2023, 8:11:25 PM11/17/23
to Mahmoud Fayed, The Ring Programming Language
Hello Dr. Mahmoud, 

It's an interesting and perfect approach, I built kind of a semi Lexer/Tokenizer in ring to be able to convert the source code to a bunch of tokens, but I was not able to convert it to exe using Ring2EXE command, so I kept the source code available and built the exe version using python/pyinstaller, I think rebuilding the project using TokensLib is gonna be faster and more stable.

Greetings
Ziad

max

unread,
Dec 15, 2023, 4:55:39 AM12/15/23
to The Ring Programming Language
Hallo Mahmoud,

can you pleas provide this code in small library? i was not able to do that. i get too much erorrs

Greetings,
max

Mahmoud Fayed

unread,
Dec 15, 2023, 7:28:56 AM12/15/23
to The Ring Programming Language
Hello max

In the future, We will provide examples about wrapping C++ classes and we will add it to ring/extensions/tutorial


Greetings,
Mahmoud

max

unread,
Jan 31, 2024, 5:03:44 AM1/31/24
to The Ring Programming Language
Hello Mahmoud,

can you please provide the TokensLib + Ring Parser in the form of a small library

Mahmoud Fayed

unread,
Jan 31, 2024, 12:54:32 PM1/31/24
to The Ring Programming Language
Hello Max

>> "can you please provide the TokensLib + Ring Parser in the form of a small library".

This is outside the scope of my needs at the current stage.
Maybe this could be added in the future.

For now, since Ring is open-source, you can create your custom version of such a library.

Greetings,
Mahmoud
Reply all
Reply to author
Forward
0 new messages