May 2019
June 2019 Issue
Collins Software's Newsletter
A Marriage of the Editor to the Compiler:
"We are gathered here today to witness the joining of Mr. Compiler to Miss Editor in marriage. Through their time together, they have come to realize that their personal dreams, hopes, and aspirations are more attainable and more meaningful through their combined effort and mutual support."

Each member of this union has special gifts, yet one cannot grow without the other. By joining together they will be remade into something greater than the sum of their individual parts.

By increasing the capabilities of the editor by having a greater vocabulary will magnify the capabilities of the compiler. Otherwise; each will be left on their own, as deaf mutes, each will stagnate, leaving humans to only dream of the unachievable possibilities. By joining these two entities into a single purpose application design, we will move toward a more perfect union. The editor gives humans a way to communicates to the compiler, and the compiler then interrupts this language into actions that the computer performs. 

The existing programming character set is only a very small representation of human written technology. Once we have the complete set of known characters, then we will have the ability to write compilers that can read our human documents. There are many languages that we use to communicate, all of which have a long history of development. Math equation representation is just one of many which first appeared 3500 BC. We should also look at Music (1400 BC), Dance, Logic, Flow chart, and many others types of symbology, some of them have been in development for hundreds of years or more.

Having existing, formulized, and permanent editor and compiler capabilities means that software development efforts become stable and require far less work.

"By all means marry; if you get a good wife, you’ll become happy; if you get a bad one, you’ll become a philosopher." -- Socrates

"There is one thing more exasperating than a wife who can cook and won't, and that's a wife who can't cook and will." -- Robert Frost

"My wife and I were happy for twenty years. Then we met." -- Rodney Dangerfield

"When a man opens a car door for his wife, it's either a new car or a new wife." -- Prince Philip

"The power of mathematics is often to change one thing into another, to change geometry into language." -- Marcus du Sautoy

"The limits of my language means the limits of my world." -- Ludwig Wittgenstein


The Editor:
The compiler is limited to the world of 1960 when the first editors were created to handle the technology of character display and printing. This was a world of limited memory to display black and white characters on a 640 by 480 TV screen.  Our programming syntax is limited to the character sets of the 1873 keyboard.  The syntax of our computer languages is a translation of math equations into the synthetic syntax of FORTRAN (FORmula TRANslation).

The concept of characters representation in our languages is a late comer. The concept of text was introduced in FORTRAN-77 by 1980. The concept of text in programming has yet to be well defined, It remains somewhat of a disaster to the programming community.

Programming editors still remain deaf to math expressions, sound, pictures, graphics, diagrams, dates, fractions, data transfer and data storage. The concept of a programming language having an awareness of a compiler is completely foreign, this is a catch-22 situation. The editor cannot represent a technology, therefore the compiler cannot process it, and since the compiler does not have these capabilities, the editors ignores them, a circular void in our technology.

Increasing the knowledge base of the editor and the compiler, the design is to optimize the benefits for software development:

  1. Editable characters
  2. Transportable character representation
  3. Permanent font types (color, style, ...)
  4. Relative Placement (sub/superscripts, ...)
  5. Extended Character Sets
  6. Hard Control Characters
  7. Soft Control Characters

Each change is to improve the intelligence of the compiler, and to give more functionality to the editor.

Editor functionality extensions:

  1. Natural Math Equation Editing
  2. Diagram Editing
  3. Dynamic character fonts
  4. Forms and Dialogs Editing
  5. Images and Videos Editing
  6. All Character Characteristics
  7. Extended search by characteristic (blue, italic, underline, power of 2, subscript k...)

The editor needs to support the compiler, not to live in a world of 1873 where we are now. Be brave, move forward where the work of humans is not limited by the vision of one software developer who's only concern was an application to send a teletype message.



The characters we type are the means to communicate. Our programming is based on a 26 character alphabet, 10 numeric characters, and 32 symbolic characters. We have extended this with an artificial distinction of the case (upper or lower) of the alphabetic character set. We are limited to the assigned numeric value of the character to their predefined pictorial representation (fonts). 

So we start looking into expanding the current technology. We now ask the fundamental questions about the existing numeric representation, the character set organization, and on the limitations imposed by proprietary font and display capabilities of characters.

We first look at the numeric representation of characters.  There is no purpose to the assignment that will help in application development. The numeric assignments were all based on application specific requirements at the time that they were assigned, sometime in the early 1950. The scope of character encoding schemes (i.e. ISO8859-1 Latin-1) further complicate an already vague numbering scheme, based on other vague font indexing schemes. In other words character numbering schemes require external documentation, which means that the editor and the compiler have no inherent knowledge of characters, only that a number somehow represents a character (or not).

Next we look at the limitations for the creation of characters by the application. We are restricted access to fonts, the display logic, and to their display characteristics. As a developer this immediately limits my application design options, which means a closed path for future technologies.

Next the organization of the numbers of the character representations. These is no real order to the characters that help in the development of applications.

Finally we look at the characteristics of the characters themselves. In programming we have only one characteristic that is available, which is what we can gleam from the numeric assignment that was used. In the case of the 26 alphabetic character, whether it represent an upper or lower case character. In the world of humans this generally has very little significance.

Author: Clif Collins
Houston, Texas
June 1, 2019