SCOUG Logo


Next Meeting: Sat, TBD
Meeting Directions


Be a Member
Join SCOUG

Navigation:


Help with Searching

20 Most Recent Documents
Search Archives
Index by date, title, author, category.


Features:

Mr. Know-It-All
Ink
Download!










SCOUG:

Home

Email Lists

SIGs (Internet, General Interest, Programming, Network, more..)

Online Chats

Business

Past Presentations

Credits

Submissions

Contact SCOUG

Copyright SCOUG



warp expowest
Pictures from Sept. 1999

The views expressed in articles on this site are those of their authors.

warptech
SCOUG was there!


Copyright 1998-2024, 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.

The Southern California OS/2 User Group
USA

SCOUG-Programming Mailing List Archives

Return to [ 22 | October | 2006 ]

>> Next Message >>


Date: Sun, 22 Oct 2006 12:42:43 -0700
From: "Lynn H. Maxson" <lmaxson@pacbell.net >
Reply-To: scoug-programming@scoug.com
To: "SCOUG Programming SIG" <scoug-programming@scoug.com >
Subject: SCOUG-Programming: The language end goal

Content Type: text/plain

I found the discussions in yesterday's (Saturday, October 21,
2006) SCOUG meeting interesting. I think they deserve a larger
audience, one represented by this mailing list. I would hope
more of the discussions there would appear here.

We have in our programming SIG portion of the meeting
introduced PM programming under the excellent tutelage of
Bob Blair. At this point we should have enough introduction
to allow us to begin useful work while at the sametime
exploring individual paths more deeply into the subject.

I brought up the fact that the Intel Pentium language
reference manual offers the three "imperative"
generations--actual, symbolic assembly, and HLL--in the
description of each instruction. That implies that a
substitutable, one-to-one equivalency exists among the forms.
Thus you should in a "suitable" HLL have no need for any
other language.

The Intel example simply adds to the two APL examples of an
HLL description of a machine instruction set. The first
example Iverson offered in his "A Programming Language" in
1952 and the second in the IBM Systems Journal in 1964 for the
System/360.

Again with a "suitable" HLL language capable of "specifying"
a machine instruction set no need exists for going outside that
language to achieve anything possible with that instruction
set. As a matter of historical fact Burroughs once considered
requiring the use of APL as the specification language across
both hardware and software development.

Basically we have two machine architectures in place today,
CISC and RISC. A "suitable" HLL language should allow an
equivalency between the set of instructions of a RISC
equivalent to a single one of the CISC. That would indicate
that we can have three levels, two machine-dependent (RISC
and CISC) and one machine-independent (logical), with at
least one-to-one equivalents in a single HLL.

In truth we may have more than one way to skin the cat in
translating lower level to a higher: RISC to CISC or RISC/CISC
to logical. While that introduces a choice based on
performance or storage, an issue of optimization, it doesn't
the change the underlying fact of equivalency.

Nor does it change the fact that in the "real" world a given
RISC instance may not have a given CISC equivalence or that
either may not have an equivalence for the possible
"expressive" capability of a "suitable" HLL. That in no way
diminishes the "suitable" HLL's ability to provide the logical
translation, i.e. transition, from level to level for the
equivalencies which do exist.

Whether we begin with a RISC or CISC we have logical
equivalency in a HLL between a machine-dependent level and
the lowest logical level. In turn all higher logical levels, i.e.
assemblies, must eventually decompose into a lowest logical
level form.

In manufacturing terms the RISC or CISC machine-dependent
level has (at least) a one-to-one correspondent with the
lowest logical level. Thus the lowest logical level represents
the "raw material" from which we derive all higher assembly
levels. A higher level assembly may reference a lower level
one, but eventually all assemblies decompose into one with
only "raw materials", i.e. no sub-assemblies, present.

With this in mind why not settle on a single specification
language that encompasses all programming language
generations (first, second, third, and fourth), all instances of
such languages, as well as all current (and future) computer
architectures? To begin with and not after some 30+ years of
arduous ah hoc discovery?

Any such language has to have a syntax. I propose that of
PL/I for two reasons, simplicity and consistency. Every
program element in PL/I is a statement. Every statement ends
in a semi-colon. No exceptions.

Any such language has to have referents (data). It has to
include all data types (elements) as well as data aggregates
(structures, arrays, and lists). Any such language has to have
references, expressions using data. Those expressions should
include all possible operators. Those operators should accept
either data elements or aggregates or combinations thereof.
Finally they should have strong typing, the match between an
operator and data, with default and programmer-defined
conversions when a typing mismatch occurs.

We will discover that it needs to do more, but these set the
basic bar for acceptance. We have three legacy programming
languages which together offer more than all other
programming languages combined: APL, LISP, and PL/I. PL/I
for syntax, data types (elements), data aggregates
(structures, arrays), element/aggregate operators, exception
conditions, comprehensive i-o support (record (sequential,
indexed, direct) and stream (data-, list-, and edit-directed)).
APL for an expanded set of element/aggregate operators.
And LISP for the list aggregate.

Thus of the three PL/I has the least number of additions
necessary to replace the other two in terms of functionality.
Plus the addition of a "native" list aggregate which may have
zero, one, or more unit instances allows the addition of the
fourth generation "assertion" to the first three generations'
"assignment" expression, upgrading this "enhanced" PL/I to a
full fourth-generation language.

The characteristic of a "universal" specification language,
basically our goal, includes the ability to specify itself. That
ability includes that to extend itself. We have such a
universal specification language: formal logic. We need to
incorporate it into a usable form for programming.

SL/I.

=====================================================

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".

=====================================================


>> Next Message >>

Return to [ 22 | October | 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.