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;
next prev parent 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