Oct 2018
November 2018 Issue
Collins Software's Newsletter
Fonts and Compilers
Our fonts determine the characters that we program with. This relationship limits our ability change information technology.

Characters are indexes to the descriptions of its image representation stored in a font file. Programming is therefore limited by the permutations in logic that can be preformed from a array of integers. The character in itself does not contain any other information. The display characteristics must come from outside sources.

The font design of the characteristic of upper and lower case representations by index has forced a limitation on what can be accomplished with the existing technology. The time wasted due to this solution I estimate at 3% of all software development efforts.

To improve compilers, the font system has to change. This will relax the grip on technology at a critical junction. This done from two directions, first the display of characters is centralized, reducing the programming effort to handle a common action. Second by having more information provides knowledge that can be taken advantage by the compiler, as well as by all other applications.

Programming in five minutes:
The world of software is a large set of five minute programming efforts. You have a five minute time as you program when you know exactly the context of the statements you enter. You know thousands of details about the code, from the relationship to the lines just preceding, to the testing that is required, to all the possible reasons for failure. Use these five minute wisely.

I recommend extending the time you spend on the ten to twenty lines of code to craft them into a finished product. This is the only time you will have to perfect your product.

"The nice thing about being a celebrity is that, if you bore people, they think it's their fault." -- Henry Kissinger

"Your purpose in life is to find your purpose and give your whole heart and soul to it." -- Buddha

"Suppose you were an idiot, and suppose you were a member of Congress; but I repeat myself." -- Mark Twain

"The most interesting information comes from children, for they tell all they know and then stop." -- Mark Twain


Add Fonts to Jane. This are three main reasons for writing a font system. First, enhance the generation of characters. Second, simplify the creation of fonts. Third, change our character set.

Character Characteristics:
The character characteristics will be a part of each character. The only thing defined in the current character is the index into a font file. I will extend this to include all the other characteristics that apply to a character.

First, this can be done using  existing technologies.

Upper Case will become a characteristic of the character.

A = font index 1,  upper case bit = 1
a = font index 1,  upper case bit = 0

Here is list of the characteristic to be given to each character

  1. font index
  2. upper
  3. bold
  4. underline
  5. italic
  6. not (overhead line)
  7. color
  8. background color
  9. opacity
  10. slant
  11. stroked
  12. language
  13. type*

Compilers can extend their word classification other than just upper/lower case sensitivity, and use any of the above cases.  For example keywords are blue, bold words are functions names, underlined words are comments. We can add a "toggle upper/lower button" to our editors, it is no different than bold, italic or underline. .  We can also add a "Not button" to place a line over the character.

type* -  "A - Z" an "alphabetic language character " "0-9" a number character. Punctuation, symbol, Christmas symbol. 


Character Sets:
The first change to character sets should be to get rid of upper case characters. An "A" is and "A".

The second change is to move the control characters to the upper range of the 8 bit number. They are used less often and would give up 31 positions for an extended character set in the 7 bit numbering system.


1 - 26 now become a thru z
27 - 89  for foreign characters (63)
90 - 117 for punctuation (27)
118 - 127 now become 0 thru 9

Hard and Soft control characters should be moved to the values above 127 to make room for more language characters.  The 31 control character I might extend to better represent information technology as well as transport technology.  

Soft control characters are the visible representation of the actual 31 control (hard) characters such as line feed and tab. 

An A is an A is an A:
The character set numeric values of having only one value solves many problems. Case sensitive matches are no longer a software solution, but can be implemented at the hardware level.

Characters will now also contain not just the font index, but all their display characteristics. This permits greater selection criteria, not just upper or lower case but every other characteristic such as color, bold, slant.

Displaying the character:
The display of the character will now include all of the font's characteristics. This will reduce software development by centralizing this capability.


Author: Clif Collins

Houston, Texas
November 1, 2018

email: c1@CollinsSoftware.com