SCOUG-Programming Mailing List Archives
Return to [ 14 |
February |
2005 ]
<< Previous Message <<
>> Next Message >>
Content Type: text/plain
Peter,
"You gotta be kidding. They teach fractional arithmetic in
junior high. And those kids still do it by hand. And they get
the right answer (if they pass the course)."
Fractional arithmetic that produces a real number? To how
many places? If you come up with a result that is expressed
as a fraction with a numerator and denominator, you don't
have a real number. Period. You can take 2/3 of 6 (4), but
you can't take 2/3 of 7 (4.??????...). You can't do it in
fractional arithmetic except as 14/3. Neither you, a junior high
school student, any computer, or software can under your
terms of infinite precision. You can't do infinity. Maybe you're
not clear on the concept.
"We are talking about data types, something which your
programming language doesn't explore."
A programming language or a specification language doesn't
explore, it represents. If there is something it doesn't
represent, does it have the means of doing so? Is it
extensible? Is it the extension specifiable? If so, then the
language can represent it.
"Your counter-argument is typically "well heck, just put it in
the specifications and then regenerate the compiler". Why
not put it in the compiler, or in an add-on library, to begin
with? Why regenerate the entire compiler to just handle
something like, for example, a fraction? And how are you
going to tell all your open-source cohorts which version
of the compiler to regenerate? Putting the data types into
the compiler solves that problem, too."
Do you read what you write? Do you listen to what you say?
How did it get into a compiler or an add-on library without
being specified? It didn't. It doesn't. It will not. Yesterday.
Today. Forever.
You have this hang up on data types. I checked. PL/I
supports ordinals.
Now the version thing gets interesting. Currently a compiler
has a single version associated with it. A version is a
variation. Why can't it support multiple variations? Ambiguity.
Ambiguity means having more than one result. If you don't
want more than one result (after all you may), then you did
some means of detecting it. Where better than in the
completeness proof, which detects for a given set of
conditions more than one logical path.
Why not tell you it's there? Ask you if you want to select, i.e.
specify, a particular one?
A more interesting form of ambiguity is a contradiction, where
the same set of conditions result in opposite results. Again
the completeness proof comes to bear. Two (or more) paths
from the same prior conditions.
"I accept your challenge. Here's some fractional math:
If X=A/B and Y=C/D
then X*Y = (A*C)/(B*D)"
Wow. Try that on your computer. Pick the programming
language of your choice. X, Y, A, B, C, and D are data types.
A/B and C/D are not. They are expressions involving data
(types) and operators. The same is true for X*Y and
(A*C)/(B*D).
" Is there an open source PL/I spec which we can
build upon?"
There's probably more than one. There is one that IBM
produces called SAA PL/I. Frankly I would just use the
language reference manual that comes with OS/2 PL/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".
=====================================================
<< Previous Message <<
>> Next Message >>
Return to [ 14 |
February |
2005 ]
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.
|