From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,22fbdbb6ab08eb4a X-Google-Attributes: gid103376,public From: "John Duncan" Subject: Re: Basic questions about Ada95 Date: 1999/07/30 Message-ID: <7nscak$o3h$1@usenet01.srv.cis.pitt.edu>#1/1 X-Deja-AN: 506985233 References: <933315145.641@www.remarq.com> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Organization: University of Pittsburgh X-MSMail-Priority: Normal Newsgroups: comp.lang.ada Date: 1999-07-30T00:00:00+00:00 List-Id: > 1. All the sites talk about Ada's realiability. What > specific features does Ada have that makes it reliable? Ada has language-defined static and runtime checks for many unsafe conditions, such as integer overflow, dereferencing invalid pointers, bad array indexes (fencepost issue), etc. It also is a highly typed language and the implementation tries to make the programmer ensure that data are relevant to the operation before an operation is performed. Furthermore, Ada comes with a very high-level multiprogramming paradigm and allows simpler specification of intricate conditions than other languages allow. > 2.Is the size of the executables in an acceptable range? Many people complain about this. Ada executables for application programs are often very large, taking into account all of the runtime functionality that an Ada program can access. I would imagine, though, that if someone were to "compare" the size of an Ada program to a C program, they would set the Ada implementation to "maximum bloat" and the C implementation to a minimal runtime. It's not fair, of course. But Ada does get used quite often for embedded and realtime systems. It is very much possible to restrict the runtime code to fit into a small space. > 3. Does it have garbage collection? Ada defines the language with only a new operator and no delete operator. In addition, there is a generic library subprogram called "Unchecked_Deallocation" that provides type-safe storage reclamation on demand. What this means for you: 1. Ada's specification makes it easy for GC to be implemented. 2. Ada's overwhelming use for embedded and realtime systems means that implementors can get away with never providing GC for the system. RT people generally do not like GC. > 4. Does it have any RAD development environments available? It depends what you mean by this. There are GUI builders for Ada, there are integrated development environments, there are object modeling utilities that generate Ada specifications, there are SASD case tools that produce Ada workings, there are FSM implementers for Ada, etc. It is not a RAD language like Visual Basic, though. It is not made to be supported by better code written in another language. It encourages reuse through a number of mechanisms involving type safety, package implementation hiding, a rationally-designed language that allows code to be generated for it, "tagged types" which are the Ada answer to objects, and generics. All of Ada's features are designed in a way to make the feature set orthogonal. This allows a relatively simple language to achieve a high level of flexibility.