comp.lang.ada
 help / color / mirror / Atom feed
From: James Rogers <jimmaureenrogers@worldnet.att.net>
Subject: Re: Ada Microkernel?
Date: Sun, 03 Jun 2001 01:09:22 GMT
Date: 2001-06-03T01:09:22+00:00	[thread overview]
Message-ID: <3B198ED7.6FA8F8F7@worldnet.att.net> (raw)
In-Reply-To: 3B195D98.C220C407@engineer.com

"B. Douglas Hilton" wrote:
> 
> Ok, here is the oskit "hello" kernel. Any ideas how to convert this
> to Ada?
> 
> #include <stdio.h>
> #include <oskit/clientos.h>
> #include <oskit/startup.h>
> #include <oskit/version.h>
> 
> int main()
> {
> #ifndef KNIT
>         oskit_clientos_init();
> #endif
> #ifdef  GPROF
>         start_fs_bmod();
>         start_gprof();
> #endif
>         oskit_print_version();
>         printf("Hello, World\n");
>         return 0;
> }
> 

The first rule to learn is that Ada should be written as Ada and
C should be written as C. 

Clearly, any standard Ada version would not use a preprocessor.

The C preprocessor conditionals provide for conditional compilation
of the C sources. The Ada way to achieve the same goal is to
provide several versions of the entry point procedure for the 
program, each one specifying its own set of dependencies.

Each of the include files in the C version will require a
corresponding Ada package. The Ada package corresponding to stdio.h
is clearly Ada.Text_Io. Each of the other included files must
be rewritten in Ada.

One version of the Ada entry point procedure might look like the
following:

with Oskit.ClientOs;
with OsKit.Startup;
with OsKit.Version;
with Ada.Text_Io;

procedure HelloKernel is
begin
   OsKit.ClientOs.Init;
   OsKit.Startup.FsBmod;
   OsKit.Startup.Gprof;
   OsKit.Version.Print;
   Ada.Text_Io.Put_Line("Hello World!");
end HelloKernel;

Jim Rogers
Colorado Springs, Colorado USA



  reply	other threads:[~2001-06-03  1:09 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-02  1:09 Ada Microkernel? B. Douglas Hilton
2001-06-02  2:11 ` DuckE
2001-06-02  2:25 ` Gerhard Häring
2001-06-02  2:41 ` Ted Dennison
2001-06-02  5:09   ` Dale Stanbrough
2001-06-02 21:31   ` B. Douglas Hilton
2001-06-02 23:21     ` chris.danx
2001-06-02 11:07 ` chris.danx
2001-06-02 20:30   ` McDoobie
2001-06-02 21:20     ` B. Douglas Hilton
2001-06-02 21:41       ` B. Douglas Hilton
2001-06-03  1:09         ` James Rogers [this message]
2001-06-02 23:00       ` chris.danx
2001-06-03  5:31         ` B. Douglas Hilton
2001-06-03 11:45           ` chris.danx
2001-06-03 22:54             ` Didier Utheza
2001-06-03 23:23               ` Florian Weimer
2001-06-04 14:37       ` Ted Dennison
2001-06-04 11:52     ` Chris Campbell
2001-06-09 23:54       ` McDoobie
2001-06-10  1:16         ` Chris Campbell
2001-06-10  7:13           ` Gerhard Häring
2001-06-10 12:14             ` Samuel Tardieu
2001-06-10 17:00             ` chris.danx
2001-06-11 20:54               ` chris.danx
2001-06-11 20:58                 ` chris.danx
2001-06-11 22:30                   ` tmoran
2001-06-11 22:35                     ` chris.danx
2001-06-11 23:24                   ` Robert A Duff
2001-06-12 20:57                   ` Randy Brukardt
2001-06-11 21:38                 ` Ted Dennison
2001-06-11 21:44                   ` chris.danx
2001-06-12  3:09                     ` DuckE
2001-06-12 10:39                       ` Jeff Creem
2001-06-11 23:22                 ` Robert A Duff
2001-06-12  9:58                   ` chris.danx
2001-06-12 17:27                     ` tmoran
2001-06-13 10:31                     ` Colin Paul Gloster
2001-06-23 14:58                     ` Stefan Skoglund
2001-06-24  0:22                       ` B. Douglas Hilton
2001-06-28  8:30                       ` Fr�d�ric BOYER
2001-06-28  9:50                         ` M. A. Alves
2001-06-28 14:21                           ` Ted Dennison
2001-06-28 14:39                             ` Wes Groleau
2001-06-28 15:01                             ` Marin David Condic
2001-06-28 17:45                               ` Tarjei Tj�stheim Jensen
2001-06-28 19:03                                 ` Marin David Condic
2001-06-28 19:15                                   ` Marin David Condic
2001-06-28 21:52                                     ` Ted Dennison
2001-06-29 13:16                                       ` Marin David Condic
2001-06-29 14:59                                         ` Ted Dennison
2001-06-29 15:22                                           ` Marin David Condic
2001-06-29 18:21                                             ` Ted Dennison
2001-07-02 13:50                                               ` Marin David Condic
2001-07-02 16:57                                                 ` OPERA
2001-06-29  4:37                                     ` Brian Catlin
2001-06-29 13:18                                       ` Marin David Condic
2001-06-29 15:09                                       ` Ted Dennison
2001-06-29  2:45                               ` Gerhard Häring
2001-06-29  2:32                             ` Gerhard Häring
2001-06-28 10:55                         ` chris.danx
2001-06-28 17:55                         ` Tarjei Tj�stheim Jensen
2001-06-29 10:29                           ` Fr�d�ric BOYER
2001-07-02  7:13                             ` Tarjei T. Jensen
2001-06-29 14:26                           ` Ted Dennison
2001-07-02  7:11                             ` Tarjei T. Jensen
2001-07-02 13:25                               ` Ted Dennison
2001-07-05 21:37                                 ` Tarjei Tj�stheim Jensen
2001-07-07 23:22                             ` Stefan Skoglund
2001-07-09 13:51                               ` Ted Dennison
2001-06-11 14:53           ` Ted Dennison
  -- strict thread matches above, loose matches on Subject: below --
2001-07-03 18:05 Michael Erdmann
2001-07-03 18:20 ` Ted Dennison
replies disabled

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