Sept 2019
Issue
October 2019 Issue
Collins Software's Newsletter
Nov 2019
Issue
Qualified Values:
Creating a closed world of context around a specific set of information.  The world you create can be as larger as your complete enterprise, or as small as a single bit.

A set of values which define all the boundaries which is the context one wishes to process.  A centralized text representation that imposes organization and relationships that is the minimum declaration of context needed. The context is easily adjustable to specify any domain within a system's universe.


Cast Values:
A declaration of information to be placed in context by the compiler. The purpose here is to provide an alternate approach of information handling by having complex structures automatically placed into context. The information is prepared by the compiler to handle any type of action that might be requested.
 
Full Context:
The use of nested Qualified Values and Cast Values can declare the complete purpose of complex and unrelated information. Such declarations can be external and loaded at runtime.

Processing of these structures are supported by the compiler and are used to implement logic thus reducing the work of the programmer to a minimum.

 

 


"Wisdom is intelligence in context." -- Raheel Farooq

"When there is no news, we will give it to you with the same emphasis as if there were." -- David Brinkley

"Leaders set the context and create the conditions in which individuals and organizations thrive." -- Bob Anderson

"Making mental connections is our most crucial learning tool, the essence of human intelligence; to forge links; to go beyond the given; to see patterns, relationships, context" -- Marilyn Ferguson

"Talent hits a target no one else can hit; Genius hits a target no one else can see" -- Arthur Schopenhauer

"I don't have the time or crayons to explain myself to you." -- Anonymous

"May you live every day of your life." -- Jonathan Swift

 

Context: "The Devil you Say"

What do I know about it? In all of the digital information we know absolutely nothing.  A single bit knows nothing about itself other than its state. This is the complete story of computer science. At the hardware level there is no intelligence about the state of a bit or group of bits.  Therefore there is no context that we could apply to any piece of digital information at the hardware level.

The fact is there is no context in digital information  other than an assumed context that we imagine exists. Software is a state of declaring context for the benefit of the human, as an artificial assumption of knowledge. For any piece of information a single group of lines in a single application creates the purpose and its context. The source code of software is not context. We should not assume the intent or the true context, since much of the context is in the mind of the developer and is never revealed. Even to the developer the complete context is forgotten five minutes after the code is written.

Much of the limitation of context comes from our limited use of computers. We simply need the lights to blink. It is the "low bar syndrome" of computer science that has taken over the technology market place. There is no money in making things better.

What happens if we add context? What happens if we add complete context? What happens if we add context at the hardware level?

These are the questions that "Jane" wishes to answer.  The hard questions that we have turned into a religion of faith that the masses assume exists will be delivered to us by the gods of technology.


Compiler Name Spaces:
The standard scope of common compilers help to define the set of information available, and defines a mixture of contexts that define the programming environment. This is a somewhat an art getting something close to clean context in which to work. We currently program names which must be interpreted to their true meaning.

Context is useless without understanding. I recommend that we program in more explicit context. One where there is no misrepresentation of knowledge. To be very explicit on the purpose, accountability and reliability of information in all of our software systems. This means that if we say something like "date of manufacture" then we program that.

Hardware Context:
We have no hardware context. All context is assumed to be contained in external locations, some in source code, but mostly in documentation.

So what kind of context would be beneficial at the hardware level? The first most obvious is the context related to numbers:

  • Is this group of bits a number
  • How many bits
  • Is it signed
  • What type of number it it
  • perform operations (add, subtract, multiply, divide, shift, compare, move)

Next is the context related to characters:

  • Is this group of bits a character
  • How many bits
  • What are the characteristics (color, style,...)
  • What language
  • Perform operations (compare, move)

Software Context:
Given a set of facts, what information can be derived. This is the function of software, its context is the information we know about those facts. Most of our software development effort goes into maintaining what I have defined as hardware context, which is the scope of operations that can be applied to any piece of information. By moving 90% of our effort to the hardware level, we can begin to create more complex software context. Which is to maintain a name space which ties every term together and the related set of actions that can be applied to them.

When every term is in context, then every action that can be applied is known. At this point our software effort is complete.  We are done... we have programmed every piece of software that will ever exist....

Author: Clif Collins

http://CollinsSoftware.com
Houston, Texas
October 1, 2019

email: c1@CollinsSoftware.com