From: Thomas Locke <thomas@kenshi.dk>
Subject: Re: C getchar() functionality in Ada
Date: Tue, 17 Feb 2009 23:03:20 +0100
Date: 2009-02-17T23:03:20+01:00 [thread overview]
Message-ID: <499b3428$0$90271$14726298@news.sunsite.dk> (raw)
In-Reply-To: <499ab51b$0$30223$9b4e6d93@newsspool1.arcor-online.net>
Georg Bauhaus wrote:
> We can write the same program in Ada, of course. :-)
> Only, the Ada version is likely written without
> resorting to the C's idiomatic
> "statement-used-as-expression-in-the-loop-conditional".
>
> with Interfaces.C;
>
> procedure C_1 is
>
> use Interfaces.C;
>
> function getchar return int;
> function putchar(item: int) return int;
>
> pragma Import(C, getchar);
> pragma Import(C, putchar);
>
> EOF: constant int := -1; -- see <stdio.h>
> c, not_checked: int;
>
> begin
> loop
> c := getchar;
> exit when C = EOF;
> not_checked := putchar(c);
> end loop;
> end C_1;
Thank you for this very nice example Georg!
I've experimented a bit on it, and the result is this:
-----
with Ada.Text_IO; use Ada.Text_IO;
procedure Ito is
function getchar return Integer;
pragma Import (C, getchar);
EOF : constant Integer := -1;
C : Integer;
begin
loop
C := getchar;
exit when C = EOF;
Put (Character'Val (C));
end loop;
end Ito;
-----
Basically I've just tried to get rid of the C putchar function, and
instead use plain Put. Would the above be considered absolutely
horrible, or?
/Thomas
next prev parent reply other threads:[~2009-02-17 22:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-16 20:36 C getchar() functionality in Ada Thomas Locke
2009-02-16 21:43 ` Jeffrey R. Carter
2009-02-17 7:23 ` Thomas Locke
2009-02-17 8:16 ` Niklas Holsti
2009-02-17 13:01 ` Georg Bauhaus
2009-02-17 22:03 ` Thomas Locke [this message]
2009-03-03 8:57 ` David Thompson
2009-02-17 20:48 ` Jeffrey R. Carter
2009-02-17 21:59 ` Thomas Locke
2009-02-16 23:46 ` Adam Beneschan
2009-02-17 7:19 ` Thomas Locke
2009-02-17 8:37 ` Jacob Sparre Andersen
2009-02-17 17:31 ` Keith Thompson
2009-02-17 14:57 ` Hibou57 (Yannick Duchêne)
2009-02-17 14:55 ` Hibou57 (Yannick Duchêne)
2009-02-17 10:37 ` m.collado
2009-02-17 22:07 ` Thomas Locke
2009-02-17 16:40 ` Jean-Pierre Rosen
2009-02-17 19:46 ` Thomas Locke
2009-02-17 20:24 ` Hyman Rosen
2009-02-17 23:44 ` Robert A Duff
2009-02-18 5:44 ` anon
2009-02-18 0:39 ` Adam Beneschan
2009-02-18 7:43 ` Jean-Pierre Rosen
2009-02-18 11:42 ` christoph.grein
2009-02-17 20:38 ` Jeffrey R. Carter
2009-02-18 7:46 ` Jean-Pierre Rosen
2009-02-18 10:41 ` christoph.grein
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox