SCOUG-Programming Mailing List Archives
Return to [ 15 |
May |
2008 ]
157
This is a multi-part message in MIME format.
------=_NextPart_000_00B8_01C8B6A4.6AE78A30
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Having just upgraded my FileStar to the latest version, I don't have to =
attend a meeting in which the speaker may or may not show up. For =
several reasons I will not attend this month's meeting. I have not had =
the time to devote to preparing material and presentation for the =
Programming SIG. I have resuscitated my "old" IBM ThinkPad 760XD to use =
in this endeavor. It charged up to 100%. Everything seems to be =
working. I've ordered a wireless connector to ease file transfers and =
downloads.
As it already has APL and PL/I loaded, I will add the Forth package as =
well as an OS/2 version of LISP. I also have the DOS-based Trilogy. =
Perhaps I will add Prolog. That says while we will focus on a detailed =
understanding of Forth as a TIL and certainly gain a working knowledge =
of assembly language, we can explore some other subjects along the way.
I did want to address again Greg's demand about BNF in SL/I. Whether we =
call it the Backus-Normal or Backus-Naur Form Backus, the "father" of =
Fortran, had to have a means of defining the language syntax for which =
Fortran seemed ill-suited. Defining syntax has taken on a number of =
forms or variations since then from that of LEX to that of the syntax =
diagrams IBM uses in its LRMs.
While the LEX statements may not look like C, it uses a C language =
program to produce C output. In fact all parsers basically derive from =
the same process. If we can write a parser, that which confirms the =
syntax of a source language, in the same source language, then its =
capability includes self-defining. If we can do it in C or PL/I, which =
we can, then certainly we can do it in SL/I.
The tricky part for any language syntax lies in its support of =
recursion, where the thing we define we use in the definition. That =
comes straight out of manufacturing bills-of-material (BOM) where we =
have two basic entities, raw material and assemblies. While we cannot =
decompose a raw material, we define an assembly as something composed of =
raw materials or other assemblies. In this manner we define an assembly =
recursively.
Software adds two caveats to this. Software will allow an assembly to =
invoke itself: true recursion. Software will also allow co-routines to =
exist where routine A will invoke B which in turn will invoke A and so =
on. As in recursion the invocation reaches some finite depth and then =
stepwise returns to the invoker until reaching the level of the initial =
invoker.
In the normal manufacturing process this produces a "loop", a =
non-allowed instance. Normally we protect the process by the =
establishment of "low-level" codes which get checked during any =
invocation of an assembly. For those of us embarrassed by writing =
unwanted loops in programs you get a sense of the responsibility which =
goes with the greater flexibility.
------=_NextPart_000_00B8_01C8B6A4.6AE78A30
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
charset=3Diso-8859-1">
Having just upgraded my FileStar to the latest =
version, I=20
don't have to attend a meeting in which the speaker may or may not =
show=20
up. For several reasons I will not attend this month's =
meeting. I=20
have not had the time to devote to preparing material and =
presentation for=20
the Programming SIG. I have resuscitated my "old" IBM =
ThinkPad 760XD=20
to use in this endeavor. It charged up to 100%. Everything =
seems to=20
be working. I've ordered a wireless connector to ease file =
transfers and=20
downloads.
As it already has APL and PL/I loaded, I will add =
the Forth=20
package as well as an OS/2 version of LISP. I also have the =
DOS-based=20
Trilogy. Perhaps I will add Prolog. That says while we will =
focus on=20
a detailed understanding of Forth as a TIL and certainly gain a working=20
knowledge of assembly language, we can explore some other subjects =
along=20
the way.
I did want to address again Greg's demand about BNF =
in=20
SL/I. Whether we call it the Backus-Normal or Backus-Naur Form =
Backus, the=20
"father" of Fortran, had to have a means of defining the language syntax =
for=20
which Fortran seemed ill-suited. Defining syntax has taken on a =
number of=20
forms or variations since then from that of LEX to that of the syntax =
diagrams=20
IBM uses in its LRMs.
While the LEX statements may not look like C, it =
uses a C=20
language program to produce C output. In fact all parsers =
basically=20
derive from the same process. If we can write a parser, =
that=20
which confirms the syntax of a source language, in the same source =
language,=20
then its capability includes self-defining. If we can do it in C =
or PL/I,=20
which we can, then certainly we can do it in SL/I.
The tricky part for any language syntax lies in its =
support of=20
recursion, where the thing we define we use in the definition. =
That comes=20
straight out of manufacturing bills-of-material (BOM) where we have two =
basic=20
entities, raw material and assemblies. While we cannot decompose a =
raw=20
material, we define an assembly as something composed of raw materials =
or other=20
assemblies. In this manner we define an assembly =
recursively.
Software adds two caveats to this. Software =
will allow=20
an assembly to invoke itself: true recursion. Software will also =
allow=20
co-routines to exist where routine A will invoke B which in turn =
will=20
invoke A and so on. As in recursion the invocation reaches some =
finite=20
depth and then stepwise returns to the invoker until reaching the level =
of the=20
initial invoker.
In the normal manufacturing process this produces a =
"loop", a=20
non-allowed instance. Normally we protect the process by the =
establishment=20
of "low-level" codes which get checked during any invocation of an=20
assembly. For those of us embarrassed by writing unwanted =
loops in=20
programs you get a sense of the responsibility which goes with the =
greater=20
flexibility.
------=_NextPart_000_00B8_01C8B6A4.6AE78A30--
=====================================================
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".
=====================================================
Return to [ 15 |
May |
2008 ]
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.
|