comp.lang.ada
 help / color / mirror / Atom feed
From: "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com>
Subject: Re: RISC
Date: Fri, 16 Mar 2001 13:33:31 -0500
Date: 2001-03-16T18:33:54+00:00	[thread overview]
Message-ID: <98tmai$5q5$1@nh.pace.co.uk> (raw)
In-Reply-To: 3AB22CB2.E8A851A5@averstar.com

I know its sometimes hard to deal with rep clauses from a compiler writer's
perspective. 99.44% of the time I really don't care what the compiler does
with a record and hope that the representation chosen makes for easy
optimization. Its just that from the perspective of a developer with
concerns for interfacing to the outside world, it becomes *really* important
to be sure you get what you need. Perhaps there needs to be some kind of
compromise?

Typically, I am only interested in the representation clause on a record if
the record is going to hold data for I/O (usually a communication path) or
it represents some electronic device (registers, ports, special hardware,
etc.) So mostly, I'm going to move data into it and extract data out of it.
Some other structure that is not used for anything computational may be a
suitable answer.

For example, JOVIAL had something called a "compool" (IIRC?) that was
similar to a Fortran common block. We used to get superb control over the
layout of a compool. - making things span word boundaries, etc. It obviously
wasn't the same as a record type and didn't have to support the semantics of
an Ada record, so maybe it was easier for the compiler to support it with
strange representations? If there was a similar structure in Ada - one that
had limited use to spare the compiler grief - maybe this would suffice for
most of the uses where representations become a big deal?

type T is table
    Some_Field : Yadayadayada;    --rep controlled similar to a record.
end table ;

And the only allowed operations on a table are assignments to/from fields or
assignments to/from the whole structure. (No math or other stuff - just data
motion) Would something like this take the burden off of the compiler
writer?

I'm not sure if I'd need tagged tables or not. I know I don't mind where you
put the tag - as long as I can find out where the tag is so I can work
around it. Does the presence of a tag and class-wide operations provide a
problem? (Again assuming that all you ever have to support is assignment of
data.) I'm not sure there might not be a better way - such as through some
sort of pragma on record types - to ease the burden, but I know that I could
live with some restrictions on the records for which I want to control
representation. I just need some mechanism to guarantee I can make my memory
representation match things outside of the language.

Just an idea.....

MDC

--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/


"Tucker Taft" <stt@averstar.com> wrote in message
news:3AB22CB2.E8A851A5@averstar.com...
> This is my cue to pipe up with the Compiler Writer's Lament.
> Rep clauses are difficult to support because every special case
> makes a compiler more complicated and more buggy, and makes
> optimization harder.  So compilers really "want" to do everything
> one way if possible, and then optimize the heck out of that.
<snip>





  parent reply	other threads:[~2001-03-16 18:33 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-14 20:23 RISC chris.danx
2001-03-14 21:57 ` RISC Tucker Taft
2001-03-14 22:36   ` RISC chris.danx
2001-03-14 23:03     ` RISC Fraser Wilson
2001-03-15  1:30       ` RISC Corey Ashford
2001-03-15  9:19       ` RISC chris.danx
2001-03-15 12:37 ` RISC chris.danx
2001-03-15 13:03   ` RISC Tarjei T. Jensen
2001-03-15 18:29     ` RISC Robert A Duff
2001-03-15 14:40   ` RISC Ted Dennison
2001-03-15 14:49     ` RISC Robert A Duff
2001-03-15 17:37       ` RISC Marin David Condic
2001-03-15 18:28         ` RISC Robert A Duff
2001-03-15 19:16           ` RISC Marin David Condic
2001-03-16  8:44             ` RISC Martin Dowie
2001-03-16 14:40               ` RISC Marin David Condic
2001-03-20 10:17                 ` RISC Martin Dowie
2001-03-20 14:34                   ` RISC Marin David Condic
2001-03-20 15:45                     ` RISC Ted Dennison
2001-03-20 16:39                       ` RISC Robert A Duff
2001-03-20 18:10                       ` RISC Martin Dowie
2001-03-20 18:56                         ` RISC Ted Dennison
2001-03-22  9:16                       ` RISC - largish (code listed) Martin Dowie
2001-03-22  9:34                         ` Martin Dowie
2001-03-20 18:09                     ` RISC Martin Dowie
2001-03-20 20:00                       ` RISC Marin David Condic
2001-03-20 22:30                         ` RISC Robert A Duff
2001-03-20 22:48                           ` RISC Ted Dennison
2001-03-20 23:10                           ` RISC Marin David Condic
2001-03-21  0:18                             ` RISC Robert A Duff
2001-03-21 14:31                               ` RISC Marin David Condic
2001-03-21 16:47                                 ` RISC Ted Dennison
2001-03-21 17:36                                   ` RISC Marin David Condic
2001-03-16 15:09             ` RISC Tucker Taft
2001-03-16 17:10               ` RISC Robert A Duff
2001-03-16 19:02                 ` RISC Marin David Condic
2001-03-16 20:58                   ` RISC Robert A Duff
2001-03-19 16:17                     ` RISC Marin David Condic
2001-03-19 16:45                       ` RISC Florian Weimer
2001-03-19 17:14                         ` RISC Marin David Condic
2001-03-19 17:33                           ` RISC Florian Weimer
2001-03-21  5:57                           ` RISC Lao Xiao Hai
2001-03-16 22:19                   ` RISC Ted Dennison
2001-03-16 19:13                 ` RISC Laurent Guerby
2001-03-16 20:30                   ` RISC Robert A Duff
2001-03-16 20:51                 ` RISC Ole-Hjalmar Kristensen
2001-03-16 18:33               ` Marin David Condic [this message]
2001-03-16 20:45                 ` RISC Robert A Duff
2001-03-17  1:13                   ` RISC Randy Brukardt
2001-03-19 16:34                   ` RISC Marin David Condic
2001-03-19 17:49                     ` RISC Robert A Duff
2001-03-16 20:08 ` RISC chris.danx
2001-03-16 20:31   ` RISC Marin David Condic
2001-03-17 21:51     ` RISC Robert A Duff
2001-03-18  6:37       ` RISC Charles Hixson
2001-03-19 15:42         ` RISC Robert A Duff
2001-03-19 17:02         ` RISC Marin David Condic
2001-03-19 17:45           ` RISC Robert A Duff
2001-03-19 18:48             ` RISC Marin David Condic
2001-03-19 16:45       ` RISC Marin David Condic
2001-03-16 22:27 ` RISC chris.danx
2001-03-17  2:49   ` RISC Jeffrey Carter
2001-03-19  9:43   ` RISC Martin Dowie
2001-03-19 11:06     ` RISC chris.danx
2001-03-28 22:24     ` RISC chris.danx
2001-03-29  0:52       ` RISC Corey Ashford
2001-03-29 12:42       ` RISC John English
2001-03-22 20:11 ` RISC chris.danx
2001-03-22 20:51   ` RISC Marin David Condic
2001-03-22 21:02   ` RISC tmoran
2001-03-22 21:18     ` RISC chris.danx
2001-03-22 21:45   ` RISC Britt Snodgrass
2001-03-22 22:43     ` RISC chris.danx
2001-03-28 11:37   ` RISC chris.danx
  -- strict thread matches above, loose matches on Subject: below --
2001-03-16 23:25 RISC Beard, Frank
2001-03-17 11:39 ` RISC chris.danx
2001-03-29  3:12 RISC Beard, Frank
2001-03-29  7:28 ` RISC Martin Dowie
2001-03-29 12:38 ` RISC chris.danx
2001-03-29 19:07 ` RISC Chad R. Meiners
2001-03-29 17:52 RISC Beard, Frank
2001-03-30 17:31 RISC Kent Paul Dolan
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox