Subject Re: [IB-Architect] enhancement to procedure/trigger language
Author Jim Starkey
At 10:10 AM 6/8/01 +0500, Dimitry Sibiryakov wrote:
>
> Well... (It's just my sarcastic opinion, don't be hurt)
> The requirement is - to gain as full execution control as possible.
>(We are programmers more or less, aren't we?)
> The minimal language element is... "goto"! That's why "goto" is
>included in all assemblers, but not all of them have loops.
>
> Now you may throw stones at me...
>

Which is one the many reasons that we don't write in assembler
anymore.

The theory of structured (goto-less) programming is based on the
observation that most programming bugs are the result of
inconsistent state at the confluence of several control paths
(for example, one sets a local variable, the other does not).
Language design can significantly reduce this by:

1. Supporting local scope of variable declarations to isolate
state generated with a control path (encapsulation)

2. Restrict the creativity of programmers to a straightforward
top to bottom execution flow.

3. Permit compilers to undestand the control flow to detect
references to uninitialized (or potentially uninitialized
variables).

Structured programming has been the norm for software engineering
for coming one two decades, which as resulted in a huge improvement
in maintainability of code. Combine structured programming
with object encapsulation and polymorphism and productivity
takes off. The Netfrastructure engine, for example, is written
in C++, is more capable and a third the size of the Interbase
engine, server, and DSQL.


Jim Starkey