Carsive - Programming Language for Robots
I'm currently working on my own version of ChatGPT. To those who understand how big current LLMs, Large Language Models, are will be surprised by this. My LLM will look very different from the tools, such as ChatGPT or Grok, in ways that you cannot recognize as a user. The core of the differences are two fold:
- My LLM will be backed by a far more intelligent data structure that will allow me to utilize many orders of magnitude less data... which will also result in a robot that uses less energy.
- When my robot writes programs it will not do so by re-arranging code it has been fed from the internet. Instead it will be programmed at its core with its own programming language.
Essentially, current implementations of LLMs primary mode of becoming smarter is to become bigger. More data, more neurons, more training time, more graphics cards, etc. They do this to be "as general" as possible. However, the result is that they just do very few things well.
Anyway, I digress. Item 2 is what this post is about. A source of up to date documentation on my own personal robotic programming language. The primary tool that will allow me to create an AI that is cheaper to run, more reliable, and solves real world problems with a thoughtful step by step process.
Carsive Introduction
Following are the basic operators and explanation of how the Carsive programming language works along with some basic postulates that are helpful when attempting to prove things (write programs).
Basic Definitions
Let's start with the basics of how the language works. Let's look at your basic hello world program. Note that the steps are ordered.
- You - Your self persona. Just an uppercase Y is acceptable.
- Hello - An action you can take to greet others.
- {You} -> ( ) -> (Hello) - You don't know what to do so you say hello.
In this simple statement we have a lot going on.
- You - Personas should always be introduced before used.
- Hello - An available action. (Declaring these upfront is not necessary if you add comments.)
- {You} - Brackets represent information. In this case the information that represents ourself.
- -> - An operator that represents a decision being made, an action that results from the information, or an evolution of the information at hand.
- (Hello) - Parentheses represent that in this case your information led to you taking an action. In this case saying hello!
A more complicated multi line version of the same application could be this:
- You = Y - Declare a person and a shorthand for it.
- {Y} -> () - Given your current information you don't know what to do.
- () -> (Hello) - When you don't know what to do say hello.
The two programs accomplish the same thing. One makes a few assumptions about the various transitions. Both are perfectly valid. Though, if you combine too many postulates/axioms in one place your programs will get hard to follow and may not have the effect on Artificial Intelligence behaviors you expect. In general, prefer verbosity unless it's really obvious... as in this case.
Axioms
For our language to be useful we need to make a few assumptions and create a few rules for it to be used properly. Here are a few things that I believe we can safely assume are true:
- You == Y - A sentient entity with a supplied shorthand.
- Your phone == p - A non-sentient entity with a shorthand.
- { Y | p } - Two entities openly sharing information. You openly share information with your phone. (Almost, truly open sharing is only open to robots.)
- { {Y} | {p} } - Two entities sharing information, but not openly. Some information may be secret. Or there are limitations to the sharing, such as a human's inability to connect its brain directly to its phone.
- { { Y } | { p } } == { {p} | {Y} } - Commutative Property.
- { { Y } :) | { p } } - You share your happy thoughts with your phone.
- { { Y :) } | { p } } - Associative Property.
- { { Y } | { p } } -> ( :) ) - Sharing thoughts with your phone makes you happy.
- { { { Y } | { p } } :) } - You have happy thoughts about sharing information with your phone.
- { Y } -> ( { Y | * } ) - Your thoughts are be coming frantic.
- { * } -> ( * ) - A very general way of expressing the above, also Chaos Theory.
Versions + Progress
This is a work in progress. In particular the list of Axioms and other proven equivalences will show up here over time as the language matures.
0.1 - Initial version with documentation and page publication. (10/16 - CM)