My name is Eduardo and I'm a Computer Science student from Brazil, finishing college by the end of this year. My undergraduate thesis is about the programming language JAEL that I'm developing for Code Golf challenges. The source code and documentation are available at GitHub and an interpreter is hosted over TIO. But I'll describe it shortly:
JAEL is a programming language focused on mathematical computation. The execution is stack-based, although the results must be saved over tape objects to be printed on the output.
The main feature is the dynamic interpretation of symbols by assimilating their Unicode names. This allows the programmer to add many combinations of functions into a single character with easy understanding and review of the resulted behavior. For example, the code:
can be simplified to just:
The list of current tested characters is small, although it will be extended over time.
That's the reason I'm here: to gather help from Code Golf lovers to test JAEL into production, competing in challenges and finding new ways to improve the language. There are many functions yet to be defined, but I need some help to give priorities according to what is more frequently used and required.
Because of its characteristics, JAEL has it's best performance over mathematical challenges that require many small calculations over single numbers. I'm still working on calculations over lists and grouping functions, but it's not a priority right now.
I need to collect data about usage in real competitions until November 18th, when I'll be publishing my monography. I hope you can help me until that. Any critics and suggestions are appreciated, about anything (Documentation, features, etc).
After reading your comments, I realized that I had forgotten to finish the documentation and that I had to fix a lot of important features in order to post this. My anxiety to have other users contributing made me skip some steps. I've added some of the missing features. Others are still missing because are not finished yet, like the ability to deal with multiple values from the stack in a single operation.
Yes, the five dots program was a really bad example. It does compress a lot but lacks real use in a program. It's just possible because JAEL does the compression and expansion of symbols automatically, without a manual mapping. Let me show you better examples of how this feature can be better used:
Considering that ^ is 2 and g is the exponentiation function, the character ĝ square rises the value on top of the stack.
Multiply by 3: õ
Divide by 2: û
Add 1: à
I think you got the idea. So, again, this approach is more appropriate in challenges that deal with this kind of calculation. It is very specific indeed, however, I've got some really good looking results.
Another characteristic that I did not mention is that the language was built to be used in challenges that consider the number of characters instead of the byte count as the score. So maybe this website is not the appropriate place to start using it, although I really like it since many users post challenges daily.
Thank you very much