[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

To Annie Ok re: Structured PMing



> As high level languages go, xpl's problem is that it's
> unstructured. Even GW-BASIC can be structured de facto (I did so
> instinctively before I learned C); not so, xpl. I suppose SU is intended for
> the purpose and v4 memory manipulation must ease the situation, but SUs are
> weak and I'm conditioned by v3 to go to extremes to avoid sacrificing memory
> to variables that aren't absolutely required. The high level language I know
> best, C, has a goto statement that programmers learn early *never* to use.
> It's only to break out of a situation so uncommon as to be nigh unthinkable.
> Structuring eliminates the need, and xpl is immensely untidy because GL ...
> LBs are so vital. But, like xpl, C is very compact--enhanced by libraries of
> functions, and I guess the same is true of xpl as regards both EDITOR and
> user-definable functions. Being able to manipulate xyWrite with C is an
> exciting fantasy ...

If, by "structured programming" you mean nested IF...EndIf statements,
Xy4/XyWin has it. They just never announced it. How's that for
marketing prowess? A year ago I stumbled on an instance of a
nested IF..EI while idly testing IFENDIF.PM (part of REORGaNIZe)
on a factory .DLG file, so I asked XyQuest:

------------
06-08-94 00:41:29
XPL QUERY: NESTED CONDITIONALS
Dear Sysop:

...In XY4.DLG, at frame {{5,DelDEST.TMP}}, there's an interesting
instance of an  statement nested *within* another
 statement.
In other words:

...

Is that legal? More important, does it work?...
------------

Turned out that they'd added it apparently casually in response
to an OEM request. Carl or I (forget who) tested nesting to 100 (or maybe it was
1000) embedded levels, and EDITOR was still evaluating correctly.

As for other structuring principles, look at REORGaNIZe when you have time.
It contains tools that tackle this (very palpable) problem, try
to discipline it, and move toward structure. An option in
IFENDIF.PM even displays your PMs with structural indentation,
like a real programming editor (except the display is static
rather than dynamic, i.e. its just offers a structured snapshot
of your code at any given stage of development-- but mighty
handy, for lack of anything else like this -- I mean, if you
don't have a code editor that dynamically displays the structure,
then you're almost compelled to use LaBels to some degree,
because it's too hard to keep track of your location inside the
structure absent visual cues that refresh constantly). With
RENUMBERing and RELABELing, you impose some order, it's tidier...

I have a little PM that offers a structured view when you hit a
key. It's like there's expanded mode, and draft mode, and
structured mode... I'll post it here if you're interested...

You should give Xy4 a test drive. It's significantly easier to
control than III+. You don't have to load the Speedos, if(?) that's your concern.
Just don't use Graphics mode. Xy4/XyWin also have commented lines (like
REMarks) that eliminate many LaBels. You'll be pleasantly
surprised, I think. There's a learning curve, but... give it a
chance. So much more power/flexibility/ease of use!


------------
Robert J. Holmgren holmgrn@xxxxxxxx
------------