1
\$\begingroup\$

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).

EDIT:

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

\$\endgroup\$
  • 6
    \$\begingroup\$ The best way I've seen on this site to advertise a language is to start using it. As people see answers in a particular language (with an explanation of how the answer works), people get interested and start trying it out. \$\endgroup\$ – Nathan Merrill Nov 1 '18 at 3:26
  • 3
    \$\begingroup\$ Note that the standard scoring system on PPCG is in bytes so compressing to unicode characters isn't going to help you... \$\endgroup\$ – Jo King Nov 1 '18 at 14:09
  • \$\begingroup\$ Unless you're using a custom code-page of course \$\endgroup\$ – Jo King Nov 1 '18 at 14:27
  • \$\begingroup\$ How exactly do I use the <CAPSLOCK> instruction? \$\endgroup\$ – Jo King Nov 3 '18 at 9:19
  • \$\begingroup\$ Does JAEL output non-numeric characters? Clicking the Hello, World! button in the TIO link outputs pi. \$\endgroup\$ – Oliver Nov 29 '18 at 23:06
3
\$\begingroup\$

Your language isn't compelling as-documented

I've read all the documentation currently available on GitHub, and the language appears to have many undocumented features, and those undocumented features include the things that make it unique. Right now the only documented capabilities I can find are basic math in an interactive environment. I can't even find an explanation for how to access input. Thus, at the moment, the language isn't easy to use, isn't going to be very effective for golfing, doesn't require that you think about problems in a unique way, and doesn't offer any special features that might make it especially suited to certain challenges.

If you want people to use this language, you need to provide information about what makes it more useful than a 4-function calculator, and about how to access that usefulness. For example, you indicated that the language in some way interprets "⁙" as ".....", but I can find no description as to what logic is used for that expansion in order to apply that logic to further unicode characters, nor can I even find a description for what "....." does or why I would want to access it as a single character.

(in addition to all of that there's the issue raised in the comments that "⁙" is a 3 byte character so only saves a little, but "how JAEL counts bytes" is another thing not explained so I think that's less important)

\$\endgroup\$
  • 2
    \$\begingroup\$ Plus, the documentation starts with code examples. Code examples should always come last. If someone's viewing your docs, it's probably because to some extent they don't know how your language works. An example I love to point to is ><>. Table of contents, concepts, instructions, examples. \$\endgroup\$ – mbomb007 Nov 1 '18 at 21:32
  • \$\begingroup\$ According to the cheatsheet in docs, the . instruction appears to read in a character (number?). I fail to see why you would need 5 of these though... I feel like shortcuts for a golfing language should be practical rather than aesthetically pleasing \$\endgroup\$ – Jo King Nov 3 '18 at 9:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .