Tauchain and the mysterious Futamura projections. By Dana Edwards. Posted on Steemit. October 15, 2018.
Futamura Projections and Partial Evaluation
While we know Futamura projection is a planned and necessary feature it is also unlikely that most of us even know what Futamura projection is. In fact most people do not even fully understand what BDD can do in particular.
One video which can help for those who wish to study further is:
The distinction must be made between the topic of "Boolean Algebra" and "The Algebra of Boole". The Algebra of Boole is pertinent to the understanding of the BDD aspect of TML. Disclosure, I am not a mathematician so the information in the video above goes toward a level of detail which I am not qualified to express any expertise on. If you choose to take on the herculean task of carrying the cognitive load then please do so at your own risk. If you are really brave you can check out the work of Boole himself directly as well.
For all who have suffered through the cognitive workload presented in that video the next part of this discussion is on the capabilities and process of Futamura projection.
The formula below concisely represents exactly what partial evaluation is:
Given a program, p, static inputs SI, dynamic inputs DI, and outputs O,
We can input the description of our translator. Our translator can either be a compiler or an interpreter. What we want to describe is the process by which the defined language can translate to another language. Using an interpreter we can describe the semantics of our programming language.
How do you compile a compiler?
At the most simple and basic level we start with one input and one output. In the abstract you input your commands into the box and the box produces an output based on those commands. Most very simple software works in this way. A compiler basically takes input (source code) and produces output (a program). The source code are the acceptable commands for the compiler to produce the program with the appropriate behavior. In essence we can think of the box as nothing more than a translator device which takes one set of symbols and produces an output of another set of symbols.
Futamura offers three projections. This is a self referential process so what if instead of just one input into the box we now have two? With two inputs we can now not only send source code into the box and watch it translate into a program but now we can actually go even further and create an "interpreter". Using this second input we can now define the behavior of the box by sending a description of how you want the box to behave. In other words you can now rely on an interpreter which is distinct from a compiler in that it can only translate one statement at a time. Compilers, interpreters, and assemblers, are all translators so ultimately we have symbol manipulation at the core of all this activity.
To compile a compiler you must take an input as an interpreter and get an output as a compiler. Wikipedia provides the three projections:
1. Specializing an interpreter for given source code, yielding an executable
In other words Ohad will have to rely on TML to compile TML by using Futamura projection 3 in the list. In essence he will have to compile TML by using TML. This is the most confusing aspect to explain because it's a mode of self reference where TML essentially is used to create itself. The specializer is specialized for itself.
In my opinion this is a similar moment to when Satoshi Nakamoto mined the genesis block to prove Bitcoin could be built. If Ohad can achieve the feat of compiling TML using TML then we will know from this that TML is able to work. From this we can know at minimum that Tauchain on the most basic level is feasible. The question still remains on the question of logic of course. While in theory we know the logic is supposed to work it is also an area of theory which very few of us understand well. If it is demonstrated that this logic does in fact work as intended then we will know for certain that Tauchain is feasible.
Futamura projection is perhaps one of the most difficult parts of TML to explain conceptually due to the self referential nature. Excuse me if I made any errors in my attempt to explain it.
Boole, G. (1984). Analysis of Logic.
Something Revolutionary In the Crypto Space.
The overwhelming majority of new crypto projects out there fall into 3 main categories:
Now the trillion dollar question is this: is just having a currency or shoving a Turing Complete programming language into the blockchain to allow for smart contracts truly the best use of this decentralized innovation? Ohad Asor, creator and lead developer of Tau, does not think so.
What Is Tau?
Before I start I have to make a confession: I don't truly understand Tau. But I feel that I don't understand it slightly less than people who don't know about it at all, so I'll have a go at explaining it.
Tau is a platform that is designed to scale human collaboration and knowledge building.
Almost every significant piece of technology to date (that isn't about accelerating physical labor) has been primarily focused on the disseminating information or data. The wheel, roads, telephones, the internet are all indispensable achievements that have served to aid getting information from A to B.
But the real value isn't in the data itself, it's from the organization of the information within that data into useful knowledge. While the mere distribution of information is an important step to scaling human progress, it's also only part of the picture. The next step has typically been up to us, the human actors, to use our little brains to distill that information manually until we produce knowledge;
Tau is the first piece of serious technology that is aimed to not only automate the collection of information, but also the production of knowledge, unless you count Netflix's 'AI' recommending 'The Human Centipede' after your toddler has just watched 'A Bug's Life', as successful knowledge discovery made by a machine. Tau is about the industrialization of knowledge creation via taking some of the burden of logical reasoning from us humans and giving it to the machine.
What Can Tau Do?
Ohad has spent years researching and developing Tau. The design is centered around creating a self defining, decidable logic that is expressible under pspace (which is mathematically shown to be the most expressive any self defining and decidable language can be), that will act as a metalanguage for all programming languages defined under Tau.
A trivial example of what this can directly lead to is secure smart contracts. Smart contracts operating under Tau cannot ever give rise to something like the DAO hack - decidable programming languages means one can anticipate the entire spectrum of possible consequences of the code before running it, allowing us to avoid anything unintended. But reliable and secure smart contracts are only a tiny fraction of what the platform can truly offer.
The power of Tau's design will allow it to boast some truly wondrous features including:
Ohad has yet to fully explain how this will be achieved, but by far the most difficult part is creating the initial decidable, self defining logic system that serves as a metalanguage. Many had their doubts but yesterday Ohad announced that the first and most difficult step towards this end has been achieved. The code he has written is a working version of the Tau Meta Language which correctly computed a transitive closure graph. This is a proof of concept of the great things to come!
Now that the initial code is released, Ohad is working on a set of explanations about Tau which will outline it's features and how it'll be able to achieve them in more detail. Tau is notoriously difficult to explain, but it's definitely worth the effort to understand it. I'll keep you updated when his explanations are released.
Who Is The Lead Developer Ohad Asor?
Ohad Asor is a programmer, computer scientist, mathematician and logician from Israel. He attended university at the age of 13 and has extensive experience (30+ years) in programming and mathematics.
Most people know me as the clown on here who just writes jokes along the lines of taking his mom to the prom after his cousin rejected him or some shit, but I sat my university entrance exams at 16 and scored in the top 0.5% of Australian Tertiary Admissions Rank and took a prestigious course at a well known university. I only bring this up to show that I've had no shortage of dealings with what ordinarily would be considered to be extremely intelligent people, but Ohad is on a completely different level.
Ohad Asor is, quite frankly, the most intelligent and knowledgeable person with whom I've ever interacted. There are many geniuses and child prodigies out there, but Ohad has spent virtually every minute of his waking moments studying up until this point in his life, and he likely has an IQ of over 5 standard deviations above the mean to begin with. I have spoken to him and followed his project over the past 8 months, and my assessment and admiration of his abilities has only increased over this time period.
Here is a short video of him explaining the old design of Tau and some of its features. The information is dated as the new design is far superior, but these features remain.
English is Ohad's second language - His native language is C.
How Do I Invest In Tau?
Tau itself has no tokens but Ohad is also building Agoras, the first automated marketplace over the Tau collaborative platform. Agoras tokens are currently traded on Bittrex. It has one of the fairest distributions in the cryptosphere and Ohad is only reserving 3% of the tokens for himself. None of that 20% for the founders, 10% for the developers, 20% for the foundation, 15% for the founders' penis enlargement fund bullshit.
Agoras has made considerable gains over the last few weeks but it's total market cap is still under 100 million at the time of writing, which, to me, represents an incredible opportunity for something potentially revolutionary. If we woke up tomorrow without Bitcoin, things would more or less continue as they did, but if we woke up tomorrow without electricity, the world would be an entirely different place. Indeed Tau aims to be the latter: a truly indispensable piece of technology, which is a status that no crypto project has yet reached.
This article isn't to be taken as investment advice any more than it is to be construed as advice on how to get out of the friend zone without resorting to chloroform. I'm not affiliated nor paid by the Tau team in any way. I have not made a single crypto recommendation in my 8 months of being here until now. I just wanted to share something that I think has immense potential to be truly revolutionary, and it also happens to be the only other crypto investment I hold other than Steem.
Feel free to ask some questions after and I'll try my best to answer them.
Special thanks to @dana-edwards and the Steemit platform for allowing me to discover this project
Tau QQ Group Number: 203884141
IRC for technical questions only, Ohad will generally reply within a day
Logo by CapitanArt
Enlaces / Links
Logo by CapitanArt
Archivos / Archives
Suggested readings to better understand the Tau ecosystem, Tau Meta Language, Tau-Chain and Agoras, and collaborate in the development of the project.
Lecturas sugeridas para entender mejor el ecosistema Tau, Tau Meta Lenguaje, Tau-Chain y Agoras, y colaborar en el desarrollo del proyecto.