comp.lang.ada
 help / color / mirror / Atom feed
From: Peter Amey <peter.amey@praxis-cs.co.uk>
Subject: Re: Using Ada (or SPARK) in Ada-unaware environment
Date: Thu, 19 Jan 2006 10:21:35 +0000
Date: 2006-01-19T10:21:35+00:00	[thread overview]
Message-ID: <4397hgF1mckguU1@individual.net> (raw)
In-Reply-To: <dqnkoj$pb4$1@sunnews.cern.ch>



Maciej Sobczak wrote:
> Hi,
> 
> Imagine a control system (to be developed) which needs to interact with 
> some devices. Those devices are supplied with C drivers and libraries.
> 
> What is the recommended practice for developing this control system in 
> Ada (or SPARK)? I basically see two options for this:
> 
[snip]

I think I would probably go for a third option!  Use Ada's ability to 
interface to other languages to write an Ada boundary layer that 
interfaces to the C device drivers and provides a better and more 
abstract interface upwards to the rest of the program.  Then write the 
main control program using the new, Ada interfaces.

This mixed approach retains the beenfits of your option 1 by maximising 
the amount of Ada.  It also maintains the advantages of your option 2 
because it is still possible to test in a synthetic environment by 
providing stubs for the Ada interface layer.

Finally, it gives a degree of portability and maintainability because a 
chnage of low level device can be accommodated by rewriting the Ada 
boundary layer rather than the core application.

regards

Peter




  parent reply	other threads:[~2006-01-19 10:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-19  9:05 Using Ada (or SPARK) in Ada-unaware environment Maciej Sobczak
2006-01-19 10:16 ` Niklas Holsti
2006-01-19 10:21 ` Peter Amey [this message]
2006-01-19 20:05   ` Jeffrey R. Carter
2006-01-20  5:08   ` tmoran
2006-01-19 15:00 ` Steve
2006-01-19 15:45   ` Maciej Sobczak
2006-01-19 20:26     ` Simon Wright
2006-01-20  0:50 ` John
replies disabled

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