The development of software is the human understanding of the
relationship between the code and reality. A number is only a number
with no relationship to reality. To validate code absolutely, a
complete understanding must be derived or assumed to a level that you
accept as true.
The understanding of units requires the "what" and
"when". A = 34 miles/hr of an eagle in normal flight.
Not as simple as it looks. The First type is the unit conversion within
a unit class, such as time, minutes to seconds, which is to apply a
scale factor for conversion.
Second type is algebraic simplification, feet * feet = feet2.
For more complex units will require an array of unit and exponent
solving: 1/meter *
meter2 * 1/second * hour
Third type of conversion requires a function such as Fahrenheit to
Fourth type is solving unit conversions in different unit types,
power * electromechanical:
amps = √ power / ohms
Fifth type is user defined units. Number of pencils in a box, boxes
per carton, cartons per crate, crates per railcar.
Along with unit conversion, is validation of attributes, such as the
weight of a crate of pencils cannot weight less than the sum of the
weight of all the cartons plus the weight of the pallet.
All of these can be done by the human, but could also be done just as
easy by the compiler, without any human involvement.
"We all die. The goal isn't to live forever, the goal is to create
something that will." -- Chuck Palahniuk
"There is no abstract art. You must always start with something.
Afterward you can remove all traces of reality." -- Pablo Picasso
"To generalize is to be an idiot." -- William Blake
"I cannot teach anybody anything. I can only make them think"
"An expert is a person who has made all the mistakes that can be
made in a very narrow field."
-- Niels Bohr
"The superior man understands what is right; the
inferior man understands what will sell." -- Confucius
"Politics is supposed to be the second oldest profession. I have come to
realize that it bears a very close resemblance to the first." --
Word Problems: |
Programming using only your voice. With full access to Jane's logic,
which is access to all knowledge then application writing is possible
using descriptive terms.
Units conversion is a word problem. We can
specify it in mathematical terms "A = 3 feet/s * 4 hours" or as a word
problem: "distance = A train traveling 10 miles and hour how far will it
travel in 240 minutes";
Extending units and word problems beyond the realm of mathematics we
can describe all software development issues. Form Management,
Accounting systems, Flight control, self driving cars, any and all
applications can be utilized fully.
Readability and changeability are the main attributes of a word problem.
Programming in the traditional sense is completely void of either of
Compiling from a word problem to a set of qualified nested value
structures from a set of terms, phrases and sentence. This can only be
accomplished when we have fully qualified descriptions of persons,
places and things. A word problem is the declaration of the equations
needed and the values used to solve a problem. By extending the compiler
to do this work at compile time, it can program the run-time code
to implement the execution. I believe that 100% of every application can
be coded in this way. Especially if we get the compiler to do all those
things that we already know how to do.
It is context that a word problem is stating. It is context that is
missing from traditional programming. By programming for human
readability, this can then be used to write applications by the compiler
in the fewest possible words.
Word Problem Equations:
Power, Torque, Thermodynamics, Vectors, Acceleration, angular velocity:
many types of units that if we know what we have, and what we want, put
it in a word problem and have the compiler generate the proper solution.
A = amps from 100 watts and 45 ohms;
Hopefully we can get to a point where we can, from context, derive
the expression without having to be explicit in our request. So if we
have a problem like a block down an incline, that the coefficient of
friction, if needed, will be assumed and or requested by the compiler,
or better yet be derived from previous context (oak block of a certain
size, down a steel ramp)
The issue is to implement word problems in the compiler is a way that
no documentation is required. To make it obvious, flexible, and
extendable by the user. So we can add things like: patient, medicine,
and accounting units and equations to the compiler. So we might apply a
speed-of-payment coefficient to our customers.