comp.lang.ada
 help / color / mirror / Atom feed
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
       .      @       .





  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