My homepage | My math page | My math news | Donate for the research
We are to develop software for 21 Century Math MethodTM (21MMTM).
This software will be simultaneously licensed under GPL and under (new) BSD License to allow its not only non-commercial but also commercial use. A more restrictive licensing of the base of all future mathematics would be a moral crime (except of the case if one would decide to stop the development of science of the mankind for a good reason, but this in not the case).
This planned software should have the following features:
automatic student);
Additionally this software is to be accompanied with a big database of mathematical knowledge.
This software is to take simultaneously the functions similar to the following existing softwares:
We are to eventually surpass these softwares.
I plan to implement it in Ada95 programming language.
For simplicity we will use a little different data structure for expressing formulas, than in the current version of the article (5 May 2005). Here is simplified (without reference counting and without optimization) Ada code for formulas :
package Formulas is
--- Symbols ---
type Symbol_Type is private;
function "="(Left: Symbol_Type; Right: Symbol_Type) return Boolean;
--- Formulas and lists of formulas ---
type Formula_List_Type;
type Formula_Type is
record
Symbol : Symbol_Type;
Arguments: Formula_List_Access;
end record;
type Formula_Access is access Formula_Type;
type Formula_List_Type is
record
Formula: Formula_Access;
Next : Formula_List_Access;
end record;
type Formula_List_Access is access Formula_List_Type;
private
type Symbol_Type is new Integer;
end Formulas;
Note that we can choose either Formula_Type or Formula_List_Type
as the primary type for representing formulas. (E.g. 2+2 operation could be
either operation(2(), +, 2()) or (2(), +, 2()).
I introduced special symbol operation to be the top level
head of all formulas.)
I don't see any principal reasons to choose either of two. What is better?
You are welcomed to participate in the development of this software. You can use CVS at SourceForge project page or send patches and program fragments. Also you can use this Wiki collaboration area.
You are expected to know Ada95, however the decision to write it namely in Ada is not yet 100% final.
Please email me if you want to take part.
Today the method itself is not yet developed in details.
However the are already certain things to code now:
(2e+-a_b) would be 5 tokens:
(, 2e, +-, a_b,
). Tokens can also be whitespace-separated..tar.gz package structure,
Debian Linux package support, Windows installer.My homepage | My math page | My math news | Donate for the research