[comp.lang.c] A feature I'd like to see

ron@topaz.rutgers.edu (Ron Natalie) (10/12/87)

One feature I'd like to see in C (or any other language) is the
ability to bind an arbitrary C legal name to an arbitrary machine
specific external.  For example, if I wanted the machine symbol
"foo-bar" I could do something like...

    equivelence int foo_bar "foo-bar";

-Ron

daveb@geac.UUCP (Dave Collier-Brown) (10/13/87)

In article <15522@topaz.rutgers.edu> ron@topaz.rutgers.edu (Ron Natalie) writes:
>One feature I'd like to see in C (or any other language) is the
>ability to bind an arbitrary C legal name to an arbitrary machine
>specific external.  For example, if I wanted the machine symbol
>"foo-bar" I could do something like...
>
>    equivelence int foo_bar "foo-bar";
>
>-Ron

  This was implemented in the Waterloo GCOS C compiler (for the
Honeywell-Bull DPS-8 and 6).  At the time the syntax was (approximatly)
"#equivalence foo_bar foo.bar", and later "#pragma equivalence foo_bar
foo.bar".  I believe this was in response to the standardization
effort, but I wasn't the acceptor's bug-fix man by then, so I don't
know.... 

 --dave (God's Chosen Operating System is alive and living on the Riviera) c-b
-- 
 David Collier-Brown.                 {mnetor|yetti|utgpu}!geac!daveb
 Geac Computers International Inc.,   |  Computer Science loses its
 350 Steelcase Road,Markham, Ontario, |  memory (if not its mind)
 CANADA, L3R 1B3 (416) 475-0525 x3279 |  every 6 months.

karl@haddock.ISC.COM (Karl Heuer) (10/13/87)

In article <15522@topaz.rutgers.edu> ron@topaz.rutgers.edu (Ron Natalie) writes:
>One feature I'd like to see in C (or any other language) is the ability to
>bind an arbitrary C legal name to an arbitrary machine specific external.
>    equivelence int foo_bar "foo-bar";

Sounds like a good use for "#pragma".

Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint

jagardner@orchid.UUCP (10/14/87)

In article <15522@topaz.rutgers.edu> ron@topaz.rutgers.edu (Ron Natalie) writes:
>One feature I'd like to see in C (or any other language) is the
>ability to bind an arbitrary C legal name to an arbitrary machine
>specific external.  For example, if I wanted the machine symbol
>"foo-bar" I could do something like...
>
>    equivelence int foo_bar "foo-bar";
>
>-Ron


In our compiler we have
	#pragma equate foo_bar foo-bar
which works like a #define to the parser (ie. the parser converts foo_bar
into foo-bar for the code-generator and linker). We also have
	#pragma alias foo_bar foo-bar
so that the object named by foo_bar is given another name, which can be
used by a module written in a different language (or by the C library, to
avoid conflicts with user defined routines). 

David Tanguay

john@uw-nsr.UUCP (John Sambrook) (10/14/87)

In article <15522@topaz.rutgers.edu> ron@topaz.rutgers.edu (Ron Natalie) writes:
>One feature I'd like to see in C (or any other language) is the
>ability to bind an arbitrary C legal name to an arbitrary machine
>specific external.  For example, if I wanted the machine symbol
>"foo-bar" I could do something like...
>
>    equivelence int foo_bar "foo-bar";
>
>-Ron
>

The Data General C compiler can do this.  I used it once to get ahold
of the `BLANK COMMON' area used by some Fortran routines.  If I remember
correctly a typical use might be something like:

	float p[500] $name(".BLNK.");



-- 
John Sambrook                        Internet: john@nsr.bioeng.washington.edu
University of Washington RC-05           UUCP: uw-nsr!john
Seattle, Washington  98195               Dial: (206) 548-4386