Mar 2019
April 2019 Issue
Collins Software's Newsletter
May 2019
When, Where and How:
The evolution of software will required that values will be available where we need them, when we need them, and how we need them. This is in effect programming. However the effort to provide information currently requires vast human effort, when in fact, this whole effort can be turned over to a more intelligent computer. The solutions is to provide unique solutions for each information request. The current technology provide a single solution for every case, leaving the work up to the programmer.

The current technology has three or four types of information with access performed by background functions in fixed way. These types are Integers, real numbers, and an array of integers or real numbers. Characters and Dates are an assumed use of integers. We can move these values from place to place and perform the arithmetic and boolean operations.

To extend information the system needs to know much more. Such as; it the number an integer, a character, or a date? Where is the value stored? How is the information updated? We must create a much larger information base in which to perform automatic processing on the part of an intelligent computer system.

"No one has ever been able to stop the process and evolution of technology, not even I.B.M. That is going to continue. Those who grab it and move ahead with it will determine the future in this industry." -- Eckhard Pfeiffer

"I think there is a world market for maybe five computers." -- IBM chairman, Thomas Watson, 1943

"Technology is a word that describes something that doesn’t work yet." -- Douglas Adams

"So much technology, so little talent." -- Vernor Vinge

"I am not apt to follow blindly the lead of other men" -- Charles Darwin

"The only true wisdom is in knowing you know nothing." -- Socrates

"By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest." -- Confucius


Overloading the information Base:
Using the standard information model of programming using values has its limits. To program every little thing that is known about a value is the wrong approach. I have created a much more knowledgeable value base which encompasses the entire life span of a value.

We start with numbers. Is it an Integer, a Real, a Counting Number, or a Whole Number? Next we want to know about characters; case sensitivity, sort order, use classification, font characteristics, and nationality.

Each piece of information is a nested n-dimensional value with an adjustable origin. Every value then has the same operations available, which would include sort, search, create, delete, and modify.

Overloaded operations for each value.  The transport and storage of information will be a fundamental capability of each value. The value will therefore will have a diverse accessing and name resolution schemes. The extension to the compiler to determine use of a value. If a value or function is a reference or an assignment.

The next phase of the information knowledge base is to determine the exact purpose of a reference to a value. This is divided into many aspect of information transfer. First there are the basic internal values which current compiler manage. Second there is a whole range of external values which are segmented into application specific reference modes. Third; there are values referenced as functions which each have unique characteristics and special access methods. The design is to place each piece of information into its own unique access method with the best possible solution handled by the system.  This is to be handled using overloaded operators and context sensitive access methodology.

Cell Entry Points:

assignment, delete, insert, search, exists, add, subtract, multiply, divide, exp, modulo, increment, decrement, less then, greater then, equal, not equal, left then or equal, greater then or equal, or, and, not, shift left, shift right, logical and, logical or, get, set, type of, next, siblings, children, not exist, range, validate, convert units, count.


Cell Information Types:
Characters, Integer, Real, Counting Number, Whole Number, Rational Number, Complex Number, Date, Year, Time, Duration, Qualified Value, Function, Property, Precision.

Value operators: get, set, exists, type

Unary Operators: increment, decrement, negate, validate

Arithmetic Operators: add, subtract, divide, multiply, modulus, shift

Logical Operators: less then, greater than, equal

Boolean Operators: And, Or, Not,  exclusive Or

Access Methods: Direct, Indirect, Binary, Text

Each value type has a unique set of operator functions associated directly through the compiler.

Current Addressing Schemes

Variable names, dotted subfields, bracket subfield, bracket index, function name parentheses.

Extended Addressing Schemes:

indirect reference, bracket index pattern,  bracket insertion reference,  brace command, double dotted parameters, dotted function entry point reference, keyword reference, non-assignment reference, content reference.


Author: Clif Collins
Houston, Texas
April 1, 2019