comp.lang.ada
 help / color / mirror / Atom feed
From: Bernd.Specht@gmx.com (Bernd Specht)
Subject: Re: Porting from Modula-2 to Ada
Date: Fri, 18 Oct 2002 09:45:34 +0000 (UTC)
Date: 2002-10-18T09:45:34+00:00	[thread overview]
Message-ID: <Xns92AB77A045543BerndSpechtgmxcom@139.25.208.17> (raw)
In-Reply-To: 3DAFC542.152C0EE0@lml.ls.fi.upm.es

Manuel Collado <m.collado@lml.ls.fi.upm.es> wrote in news:3DAFC542.152C0EE0
@lml.ls.fi.upm.es:

> We are porting some legacy Modula-2/C code to Ada. The code uses
> low-level facilities from Modula-2 and C. We would like to port it to
> clean Ada, without interfacing to C code. In addition we would like to
> keep the old interface unchanged (if possible).
> 
> Al present we are looking for ways to manage memory and binary files as
> arrays of bytes. The trouble is that Modula-2 allows the use of relaxed
> ARRAY OF BYTE subprogram formal parameters, that are compatible with
> actual parameters of any type. Example:
> 
>    PROCEDURE Xxx( raw: ARRAY OF BYTE );
>       ...
>    BEGIN
>       FOR  k := 0 TO HIGH(raw) DO
>          ... raw[k] ....
>       END
>    END Xxx;
> 
>    Num: INTEGER;
>    ...
>       Xxx( Num );
>    ...
> 
> 
> So far, my only porting scheme is to replace ARRAY OF BYTE parameters by
> the pair (address, size), as follows:
> 
>    procedure Xxx (Raw_Address: System.Address; Raw_Size: Integer) ...
> 
>    Num: Integer;
>    ...
>       Xxx (Num'Address, Num'Size);
>    ...
> 
> But this requires recoding every call to the procedure. Is there another
> way to pass raw data without having to recode every call?
> 
> Thanks.


Would it be an idea not to substitute the procedure by _one_ other procedure  
but with a set of overloaded procedures?

procedure Xxx (raw : Integer_Field) is ...
procedure Xxx (raw : Character_Field) is ...
procedure Xxx (raw : Float_Field) is ...

where 
type Integer_Field is array (Integer range <>) of Integer;
type Character_Field is array (Integer range <>) of Character;
type Float_Field is array (Integer range <>) of Float;





  reply	other threads:[~2002-10-18  9:45 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-18  8:24 Porting from Modula-2 to Ada Manuel Collado
2002-10-18  9:45 ` Bernd Specht [this message]
2002-10-18 10:33   ` Lutz Donnerhacke
2002-10-18 10:55     ` Jeffrey Creem
2002-10-18 11:21       ` Lutz Donnerhacke
2002-10-18 22:01         ` Jeffrey Creem
2002-10-18 21:29     ` Jeffrey Carter
2002-10-18 21:39       ` Jeffrey Carter
2002-10-18 11:20 ` Nicolas Cailín Paul Gloster
2002-10-18 15:14   ` Pat Rogers
2002-10-24 14:51     ` Colin Paul Gloster
2002-10-25  3:43       ` Dennis Lee Bieber
2003-02-04 14:12       ` Colin Paul Gloster
2003-02-09  6:07         ` Robert I. Eachus
2002-10-19 13:30 ` SteveD
2002-10-22  7:48   ` Manuel Collado
2002-10-22  7:55 ` Manuel Collado
2002-10-22 18:56   ` Jeffrey Carter
2002-10-23  9:08     ` Manuel Collado
replies disabled

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