SCOUG-Programming Mailing List Archives
Return to [ 22 | 
February | 
2006 ]
 >> Next Message >>
 
 
 
Content Type:   text/plain 
We have a road map, giving us a set of stops along the way.    
For reasons almost of necessity our first stop, building a GUI   
with OS/2 Presentation Manager, will prove our most difficult   
and thus most challenging.  We have an excellent guide in Bob   
Blair.  You can look forward to including it as part of your   
comfort zone.  We will take the time necessary for that to   
occur.  Its mastery will make the remaining stops essentially   
routine.  That should lead to a successful journey.  
 
While we devote some moments to mastering Presentation   
Manager and constructing our GUI editor, the first step toward   
our final interpreter/compiler/documenter tool, we will do   
some prep work for the remaining stopovers.    
 
I also may have caught you offguard by appending   
"documenter" to our tool.  Remember we have a goal to   
increase programmer productivity.  While we have challenges   
in improving his think time, we will focus on improving his   
writing time.  We will do it in two ways, reduce the total   
written amount, what he has to write, and reduce the   
different languages he has to use.  We actually seek to   
reduce the source language to one and from it to have the   
software generate most of the documentation now done   
manually.  
 
We know it works for flowcharting, given the number of   
products offered to produce flowcharts from source code.  If a   
correlation exists between source code and some document,   
whatever source code we can deduce from the document we   
can use to produce the document.  
 
The advantage of this lies in having only one set of source   
code to maintain with any changes reflected throughout all   
documentation by software.  Thus documentation such as   
flowcharts, dataflows, structure charts, and UML will occur in   
real time as the software reflects changes in the source code.  
 
The smallest programmable unit of software is the statement.    
We perform syntax checking at the statement level.  This   
does not mean we have to wait until we have entered a   
complete statement before we do syntax checking.  We can   
do it in real time, but only at a statement level.  
 
I have made the assertion that three, third generation,    
"legacy" languages--APL, LISP, and PL/I--include everything   
and more found in all the others.  The truth or falsity of that   
assertion begins in syntax checking through an examination of   
the syntax rules of each language.    
 
As both APL and LISP execute only in interpretive mode,   
"smart" editors, those which perform syntax analysis, normally   
do not cover either of these.  Unfortunately most "smart"   
editors do not include PL/I.  These three languages do have   
syntactic rules which we need to state in order to do a   
comparison to provide a first test for the assertion.  
 
So first we will focus on providing a means of entering and   
maintaining source code, an GUI editor.  We will begin with an   
understanding of how the Watcom editor works.  That means I   
need to insure that everyone has access to a copy of its   
source code.  I will do that.  
 
I would like to end this with another look at "control   
structures", the basic building blocks of structured or   
"goto-less" programming.  All control structures have a   
common feature, one input and one output connection.  This   
essentially makes them "pluggable" units attachable end to   
end.  
 
We have three basic forms: sequence, decision, iteration.  The   
simplest sequence is a single statement, our basic   
programmable unit. We can expand this sequence with the   
addition of another statement or another control structure   
either decision or iteration.  While decision and iteration are   
statement assemblies unlike a single statement each represent   
a programmable and plugable unit again conforming overall to   
the one in, one out connection rule.  
 
Thus decision and iteration like any other assembly may   
contain control structures (sub-assemblies) or be contained in   
higher level control structure assemblies.  in every instance at   
every level each structure conforms to the one in, one out   
rule.  
 
Now you have in programming a concept of "unit testing".  In   
using a compiler the smallest acceptable unit is a procedure   
which it treats as a program.  In using an interpreter the   
smallest testable unit is a "variable" or a single statement.    
This points up a significant difference between compiled and   
interpretive code when it comes to testing.  
 
With a GUI editor/interpreter you can mark a subsection of   
your source code and test it as long the "cut" (the marked   
portion) falls on "a" control structure boundary.  Now you can   
ask to test just this section...as if the other section did not   
exist.  
 
As we are or will be using a fourth generation language proof   
engine along with predicate logic, we will have the ability to   
specify value ranges, valid and invalid, for each variable in   
the marked section.  Once specified the software will consider   
all the variables as a set and enumerate all possible   
combinations of values among the variables and pass them as   
input to our selected code.  This will tell us what worked   
(produced a "true" result) and by its absence what did not.  
 
When you expand this from the level of a single statement or   
control structure up to that of an entire procedure or   
program, you have no need to offer it up to receive additional   
testing by anyone.  You have essentially eliminated the alpha   
and beta of testing.  You have kept it within the scope of a   
single individual.  This holds truer to the purpose of open   
source, enabling the individual, than that practiced currently.  
 
So enjoy the trip.  
 
 
=====================================================  
 
To unsubscribe from this list, send an email message  
to "steward@scoug.com". In the body of the message,  
put the command "unsubscribe scoug-programming".  
 
For problems, contact the list owner at  
"postmaster@scoug.com".  
 
=====================================================  
 
  
 >> Next Message >>
Return to [ 22 | 
February | 
2006 ] 
  
  
The Southern California OS/2 User Group
 P.O. Box 26904
 Santa Ana, CA  92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group.  ALL RIGHTS 
RESERVED. 
 
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International 
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
 
 |