comp.lang.ada
 help / color / mirror / Atom feed
From: mfb@mbunix.mitre.org (Michael F Brenner)
Subject: Re: Ada - State of the art tools... lacking
Date: 1997/12/29
Date: 1997-12-29T00:00:00+00:00	[thread overview]
Message-ID: <688998$avn@top.mitre.org> (raw)
In-Reply-To: 34A74195.46994669@srv.net


   > ... although Ada is by far the best language for developing large 
   > and complex systems for multiple platforms do so is FAR FROM 
   > AUTOMATIC.  Things to watch out for are compiler/platform 
   > specific pragmas, representation clauses (legal boundries and
   > element sizes), and various and sundry semantic interpretation 
   > differences.

If anyone is making a list of things to watch out for, the following
have bitten me this year: 

(1) differences in system.storage_size,

(2) differences in ordinary operating system functions such as
    renaming files, getting directory lists, getting the current
    tick of the clock, accessing virtual versus absolute memory,
    how to set the environmental variables, how to spawn an
    Ada program as a separate operating system process, etc.

(3) differences in the way you address different disk drives and
    specifically the lack of ability to use URLs to address 
    different disk drives the way IE and Netscape and Mosaic do,

(4) differences in the way you access the exact unparsed command line
    from which the user invoked yourself,

(5) differences in the way you convert a machine address into
    an integer type,
   
(6) differences in the way interrupts are handled: how to enable or
    disable interrupts, how to read or set interrupt vectors,  
    how to go into supervisor (root, protected, etc.) mode,
    how to do a callback, how to put a wrapper around a function
    that will be called by an interrupt handler, how to chain
    interrupts, how to attach an Ada interrupt handler to an
    interrupt number, how to restore the previous interrupt 
    handler, how to tickle a port,

(7) differences in the way you extract bytes from integers, 
    for example, if you wish to get the third byte (the 
    byte next to the high-order byte) of a four-byte integer,

(8) differences in the way assertions are implemented as a 
    procedure or an optional pragma,

(9) differences in whether code is generated for unchecked
    conversion in each given case (i.e. when code is generated
    the procedure has to be rewritten a different way to 
    avoid making the extra copy of large data structures),

(10) whether things exist like long_float,

(11) gross differences in the way stream_io works on various 
    current implementations of gnat with regard to whether 
    extra carriage returns or line feeds are generated, 
    how to determine end of a binary file, how to connect
    to pipelines in DOS and Unix, and how to use the built-in
    random access in stream_io to actually do random access
    on your piped input file.

(12) whether one can link a package or a procedure in a package
     as the main program versus just being able to link a
     library level procedure as a main program,

(13) availability of the annexes.

Mike Brenner mikeb@mitre.org 





  reply	other threads:[~1997-12-29  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <01bd102d$fcfbb910$652da8c0@steved_home>
1997-12-24  0:00 ` Ada - State of the art tools... lacking Robert Dewar
     [not found] ` <01bd108a$12194860$baeb649b@freeman>
1997-12-24  0:00   ` Robert Dewar
1997-12-27  0:00     ` Steved
1997-12-28  0:00       ` Paul Whittington
1997-12-29  0:00         ` Michael F Brenner [this message]
1997-12-30  0:00         ` Jean-Pierre Rosen
1997-12-31  0:00           ` Paul Whittington
1997-12-24  0:00   ` Jon S Anthony
replies disabled

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