Skip to content
joha2 edited this page Jun 29, 2016 · 17 revisions

Welcome to the cosmicos wiki!

Some Questions (pre FAQ)

In the following I want to ask some questions about CosmicOS.

Message in general:

  • Did you ever hand the message over to some person which should decode it like the test message in the METI initiative http://www.dearet.org/ (i.e. without any knowledge of it)?
  • Is it possible to decode the message in an automated way (without to many assumptions), i.e. to generate a parsing tree or to perform a lexical analysis? Are there results or tools in computer science which allow that? Since an AI or ET who receives your message should have such a tool or result at hand, at least approximately ;-)
  • Connected with Question no. 2: Should ET or AI compile the message to receive an implementation like cosh.js at the end of the day?
  • I wondered if it is possible to train a neural network to decode your message.
  • Are your bitcodes prefix free? Would that be an improvement for the decoding?
  • Did you already think about redundancy in the message body in case there are some signal errors?

Message specific:

  • Would it be a good idea to use blocks like in the METI initiative consisting of 8 numbers (for redundancy reasons) to encode your 0, 1, 2, 3 alphabet?
  • Would it also be possible to encode the "end-of-command" ; by another value instead of using (()) or 2233 (e.g. 4)? Comment: From an automatic translation view maybe the commands should also be embraced in ( and ) instead of being finalized by a new symbol.
  • When I tried to decode your message without putting to much knowledge into the decoder, I first tried to find the separators. I saw that 2 and 3 appear nearly equally often and therefore are good candidates for separators. When I substituted them 2 -> ( and 3 -> ) I wondered why the line statements themselves were not embraced by (). I also wondered what the expression 0() means. Could you please explain your encoding philosophy a bit more?
  • Why did you start the message with this is:int stuff? Isn't it more intuitive to start with comparisons and afterwards do this "number", "square", "prime" stuff? (I know in a C++ program one writes int a = 1; before using a ;-))

Unary:

  • Why did you name this operator "unary"? I thought an "unary" operator has only one operand? The "unary" operator in cosmicos has arbitrarily many operands.
  • Why is "unary" not defined by "intro"?
  • Did you use "unary" as some kind of of "no-op" operator?

Real numbers:

  • I wondered why you care about real numbers? Is it not possible to rewrite all floating point (rational) numbers into the form (div int int)? A friend of mine mentioned that real numbers themselves might be a more or less cultural product whereas natural numbers, integer numbers, or rational numbers are not. I could ask him for a reference.
  • Natural constants like pi, e, and sqrt(2) can be formulated recursively (by using the appropriate series representations) Perhaps one can introduce an approximation operator which approximates the result by a (div int int) form? Like (= (approx (pi) (div 1 10)) (div 22 7)) -> True
  • Do you already have a symbol for infinity or is there an implementation for limiting procedures?

Cosh.js:

The cosh seems not to work correctly for me:

cosmicos> (< 3 4)
1
cosmicos> (< 4 3)
Problem with 0 (intro)

What did I do wrong? Comment: It seems that there is no False in the list of operators when you call help.

Clone this wiki locally