SCOUG-Programming Mailing List Archives
Return to [ 14 |
January |
2006 ]
<< Previous Message <<
>> Next Message >>
Content Type: text/plain
Greg, Steven,
Keep up the good work. I appreciate it when people offer
more examples of the type of software development I hope to
avoid and quite possibly eliminate. Tying into Eclipse I would
definitely not recommend personally. Before I offer my
reason(s) why I would like to inject, "Yes, Steven, I have used
the Watcom IDE."
You have to give IBM credit. It doesn't give up on its
monsters. It's earlier one came under the moniker of AD/Cycle
(Application Development/Cycle) represented by a three-tier
hierarchy.
The top tier contained the sequence of the five stages of the
SDP (Software Development Process): Specification, Analysis,
Design, Construction, and Testing. By implication the flow
from one stage to the next was seamless, i.e. through defined
interfaces.
The second tier consisted of separate horizontal line segments
representing how different vendor products overlay the SDP.
Clearly some gaps existed in which had no vendor products.
In others vendor products overlapped each other. This
emphasized a "major" client complaint that no "seamless" path
existed from input of requirements into the SDP to a finished
product on its output. The intent of AD/Cycle lay in allowing
any number of such seamless paths among the different
vendor products to occur, thus allowing the client to choose
among competitive offerings.
The third tier, also known as the data repository, was
intended to contain the set of interfaces to which the
vendor's would adapt their products to allow the desired
seamless flow. IBM assumed responsibility for the product,
originally announced for implementation in OS/2 and then later
shifted to MVS.
I've said it before. I will say it again. The vendors on realizing
the competitive impact, i.e. threat, of changing their product
interfaces to allow the seamless flow became overly
courteous to each other with a "You first, no, you first"
attitude. As a result the data repository did not come about,
AD/Cycle became perceived as a failure based on IBM's
inability to produce the data repository.
Now Eclipse represents another approach by IBM to achieve
the goals of AD/Cycle. Except this time you have a set of
APIs which vendors can use to "integrate" their products into
the underlying process. Thus the vendors can sit within the
protected walls of their proprietary products, in their own
little worlds as it were.
This has two effects. One, is increased software costs. Two,
is lower software productivity. You have product integration
at a price which we in the OS/2 community cannot afford. So,
yes, we could decide to tie into Eclipse, but we would perish
in the process.
The function of an editor is in entering, adding, deleting, and
changing source code. You can't do anything with or about
source code without engaging in this. So if you have an IDE, it
must allow this.
You can increase the function of an editor by allowing the
syntax checking of the source. You can enhance the visibility
of the results of syntax checking by using colorizing the
different syntactical units. You can further enhance the
function of a editor by doing a semantic check on the
syntactical units. You can enhance it further by generating
code based on the results of the semantic checking.
If you generate code for immediate execution, you have an
integrated interpreter. If you generate code for separate
execution, you have an integrated compiler. The only
difference lies in the type of code generation. They are
identical up to that point.
Thus you don't need more than an enhanced editor with
optional code generation. That's a fact. Every interpreter
works in this manner. Only compilers seek to separate
themselves from enhanced editors. Compilers also repeat the
syntax checking done by the editor, thus unnecessarily
duplicating effort. In fact one of the purposes of an IDE lies in
giving the appearance of a seamless fit between an editor and
a compiler. That's part of the reason why they have the "I" in
IDE.
In normal operation a difference does exist between an
interpreter and a compiler. An interpreter's smallest
executable unit is a statement. A compilers smallest
executable unit is a program which contains at least one
"external" procedure, which consists of at least two
statements, a procedure beginning and a procedure end.
In the compiler world external procedures may contain zero,
one, or more internal procedures each of which may contain
those of its own. Alternatively some programming language
implementations allow for compilation of multiple procedures,
called a "package" in PL/I, one of which must be "the"
external procedure with the remaining as "internal".
Notice here that a tree hierarchy exists with an external
procedure at its head followed by the "calling" hierarchical
sequence of the internal procedures. Note also that internal
procedures are "called", while external procedures (except
for recursion or self-calling) are not. Thus an external
procedure has a call count of zero, while an internal
procedure has a call count of one or more.
We can use this "characteristic" to allow multiple external
procedures on input. After a complete semantic check we will
have a list of procedures with a zero call count (the external
procedures), each at the head of a hierarchical list of
associated internal procedures. Thus the code generation
process can process each external process tree separately. In
doing so create separate executables as a single unit of work.
This says that with an application system of multiple programs
we can input the entire source for all of them, generating all
the executables as a single unit of work. This guarantees the
synchronization of global changes across all programs.
Note that in processing of source code only with an unlimited
mix of external and internal modules, where their only
difference lies in the call count, we have no need for linking,
thus none for a linkage editor (a separate language) or a
make or bake file (each with its separate language).
So we only have one source language to learn and maintain in
what we have covered thus far. The truth is in my proposed
approach there will never be more than one source
programming/specification language necessary. If you look at
Eclipse, you will see a separate source language for each of
the proprietary modules. So why would I ever propose
starting with Eclipse?
=====================================================
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".
=====================================================
<< Previous Message <<
>> Next Message >>
Return to [ 14 |
January |
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.
|