music |
| | OSdata.com |
universal computer oriented language
universal message format
summary
I intend to prove the utility of my proposed Universal Computer Oriented Language by creating a universal message format that can be used to transfer any program and/or data to any computer platform and that can be used to successfully transmit astronomical data to alien civilizations two trillion years from now.
This is my version of UNCOL (Universal Computer Oriented Language).
The goal is a practical universal intermediate between any conceivable machine and any conceivable language.
UNCOL was first proposed in 1958 by Melvin E. Conway. UNCOL stands for Universal Computer Oriented Language. The original intent was a universal intermediate language. The source code for all programming languages would be translated into the intermediate code and the intermediate code would then be translated into the machine code for all processors. This meant only one compiler back end (assembler) per processor and only one compiler front end per programming language.
UNCOL was never successfully implemented, despite the fact that some of the most famous people in the history of computers have worked on the problem.
It bothered me that building a working compiler/assembler, even if it included all existing programming languages and all existing processors (a very high bar), would not actually prove that I had succeeded in building atrue universal computer oriented language.
But it does occur to me that a good test was the creation of a message for aliens 1 trillion years in the future.
Between 100 billion years and 1 trillion years from the start of the universe, all of the galaxies in the Local Group will merge into one large galaxy. Around 2 trillion years after the start of the universe all galaxies outside the Local Supercluster will no longer be detectable. The Stelliferous Era continues until 100 trillion years from the start of the universe.
That means that during the vast majority of the time with stars (98%), future aliens will not be able to detect any other galaxies and will not be able to determine the early history of the universe without intact messages from species such as us.
How do we successfully communicate our current observations of the universe to unknown species of future aliens on a scale of trillions of years?
I claim that my proposed solution to the Universal Computer Oriented Language problem also solves the problem of communicating our current astronomical observatiosn to the future aliens.
I claim that my proposed solution to the Universal Computer Oriented Language problem also solves the problem of communicating our current astronomical observatiosn to the future aliens.
If my proposed Universal Computer Oriented Language can successfully communicate important scientific information to unknown alien species over a gulf of trillions of years, then it most likely can handle any programming language for the near future (at least until quantum computers become common).
I will now describe the format of my proposed universal message.
summary
This is my version of UNCOL (Universal Computer Oriented Language).
The goal is a practical universal intermediate between any conceivable machine and any conceivable language.
UNCOL was first proposed in 1958 by Melvin E. Conway. UNCOL stands for Universal Computer Oriented Language. The original intent was a universal intermediate language. The source code for all programming languages would be translated into the intermediate code and the intermediate code would then be translated into the machine code for all processors. This meant only one compiler back end (assembler) per processor and only one compiler front end per programming language.
UNCOL was never successfully implemented, despite the fact that some of the most famous people in the history of computers have worked on the problem.
my test
This is my version of UNCOL (Universal Computer Oriented Language).
It bothered me that building a working compiler/assembler, even if it included all existing programming languages and all existing processors (a veyr high bar), would not actually prove that I had succeeded in building atrue universal computer oriented language.
But it does occur to me that a good test was the creation of a message for aliens 1 trillion years in the future.
Between 100 billion years and 1 trillion years from the start of the universe, all of the galaxies in the Local Group will merge into one large galaxy. Around 2 trillion years after the start of the universe all galaxies outside the Local Supercluster will no longer be detectable. The Stelliferous Era continues until 100 trillion years from the start of the universe.
That means that during the vast majority of the time with stars (98%), future aliens will not be able to detect any other galaxies and will not be able to determine the early history of the universe without intact messages from species such as us.
How do we successfully communicate our current observations of the universe to unknown species of future aliens on a scale of trillions of years?
I claim that my proposed solution to the Universal Computer Oriented Language problem also solves the problem of communicating our current astronomical observatiosn to the future aliens.
I claim that my proposed solution to the Universal Computer Oriented Language problem also solves the problem of communicating our current astronomical observatiosn to the future aliens.
If my proposed Universal Computer Oriented Language can successfully communicate important scientific information to unknown alien species over a gulf of trillions of years, then it most likely can handle any programming language for the near future (at least until quantum computers become common).
I will now describe the format of my proposed universal message.
The goal is to have a minimum of detective work before the entire message becomes self-decoding.
intelligent signal
The first goal is to establish that this is an intelligent message and not a naturally occurring phenomenon.
It is my claim that the complex nature of the overall signal combined with the repeated pattern of counting integers will clearly distinguish this as an intelligent message worthy of attempts to decode.
start of message
It is important that an alien be able to accurately guess the location of the start of the message, because that contains the keys for decoding the entire message.
counting
The first part of the message is counting. The obvious candidates are binary (advantage of simplicity and compatibility with the vast majority of modern computers), balanced ternary (advantage of one unique representation for every number and used on Zuses first computers), or quater-imaginary (advantage of representing complex numbers, not just real numbers).
I am going to assume binary for the sake of discussion, but this material will work in the other number systems. Any pair of different signals (preferably opposites) will work for the two binary digits, allowing messages in many different forms.
The message starts by counting. The two obvious sequences are to count every integer or to count by prime numbers.
I am recommending the use of counting by integer as a separator between logical blocks of information, as this is the easiest pattern to recognize and would not be likely to be part of the message.
I am recommending that the counting by prime numbers be the marker for the start of message. This is an easy pattern to recognize and would not be likely to be part of the message. It also distinguishes itself from the more common counting by integers as a separator.
These are two parts of the message that dont self-decode, so it is essential that they be easy to spot and solve on their own. I think both patterns are easy to recognize.
20 basic logical operations
The second part of the message is the key to decoding the rest of the message. Unfortunately, the future aliens will have to figure this one out on their own.
There are four possible logical operations on a single bit (unary connectives): always true (ignoring its initial value), stay the same, NOT (inverting the bit), and always false (ignoring the initial value).
There are 16 possible logical operations on two bits (binary connectives or dyadic connectives). two of these (always true and always false) are repeated from the set of single bit operations. The 16 basic dyadic connectives are:
- Contradiction (always FALSE)
- Tautology (always TRUE)
- Proposition P
- Negation of P
- Proposition Q
- Negation of Q
- Conjunction (AND)
- Alternative denial (NAND)
- Disjunction (OR)
- Joint denial (NOR)
- Material nonimplication
- Material implication (if...then)
- Converse nonimplication
- Converse implication
- Exclusive disjunction (XOR)
- Biconditional (NXOR; IFF, if an donly if; equivalence)
The group of AND, OR, and NOT are functionally complete.
Both NAND and NOR are functionally complete all by themselves.
All logic circuits (and therefore all binary digital computers and all software for binary digital computers) can be described with NANDs. The same is true for NORs. This makes them Turing complete.
These 20 operations (and some variations) happen to be the lowest of eight levels of my proposed Universal Computer Oriented Language and can be used to unambigiously define all of the other levels.
I propose 20 consectuive records.
Each record will show the truth table for one of the 20 basic logic operations.
The records can be presented in any order as long as every record is included. I do suggest providing all of the unary connectives before the binary conenctives to make decoding easier.
My proposed sequence in each record is: the input state of the bit or pair of bits, the resulting output state, a unique name, and a record terminator.
The hardest part of decoding is realizing that one is seeing a set of truth tables.
The existence of 20 record terminators should help identify what is happening. If the names are of fixed length, the additional clue of two kinds of groups, one of four and one of 16 should also help identify what is happening.
Human readable alternative names for these 20 operations can be added at a later stage in the message. This step is important for human use of the Universal Computer Oriented Language, but unnecessary for future aliens.
My proposal to this point is: count by prime numbers (to establish start of message), count by integers (separator), truth tables for 20 basic logic operations (to establish key to decode message), count by integers (separator).
confirmation
The next step is a demonstration of the use of the key which will allow the future aliens to confirm that they have correctly decoded the key.
My proposal is to use the 20 operations to build a Turning machine that emits the digits of pi.
Although one could build this simple machine with just NAND, requiring the use of every one of the 20 logical connectives helps the future alien guarantee that they have correctly identified all of the elements of the key.
The future aliens do not have to run the Turing machine for too many digits to confirm that they have correctly used the key.
Pi is an easily recognized number and a universal constant that transcends culture, the speed of light, and even changes in the laws of chemistry (which are expected in the future onn the scale we are considering).
The future aliens can, of course, run the simple Turing machine for as long as they want, producing as many digits of pi as they desire.
At some point the future aliens will be reasonablly convinced that they have correctly decoded the key.
The Turing machine that creates the digits of pi is not defined using Turings notation because there is no common language established this early in the message for sharing Turings notation. A future alien is far more likely to identify simple truth tables than Turings rather obscure notation.
The next few sections of the message define the tools needed to decode the entire message.
The message so far: counting by prime numbers (identify start), count by integers (separator), 20 logic operations (key and lowest level of the UNCOL), count by integers (separator), Turing machine that produces pi (confirmation of key), and count by integers (separator).
define the UNCOL
The next step is to define the other layers of my proposed Universal Computer Oriented Language (UNCOL).
Because the NAND and the NOR are both functionally complete, we didnt actually need to define any other operations.
Defining the entire 20 operations should help make it easier for a future alien to identify the key.
Defining the entire 20 operations also gives a flexibility in expression that makes it easier to write software in the UNCOL.
Defining additional layers of the UNCOL is unnecessary from a minimalistic viewpoint because we are already Turing complete.
Adding higher levels of the UNCOL means that the message can be greatly compacted.
Adding higher levels of the UNCOL means that the language is much easier for humans to read and understand.
Because any Turing complete language is fucntionally equivalent to any other Turing complete language (as well as functionally equivalent with both lambda calculus and general recursive functions), we can use the 20 basic logical operations to define any other Turing complete system.
Each of the layers of my proposed Universal Computer Oriented Language are Turing complete.
Instead of defining every layer in terms of the lowest layer (20 basic logic operations), I propose defining each layer in terms of the next lower layer (occassionally supplemented with other lower level operations as needed for clarity).
This approach will make the layers easier for a human to understand and will make the message to future aliens much more compact (and might also help aliens understand what they are decoding).
tools
having defined all of the components of all of the layers of my Universal Computer Oriented Lnaguage, the message will include tools written in the UNCOL.
compiler/assembler
One very important tool is the compiler/assembler for the Universal Computer Oriented Language.
Future aliens can use the compiler/assembler as a guide for creating a compiler/assembler for their own computers.
This same format can be used in modern times to deliver platform-independent, processor-independent, operating system-independent software to any computer, both those currently in use and those that are created int he future. This is the primary goal of the Universal Computer Oriented Language.
error correction
Another important tool is an error correction scheme. If a message has to survive trillions of years, it needs a very solid error correction scheme.
At this point it is possible to define any error correction scheme we want in the Universal Computer Oriented Langauge. Both existing human computers and future alien computers can use the compiler/assembler to run the error correction scheme. The error correction scheme can be freely swapped out as humans and subsequent species discover better error correction schemes (and old messages will have their error correction schemes encoded in their messages).
To prevent confusion, I did not previously mention this part, but now that you see this can work, you realize that we will insert the error correction data at the end of every block.
There are two possible reactions the future aliens can have to the error correction data.
It is possible that they may independently decode the error correction scheme from the corresponding blocks counting in integers and counting in prime numbers. In this case, the error correction scheme becomes an additional confirmation that they are correctly decoding the message.
It is possible that the aliens may view the error correction data as an unsoved puzzle until they reach the part of the message that shows them the error correciton algorithm. Delayed realization of the meaning of the error correction scheme should not interfere with the ability to decode the preceding portions of the message.
multi-dimensional plotting
The important software tool is the multi-dimensional plotting program. This is used to extract and display the astronomical data that we currently possess that will no longer be available in 2 trillion years.
I might note that when this same system is used to distribute platform-independent software, that this would be the location of the actual software being distributed.
I propose building the multi-dimensional plotting software on the models of Forth and Post Script. This will be easy to build in the stack-oriented layer of my Universal Computer Oriented Language.
compression schemes
There are huge advantages to compressing the message. Shorter messages are easier to preserve.
Therefore, one or more compression schemes may be included in the tools area of the message.
astronomical data
The final portion of the message is the actual astronomical data.
If this message scheme is used for distributing self-playing media (music, movies, books, etc.), then this is the location of the media data.
I propose using relational methods for storing and retrieving the astronomical data.
conclusion
I would like to actually build the entire system described above, but unfortunately I am likely to be dead soon.
I am therefore trying to get enough of my idea out on the internet for others to understand and build this after I am dead.
- integer counting
- prime numbers
- message
contact
If you find this interesting and want to contact me, write to Milo, PO Box 5237, Balboa Island, California, 92662, USA.
Names and logos of various OSs are trademarks of their respective owners.