SCOUG-Programming Mailing List Archives
Return to [ 04 |
March |
2003 ]
<< Previous Message <<
Content Type: text/plain
Peter Skye writes:
"... If I understand one of your arguments correctly, the
specifications become the executable and thus the
documentation is not "in the mind of the developer" but rather
an inherent part of the written program. ..."
All software developers, whether or not they care to admit it,
follow the same stages of software development:
specification, analysis, design, construction, and testing with
testing occurring throughout construction. If you have a
specification language which is also a programming language
and you write the specifications in the specification stage,
then the software as it does in logic programming provides the
necessary analysis, design, and construction, this latter which
produces the executable.
This is a specification/programming language using a formal,
i.e. restricted, syntax and logic. It differs from that which
occurs within documentation. However, a connection, an
association exists between the two. Their synchronization of
change management has always challenged any development.
Knuth sought to address one part of this with his proposal for
"literate programming". This involved a two-language
approach within a single document, one formal, one informal,
using juxtaposition overall. The truth is that you have to add
code to a compiler to cause it to skip over the documentation,
in non-literate programming the current comments embedded
within source code. The compiler wants the source code
alone in whatever order dictated by the formal language.
Most user documentation has no use for the source code, only
different forms (organizations) of the same informal language.
Thus you have the need to mix and merge in numerous forms
both sources. The question comes down to how to do this.
Some work underway suggests the use of XML, which for my
money is stupid. I have no objections to XML per se, but
do object to the maintenance problems it engenders as "the"
source. That's why I have supported a lower level source
which can be automatically supported by the software tool to
construct XML documentation for viewing, meaning its actual
source is elsewhere.
"...At least two of the shorter threads pertain to
hardware-specific code; the two I read apparently were
commands that communicated directly with drivers, such as
resetting the SCSI bus. I also noticed a thread about
splitting multi-processor machines into multiple virtual
machines (I think) but I didn't read that thread; apparently
this is done under program control. I don't recall you ever
mentioning how you believe these technical aspects should be
addressed. ..."
Not true. Unfortunately I started out in this business having to
know the logic of the hardware physically and electronically,
because whenever it broke I had to fix it. That experience
formed the basis for my statement that both hardware and
software have a 100% basis in logic.
I thought I had provided enough examples, the most recent
Volume 2, the Instruction Set Reference manual, for the
Pentium from Intel to show that an equivalent HLL set of
expressions existed for every machine instruction. That
allows us to have machine-dependent as well as
machine-independent specifications. This includes the ability
to specify as data the command string necessary as input to
an instruction to reset a SCSI controller.
The problem you have with a .exe, .dll, .sys, etc. lies in
different forms used for that function. I know that you can
write device drivers for OS/2 in C, but not without an
assembly language front-end. Unfortunately it doesn't work
for PL/I. In either case that doesn't reflect badly on C or PL/I,
but on their implementations. In short it is not a language
restrictions. Nothing dictates that you cannot indicate in the
source as a declarative option the ultimate form you desire.
Frankly that's no more than a different set of specifications in
the same language as well.
At some point you will realise that every vendor effectively
screws you with every tool, that his focus on a piece, a
segment, of the overall process keeps him from having to fit
within a much larger system of such pieces. We know from
our experience with AD/Cycle that vendors have no desire to
commit financial suicide by their cooperation consisting of
"you first, no, you first" discussion.
emx-gcc is simply a continuation of the piecemeal approach of
closed source. I don't want to blame the UNIX and now Linux
mentality for this oversight. You seem to enjoy writing
"filters" piecing together utilities into a working prototype.
You as well as many other techies abound in the joy of having
and learning 50 different utilities and mastering combining
them in different modes. I don't find it beyond my abilities,
but I do find it absolutely unattractive hordes of open source
users uncomfortable with what it takes to become
contributors.
It's not an argument that you can't do something, but one of
why do it that way. Why have an unnecessary "make"
activity due to a compiler, not language, restriction? I'm sure
if we looked not all that hard we could come up with the
same conclusion with respect to the "resource" file. So why
have all this multitude of different ways and different source
languages if clearly through using a set of different options
you render this unnecessary?
Fourth generation languages, those involved with logic
programming, do not use internal procedures. No language
requirement exclusive of a compiler restriction exists for their
use in third generation languages like C or PL/I. In fact, PL/I
offers a "package" option which allows the use of external
procedures only. So I don't make this up.
So there are things that we can do to make life easier for
those who might also want to join in. I'm not a Niklaus Wirth.
I don't want to manage or punish you with software. I want it
to make it easier for you to write and maintain it. That means
synthesizing a better system from the systems we now have.
=====================================================
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 [ 04 |
March |
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.
|