[comp.lang.ada] What is the origin of `pragma'

fmoore@skvax1.csc.ti.com (Freeman Moore [214]995-1901) (06/29/89)

I know all about pragmas and such, but a simple question...

   Why was the word `pragma' selected?

Any ideas or pointers to references would be appreciated.

Freeman Moore
Texas Instruments
fmoore@skvax1.csc.ti.com

simpson@trwarcadia.uucp (Scott Simpson) (07/04/89)

In article <8906291247.AA19739@ti.com> fmoore@skvax1.csc.ti.com (Freeman Moore [214]995-1901) writes:
>   Why was the word `pragma' selected?

Pragma is the Greek word for action.  I believe it says this in the rationale.
	Scott Simpson
	TRW Space and Defense Sector
	usc!trwarcadia!simpson  	(UUCP)
	trwarcadia!simpson@usc.edu	(Internet)

rcd@ico.ISC.COM (Dick Dunn) (07/06/89)

In article <8906291247.AA19739@ti.com>, fmoore@skvax1.csc.ti.com (Freeman Moore [214]995-1901) writes:

>    Why was the word `pragma' selected?
> 
> Any ideas or pointers to references would be appreciated.

It may or may not have any bearing, but ALGOL 68 has a construct called a
"pragmat" with very similar usage.  I recall seeing it in at least one
other language of comparably ancient vintage, but I can't lay hands on the
information, and I can't recall whether it was pragma or pragmat.  ALGOL 68
uses a symbol "pr" as the delimiter.
-- 
Dick Dunn     rcd@ico.isc.com    uucp: {ncar,nbires}!ico!rcd     (303)449-2870
   ...Simpler is better.

billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) (07/06/89)

From rcd@ico.ISC.COM (Dick Dunn):
> fmoore@skvax1.csc.ti.com (Freeman Moore [214]995-1901) writes:
>>    Why was the word `pragma' selected?
> ALGOL 68 has a construct called a "pragmat" with very similar usage. 

    Nevertheless, it's not a very intuitively appealing keyword;
    most people learning Ada don't say "Ah, yes, from the Latin..."
    (or whatever)... rather, it's a counter-intuitive thing to be
    memorized.

    We simply want to give some directive to the compiler, so probably 
    something along the lines of "Compiler:" would be a better choice! 


    Bill Wolfe, wtwolfe@hubcap.clemson.edu

uri@arnor.UUCP (Uri Blumenthal) (07/07/89)

From article <15896@vail.ICO.ISC.COM>, by rcd@ico.ISC.COM (Dick Dunn):
> In article <8906291247.AA19739@ti.com>, fmoore@skvax1.csc.ti.com (Freeman Moore [214]995-1901) writes:
> 
>>    Why was the word `pragma' selected?
>> 
> It may or may not have any bearing, but ALGOL 68 has a construct called a
> "pragmat" with very similar usage.  I recall seeing it in at least one

Yeah. I remember it's "pragma". Ain't too sure,though.

Uri.

dik@cwi.nl (Dik T. Winter) (07/07/89)

In article <15896@vail.ICO.ISC.COM> rcd@ico.ISC.COM (Dick Dunn) writes:
 > It may or may not have any bearing, but ALGOL 68 has a construct called a
 > "pragmat" with very similar usage.  I recall seeing it in at least one
 > other language of comparably ancient vintage, but I can't lay hands on the
 > information, and I can't recall whether it was pragma or pragmat.  ALGOL 68
 > uses a symbol "pr" as the delimiter.
 > -- 
This is true, but it was not in the original language.  The "Report on the
Algorithmic Language Algol 68" (1969) does not mention pragmats, the
revised report (printed 1976, but already published earlier) does.
I think it got into the language in the 1972-1974 timeframe.
-- 
dik t. winter, cwi, amsterdam, nederland
INTERNET   : dik@cwi.nl
BITNET/EARN: dik@mcvax

rcd@ico.ISC.COM (Dick Dunn) (07/07/89)

In article <5937@hubcap.clemson.edu>, billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) writes:
> >>    Why was the word `pragma' selected?
> > ALGOL 68 has a construct called a "pragmat" with very similar usage. 
>     Nevertheless, it's not a very intuitively appealing keyword;
>     most people learning Ada don't say "Ah, yes, from the Latin..."

Do most people learning Ada not know the (English) word "pragmatic"?!?

(That ought to be good for a flame or two...:-)

>     (or whatever)... rather, it's a counter-intuitive thing to be
>     memorized.

What is counter-intuitive?  At most it's non-intuitive to someone who
doesn't know the word, but certainly a remark directed to the compiler,
concerning not some abstract matter, but a concrete, practical point,
is a "pragmatic remark."  Seems intuitive to me.
-- 
Dick Dunn     rcd@ico.isc.com    uucp: {ncar,nbires}!ico!rcd     (303)449-2870
   ...Simpler is better.

pcg@thor.cs.aber.ac.uk (Piercarlo Grandi) (07/09/89)

In article <8254@boring.cwi.nl> dik@cwi.nl (Dik T. Winter) writes:


   In article <15896@vail.ICO.ISC.COM> rcd@ico.ISC.COM (Dick Dunn) writes:
    > It may or may not have any bearing, but ALGOL 68 has a construct called a
    > "pragmat" with very similar usage.  I recall seeing it in at least one
    > other language of comparably ancient vintage, but I can't lay hands on the
    > information, and I can't recall whether it was pragma or pragmat.  ALGOL 68
    > uses a symbol "pr" as the delimiter.
    > -- 
   This is true, but it was not in the original language.  The "Report on the
   Algorithmic Language Algol 68" (1969) does not mention pragmats, the
   revised report (printed 1976, but already published earlier) does.
   I think it got into the language in the 1972-1974 timeframe.

Apart from the curiosity value of knowing where from pragma comes, let me
add:

Algol 68 does have a "compiler directive" construct, very well thought out; it
can be delimited either by ".pragma .... .pragma" or ".pr ..... .pr" (using
dot stropping).

Another language, a kind of predecessor of Ada, LIS, copied it over (do I
remember correctly?) from Algol68. In any case pragma, either via LIS or
directly, comes quite clearly to Ada from Algol68, as a few other features.

	NOTE: do you know LIS (Langage Implementation Sisteme, Level 64)
	and its influence on the design of Ada? Do you deal in Ada design
	issues? If you answered NO and YES, you might be amused by having
	a look at LIS, and then shelve the manual next to the ones for Jovial
	and Neliac :-> ...

The most interesting point is that in Algol68 pragmas were supposed to deal
with "pragmatics", which is different from "semantics", in other words no
pragmas were allowed to give a program a different meaning than that
attributed by the language definition. This is a *very* wise concept,
especially as pragmas are supposed to be compiler dependent.  I for one would
find the notion of a pragma that is not semantically neutral a contradiction
in terms... (a non semantically neutral implementation definable language
construct should be called a pandora, not a pragma :->).

Now, now, what is the situation for Ada? (before answering, have a look at
pragma shared, and at VMS Ada for comparison...).

--
Piercarlo "Peter" Grandi           | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcvax!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) (07/09/89)

From article <15907@vail.ICO.ISC.COM>, by rcd@ico.ISC.COM (Dick Dunn):
>> >>    Why was the word `pragma' selected?
>> > ALGOL 68 has a construct called a "pragmat" with very similar usage. 
>>     Nevertheless, it's not a very intuitively appealing keyword;
>>     most people learning Ada don't say "Ah, yes, from the Latin..."
>>     (or whatever)... rather, it's a counter-intuitive thing to be
>>     memorized.
> 
> What is counter-intuitive?  At most it's non-intuitive to someone who
> doesn't know the word, but certainly a remark directed to the compiler,
> concerning not some abstract matter, but a concrete, practical point,
> is a "pragmatic remark."  Seems intuitive to me.

    But not to people first learning the language!!

    You can verify this by giving this test to non-Ada programmers:

    ----------------------------------------------------------
    The following is a list of keywords in one or more unknown 
    programming languages.  Please write down your best guess
    as to the purpose of each keyword listed.

       1) pragma

       2) Compiler:

    ----------------------------------------------------------

    The responses will be, respectively,

       1) Don't know.

       2) This looks like a compiler directive.

    ----------------------------------------------------------

    Programming languages would come much more naturally if this
    sort of testing for user-friendliness were performed more often.

    Overall, Ada did a fine job of selecting user-friendly keywords, 
    but pragma is a case in which it just didn't happen.  Closer
    attention to this factor would reduce psychological barriers to
    learning Ada, thus promoting its widespread use and acceptance.  


    Bill Wolfe, wtwolfe@hubcap.clemson.edu

falis@ajpo.sei.cmu.edu (Edward Falis) (07/14/89)

Regarding LIS, it may be of interest that the 'Green' team that designed 
Ada also designed LIS. - Ed FAlis, Alsys Inc.