SCOUG-Programming Mailing List Archives
Return to [ 17 | 
February | 
2003 ]
<< Previous Message << 
 
 
 
Content Type:   text/plain 
Ben,  
 
"Much of this interesting exchange is beyond what I know but   
I can relate to this point.  One role I've been in is algorithm   
development which I regard as mostly distinct from   
programming. ..."  
 
You know what's absolutely odd about the distinction is that   
both are based 100% in formal logic.  Different languages,   
same formal logic.  Different symbol sets, same formal logic.    
That you can "literally translate" the Matlab expression into   
C++ bespeaks that two different means of expression, i.e.   
different languages, based on the same formal logic   
nevertheless have "logical equivalent" forms.  
 
You have an interpreter, Matlab, that cannot produce   
compiled output.  Therefore you must spend people time   
writing in two languages, when the only requirement lies in   
the choice of executable forms, which is language   
independent.  If it weren't for the fact that C++ depends upon   
choosing among incompatible class libraries, Matlab could save   
you one hell of a lot of money and time by offering compiled   
code as an option.  
 
I appreciate your input.  You don't see writing expressions for   
Matlab as programming or Matlab as a programming language.    
We differ on this as the only difference between a   
specification language and a programming language lies in   
whether or not a tool for translating it into executable code   
exists.  For that reason every programming language is a   
specification language, but not every specification language is   
a programming language.  
 
But you see Mathlab depends upon logical equivalency to   
translate the input language into the output language of the   
underlying machine.  That says it doesn't use the language it   
supports.  
 
Now you know I've proposed a specification/programming   
language, SL/I, based on using PL/I syntax, the APL symbol   
set of primitive operators, PL/I data types, PL/I and APL use   
of aggregate operands, the addition of the assertion   
statement to that of the assignment statement, and use of the   
two-stage proof engine of logic programming.  Steven may   
have difficulty accepting that prototypes of all these exist,   
but I'm hoping that others are more open minded.  
The end result is a language that not only is capable of   
specifying itself but any other language based on formal logic.    
Self-defining.  Self-extensible.  
 
"The general problem is reducing a long time series of n-point   
fluorescence spectra to a DNA sequence or   
genotype--another chemical data problem.  The possible  
variations in the raw output are so great that a regression set   
comprising several hundred cases isn't complete--new types   
of failures keep showing up."  
 
You hit upon a key point here of current methods of   
generating test data, your regression set, versus the dynamic   
generation I propose through software, that represented by   
the predicate logic used in Trilogy.  
 
When Steven talks about unit testing his unit is an entire   
program.  Yet the smallest unit is a single statement.  These   
get aggregated into control structures.  These into   
procedures.  And then these into programs.  So it is reasonable   
to ask when is a unit not a unit of unit test?  
Nothing really prevents creation of "artificial" programs of   
these smaller aggregates for "unit" testing except for the   
excessive amount of extra writing and rewriting necessary.    
You also have the problem of deciding on the design of test   
data, specifically for the "unit" under test or a more general   
form to support multiple units.  In either case these represent   
yet another source to be created and maintained.  
 
Wouldn't it be a lot simpler to dynamically define (mark) the   
unit of test to dynamically determine the variables to within   
that unit to dynamically specify their range of data values to   
dynamically enumerate all possible sets of values?  Moreover   
something for whom the dynamics of change requires only   
modification of the source language and not source test data?  
 
If Matlab were open source, the first thing I would introduce is   
the option of compiled output...in the language of the machine   
based upon the intermediary language used internally.  In that   
manner the only changes for defect correction would occur in   
the Matlab language.  In that manner you would only need   
algorithm writers engaged in the self-deception that they are   
not programming, saving the cost associated with "skilled"   
programmers.  
What you describe is the process you must endure due to the   
inadequacies of the tool set.  You endure it because you feel   
you have no other option.  I on the other hand say with open   
source you have those options if you are willing to meld them   
into an integrated process instead of a hodgepodge of   
separate processes which you must externally integrate.  
 
 
=====================================================  
 
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  
"rollin@scoug.com".  
 
=====================================================  
 
  
<< Previous Message << 
Return to [ 17 | 
February | 
2003 ] 
  
  
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.
 
    |