From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Ada "library only" compiler ?
Date: Sat, 21 Jul 2012 16:12:04 +0300
Date: 2012-07-21T16:12:04+03:00 [thread overview]
Message-ID: <a6vo56Fj2kU1@mid.individual.net> (raw)
In-Reply-To: <olpj085ii9fpifpligh6jerghoaieiim1d@invalid.netcom.com>
On 12-07-21 02:22 , Dennis Lee Bieber wrote:
> On Sat, 21 Jul 2012 00:11:18 +0300, Niklas Holsti
> <niklas.holsti@tidorum.invalid> declaimed the following in
> comp.lang.ada:
>
>> On 12-07-20 23:05 , Patrick wrote:
>
> <snips>
>
>> But there is at least one Ada compiler (AdaMagic) that can compile Ada
>> source to C source, using C as the target language, instead of compiling
>> to machine code. Through this compiler, Ada is available on most devices.
>>
> As I recall, that is also how the first qualified Ada compiler
> worked -- the NYU/AdaEd translator converted Ada to C source code.
My understanding is that the first version of Ada/Ed was an interpreter
written in the SETL language, and a later version was an interpreter
written in C, but not a translator to C. See
http://www2.informatik.uni-stuttgart.de/iste/ps/AdaBasis/pal_1195/ada/userdocs/html/cardcat/adaed.html.
Perhaps the C implementation of Ada/Ed is close to what the OP, Patrick,
has in mind: a C program (that could be presented as a library) that can
execute Ada programs.
>>> I really hope it will be easier one day to write
>>> full implementation Ada embedded code for a larger number of devices
>>> then it is now.
>>
>> A direct Ada-to-assembler compiler is not the easier way, IMO. And an
>> Ada interpreter, even if you could write one, would be too large for
>> many devices, and too slow for many applications.
>
> The main hang-up would be creating some sort of transportable Ada
> run-time to handle the core I/O devices and tasking system. At the
> minimum, you (all of you) are talking the equivalent of a portable BIOS
> system (and look how rapidly M$ operating systems had to find ways to
> bypass said "common" BIOS).
It is well known how to make semi-portable tasking systems -- look at
all the RT kernels that support multiple processors. For Ada, the Open
Ravenscar Kernel ORK should be a good point to start from.
IMO there is no well-defined set of "core I/O devices" for embedded
systems and other kinds of "devices" such as handsets. Ok, most systems
that interact with the user have some kind of text I/O that could be
provided as Ada.Text_IO, but some have nothing else; some have only
volatile memory, while some have non-volatile storage with files and
directories, etc. I don't see a need for a BIOS, portable or not;
rather, each device would have its own set of I/O packages. I think that
is the case for GNAT on Lego Mindstorms.
If we are talking about a portable Ada interpreter (I'm not sure that we
are), it could perhaps link dynamically to the device-specific I/O
packages, as plug-ins.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2012-07-26 14:36 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-20 20:05 Ada "library only" compiler ? Patrick
2012-07-20 21:11 ` Niklas Holsti
2012-07-20 21:47 ` Ludovic Brenta
2012-07-20 22:25 ` Peter C. Chapin
2012-07-20 22:51 ` Ludovic Brenta
2012-07-21 0:32 ` Randy Brukardt
2012-07-21 12:39 ` Pascal Obry
2012-07-22 4:59 ` Shark8
2012-07-22 7:04 ` Pascal Obry
2012-07-22 10:17 ` Florian Weimer
2012-07-24 1:54 ` Randy Brukardt
2012-07-24 16:50 ` Pascal Obry
2012-07-24 18:01 ` Vasiliy Molostov
2012-07-24 21:30 ` Pascal Obry
2012-07-25 6:33 ` Vasiliy Molostov
2012-07-25 23:44 ` sbelmont700
2012-07-25 23:34 ` Randy Brukardt
2012-07-21 11:05 ` Niklas Holsti
2012-07-20 23:30 ` Patrick
2012-07-21 16:47 ` Niklas Holsti
2012-07-21 17:47 ` Patrick
2012-07-21 19:22 ` Simon Wright
2012-07-21 19:38 ` Patrick
2012-07-21 22:53 ` Brian Drummond
2012-07-22 3:25 ` Patrick
2012-07-22 17:54 ` Brian Drummond
2012-07-22 17:59 ` Brian Drummond
2012-07-22 18:44 ` Patrick
2012-07-22 21:03 ` Brian Drummond
2012-07-25 19:10 ` J-P. Rosen
[not found] ` <m2a9yrsbf5.fsf@nidhoggr.home>
[not found] ` <jui36a$hs0$1@dont-email.me>
2012-07-23 10:10 ` Simon Wright
2012-07-24 10:55 ` Brian Drummond
2012-07-22 21:25 ` Niklas Holsti
2012-07-22 22:00 ` Patrick
2012-07-22 21:18 ` Niklas Holsti
[not found] ` <olpj085ii9fpifpligh6jerghoaieiim1d@invalid.netcom.com>
2012-07-20 23:38 ` Patrick
2012-07-21 13:12 ` Niklas Holsti [this message]
2012-07-21 0:27 ` Randy Brukardt
2012-07-21 7:36 ` Dmitry A. Kazakov
2012-07-21 13:31 ` Niklas Holsti
2012-07-23 5:02 ` Miles Bader
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox