Goals
The goals of the TenDRA project are:
- To continuously produce correct code,
The most important part of a compiler is to have correct code being output.
- to ensure code correctness through various means,
One of the ways to accomplish that TenDRA continuously outputs correct code it will be defined used a formal notation, such as ACL2 or Z Notation.
- to continuously improve the performance of the compiler and resulting code, unless it would jeopardise the points above.
Having a fast compiler is very important, especially in large projects, however, speed should never sacrifice code correctness.
Philosophy
TenDRA is based on the following philosophical points:
Sun Tzu's the Art of War
For should the enemy strengthen his van, he will weaken his rear; should he strengthen his rear, he will weaken his van; should he strengthen his left, he will weaken his right; should he strengthen his right, he will weaken his left. If he sends reinforcements everywhere, he will everywhere be weak.
Do not try to tackle all problems, since some are outside of the focus area. If trying to focus on too many different aspects you weaken the strengths you had. Knowing the limits of what you are and are not good at keeps it strong and useful. So carefully weigh each and every decision you have to take, asking yourself “does this feature help the overal goal we have set out or would it hamper reaching that goal?”.
Zen buddhism
Trying to understand is like trying to see through muddy water. Be still and allow the mud to settle.
Before trying to solve a problem make sure you understand the problem first. Too often problems are viewed as a black box, whereas when you split it up into its individual components the problem often becomes as clear.
Remember: if you can cease all restless activity, your integral nature will appear.
Don't do anything you should not do in a particular phase. Keep things separated if they serve different goals. Create abstraction based on function and have the abstractions work together to achieve the common goal.