# Talk:Kepler

Great language, but I think this will be a lot easier to code golf in if you add more undocumented features/problems to your source code. (E.g. ^ without arguments reverses the deque, but I don't think this will be a quirk anyway.) --The reason FORTRAN has a three-way branch – IF (ABC) 1,2,3 – is because the machine had a three-way branch, and that way they could generate that in a single instruction. 07:31, 14 July 2019 (UTC)

Can you list all the quirks that you have currently found, in order to result in a better understanding of Kepler? --The reason FORTRAN has a three-way branch – IF (ABC) 1,2,3 – is because the machine had a three-way branch, and that way they could generate that in a single instruction. 07:31, 14 July 2019 (UTC)

Alright, I'll list as many quirks as I can find. Areallycoolusername (talk) 10:57, 14 July 2019 (UTC)

I don't think this is a programming language, as it does not support prime checking. (I really want to use it on Code Golf SE, but I can't do that, as Code Golf SE requires programs to be written in programming languages.) --The reason FORTRAN has a three-way branch – IF (ABC) 1,2,3 – is because the machine had a three-way branch, and that way they could generate that in a single instruction. 11:10, 14 July 2019 (UTC)

## Python Interpreter

User: A, you can't add the lenth of a queue to the front of a deque when there is no queue. So what do you mean when you say, "which adds whether the length of the queue is a prime to the front of the deque"? Areallycoolusername (talk) 02:30, 15 July 2019 (UTC)

That is a typo. (I mispelled deque as queue). --Areallycoolusername (talk) 04:07, 15 July 2019 (UTC)
What are you doing with my signature, User: A? --(this comment by Jussef Swissen at 15:32, July 15, 2019 UTC; please sign your comments with ~~~~) Areallycoolusername (talk) 15:32, 15 July 2019 (UTC)

## C++ interpreter bugs

When I run the C++ interpreter, I get a segmentation fault if the input includes any of Kepler's commands. (Input not containing the command characters is partially echoed to the output in between repeated requests for more input). The crash is caused by the lack of `break` statements in the `switch` statement, usually when it falls thru to the line `case '~': cout << Deque[i];`. In addition to the missing breaks for each case, indexing `Deque` with `[i]` seems incorrect and the line `cin >> data;` should probably come before the do-while loop. `data[i] != NULL` also produces a warning during compilation because NULL is a pointer type. It would be more appropriate to check `data[i] != '\0'`. There is also the potential for bugs and/or crashes on any line that uses later bytes in data (`data[i + 1]`, etc.) because the subscripts are not checked for whether they are within the valid part of the input string or within the array bounds.

After reading some of the examples, I'm not sure if I understand how the pop (?;) and dump (~) commands are supposed to work. Can the popped values be used somehow by the next (or previous) command? I also don't understand the meaning of `!~` or `~!~` in the polynomial growth example. Some clarifications here would be helpful and appreciated. Thanks. Anthonykozar (talk) 02:12, 16 July 2019 (UTC)

User: Anthonykozar, there are many bugs in the C++ interpreter. Normally, they would be corrected in an updated interpreter, but these bugs (which I choose to call "quirks") are very interesting, and therefore won't be fixed. These are considered interesting, since they have properties which can inspire a host of new ideas for other languages. As for your concern on the pop command, ?, the push command, !, and the dump command, ~, values popped with the pop command are essentially, deleted, and the reforestation cannot be used by other instructions. The polynomial example quite simple. It pushes the tilde onto the stack, over and over again, and Dumps the data in the stack after the tilde is pushed. This creates a polynomIlan effect, which can be seen when you give the program as input for the Python interpreter. Areallycoolusername (talk) 23:26, 20 July 2019 (UTC)