Domain: gnat.com
Stories and comments across the archive that link to gnat.com.
Comments · 32
-
but then companies like....Adacore (http://www.gnat.com/) who constantly invent write new code, and make it publicly available wouldn't exist.
Does a single counter example invalidate his argument?
-
I've paid $25K for "free" software
Ok..Not exactly me..but my company. We have used products from AdaCore Technologies. http://www.gnat.com/.A couple of years back, the cost for several supported seats for both a self and a cross compiler (for embedded work) with a few small add ons was something like $25k. We'd gladly pay it again. The product was great. The support was great and we had access to the source code which is a real help in an embedded environment .
-
Re:ADA
The reason we do this is largely because Ada compilers tend to be expensive, buggy or huge
Wrong, wrong, and wrong.
GNAT, the GNU Ada compiler, is Free (as in speech and beer), commercially supported, and has been integrated into mainstream GCC development. Get it. Use it. Love it.
Users of debian can simply "apt-get install gnat" (and also think about getting gnat-gps gnat-doc ada-mode and ada-reference). Other distros probably have similar packages, Others can check GNUAda.org, which has packages for Linux, NetBSD, DOS, and OS/2.
I studied CS at NYU and took a programming languages class with Robert Dewar (main author of GNAT and president of AdaCore, the company behind GNAT, among other things (SPITBOL, anyone?)). One of the best classes I've taken at college. -
Re:ADA
The reason we do this is largely because Ada compilers tend to be expensive, buggy or huge
Wrong, wrong, and wrong.
GNAT, the GNU Ada compiler, is Free (as in speech and beer), commercially supported, and has been integrated into mainstream GCC development. Get it. Use it. Love it.
Users of debian can simply "apt-get install gnat" (and also think about getting gnat-gps gnat-doc ada-mode and ada-reference). Other distros probably have similar packages, Others can check GNUAda.org, which has packages for Linux, NetBSD, DOS, and OS/2.
I studied CS at NYU and took a programming languages class with Robert Dewar (main author of GNAT and president of AdaCore, the company behind GNAT, among other things (SPITBOL, anyone?)). One of the best classes I've taken at college. -
Re:Boo!
The GPL does prevent you from practically making the sold product different from the free one in terms of core functionality.
However, it does not prevent you from presenting and packaging the sold one differently (Ada Core Technologies does this, pretty successfully AFAIK). -
Money Money Money"The Free Software Foundation has announced [read: created] a 'Corporate Patronage [read: donation] Program' to allow companies to support [do] the work of the FSF. The members [donors] [companies with vested interests] already include IBM, HP, Ada Core Technologies and MySQL. Interested parties should contact Ravi Khanna [a fund raiser sponsored by Ada Core?]
."Its ALL about the Ben Franklins.
-
Re:Why Erlang?
Is that similar to the implementation of concurrency in Ada?
I'm not familiar with concurrency in Ada. In Erlang, processes are extremely lightweight and communicate via message passing. The processes themselves are done in the runtime, so there are no limits imposed by the OS (besides system resources, of course). With a shared heap, even the memory requirements are extremely low (compared to Java or C, for instance).As an Ada programmer I can tell you that it depends on your compiler. The Ada compiler I use GNAT uses the OS resources to map Ada tasks to threads so they are as light as system threads. The Rational Ada 83 compiler had its own thread library I believe (I don't care to go looking for it). I'm too lazy to check right now but I believe the Ada RM leaves it open to the implementation as to whether Ada tasks reflect OS based entities or not.
-
They're even funding a port of GCC... by paying Ada Core Technologies for it:
Announcement on GNAT for ia64/OpenVMS on 14Mar2002
I wanted to let people on this list know that Ada Core Technologies has signed a contract with Compaq to implement GNAT on OpenVMS for ia64. We already have three ia64 machines in house, and are busy working on the initial step of bootstrapping the current version of GNAT on ia64.
Robert Dewar
This is great and it's the right thing to do!
Laurent
-
Re:High level languagesThere's a simple solution to both the problem of hight level languages being "just a convinent ways to write C" (and I don't see why one should exclude Java here, but I don't think that this argument is valid anyway) and them being slow. Use high level languages that don't run in a C-based interpreter. Duh.
For example, try Common Lisp, Objective Caml or Ada (not that high-level, but not the worst idea if you care about security).
-
Re:Performance isn't most important
The beast most of us have sitting on our desk these days is so fast as to make language performance not such an issue.
You really think people upgrade their hardware so that lazy programmers can get away with sloppy inefficient coding? Not for me, thanks anyway.By the way, there is nothing wrong with high-level languages, au contraire. Just use those with efficient native-code compilers. (Objective C in its half-smalltalkness may be nice as well, but personally, I don't really like it.)
-
Re:Report makes no difference between OS and FS
The report also no makes no differentation between Open Source Software like FreeBSD, OpenBSD, and Apache; and Free Software which generally always refers to software under the GPL or LGPL. Like Linux, gcc, or GNATS.
A minor point here. When they mentioned "GNAT", they did not mean "GNATS". They were referring to the Gnu Ada compiler (Gnat), not to the unfortunately named Gnu bug tracking system (GNATS).
Gnat is one of many commonly used Ada compilers. It is unique in that it, along with its entire supporting tool suite, is Free Software. -
Case Study in Satellite Control
Some data about FedSat, a Scientific R&D microsatellite that's due for launch on the next H-2A from Tanegashima:
Firstly, the on-board software is in Ada-95, using the 3.13p version of GNAT as the compiler and RTEMS as the Run-time Kernel. Both Open-Source, and the 'p' in "3.13p" means public, free-as-in-beer. The on-board software was developed mostly by Software Improvements, a bunch of software professionals who are heavily into SLCMs, CMM, etc. And lo, it worketh, on-time, under-budget.
The ground station is another matter. OASIS was tried, but couldn't do all that was required. In a spectacular case of less-than-wonderful-judgement, VB on Windows was used for development. After a while, they got some software pros to work on that one too, rather than the hack'n'slash electronics engineers. Well, it partially works - enough so that a few months or years after launch, it will do most of what's wanted.
Moral: if it's important, and has to work first time, every time, do it in Ada and open source, and use the principles described in the parent article. If it's not so important, and can be fixed up afterwards, you're still better off using Ada, though Java's a good second choice. The only reason Ada's so good is that it makes it easy to adhere to good software engineering principles, such as teamwork, smart design, and open standards.
- Separate Public view and private view -> Interfaces between teams made easier
- High-level (generics, tasks etc) and low-level (address clauses) features ease design task
- Standardised - Ada-83 was standardised as Mil-Std-1815A in January 1983 and later as ISO/IEC 8652:1987, Ada-95 as ISO/IEC 8652:1995.Copies of the LRM (Language Reference Manual), style manual etc are all freely available on the web.
A.Brain, Rocket Scientist
-
I know at least one earlier
ACT is a company that creates only free software. They've been around since the late 90's, and I understand they have been in the black for years, perhaps since inception. They are a privately held company, and as far as I know, have no plans to ever do an IPO. Perhaps that's why they don't get much press (although RMS likes to use them as examples in his speeches).
-
GNAT
GNAT, an open source Ada-95 compiler, support those checks.
-
Re:Java != .NET
Java limited people to one language, a language that many coders didn't like.
Which language would that be, then? Would it be BASIC, or COBOL or ADA or Python or FORTH or PASCAL or C or PERL or FORTRAN or LISP or Scheme or Smalltalk or one of these?
In fact, surprise, surprise, there are over 200 different programming languages you can use to write Java VM programs in.
-
Re:The Navy Loves Windows NT!
Do you have any evidence that Ada increases software reliability? I've used Ada for about 5 years and I haven't seen any significant difference in reliability between Ada applications and those written in other languages such as C++.
Actually Rational (the compiler and process folks) did an exhaustive study on this. Their findings were that they had about 2x the productivity in Ada than they did in C, and 1/4th the bugs. You can read the findings yourself
(Note: before you post replies with possible reasons why their results were wrong, read the study. Just about every flaw imagineable was looked into.)
Its very tough to do such studies, so there isn't a lot of other studies around for comparison. I'm aware of a couple of other informal ones with CS students, (which were interesting, but I wouldn't bet my project on) and that's about it. Rational just happened to have the data available and the expertise to study it. But even the infomal studies I've seen give Ada the nod for reliability. The only thing that seems to come close is Java.
This makes sense when you consider that Ada is the only language that was designed from the start for use in "life-critical" applications.
Most of the Ada vendors have gone out of business so I guess Ada would be a great open source project. You aren't going to get any technical support for the compiler so you might as well have the source.
Most compiler vendors in general have gone out of business, so that really doesn't mean much. What is significant is that there are 4 (perhaps more I don't know about) Ada compiler vendors currently supporting Windows, which is more than can be said for C++ and Java.
As for Ada being a great OpenSource project you are right, but not for the reason you think. I guess you didn't realise that the Gnu Ada compiler not only exists, but is now in the official gcc baseline.
However, I've always had great support from my proprietary compiler vendors too. I'd love to see someone try to get the level of vendor support I recieve from GreenHills and Aonix from Microsoft for VC++.
ACT is actually one of the very few Free Software commercial success stories, so you are quite likely to hear about them if you ever attend an RMS talk. I've seen no less than 3 transcripts where he mentioned them or their Gnu Ada compiler in reference to a question about commercial Free Software. -
Re:No linux kernel compile, sorry(Is the Ada frontend finished yet?)
Yes, I use it here at work. I even find that some of its features are better than Rational's Ada compiler.
For info see: Ada Core Technologies
They are a private company that has done loads of work on gnat(GNU Ada compiler), and yes, the compiler is available for free, with source.
--xPhase
-
Prevention proven better than cure - and Feasible
All Software Engineers should have a look at Correctness by Construction: Better can also be Cheaper from Crosstalk the Journal of Defence Software Engineering. It contrasts the usual C approach with one using a really tight but powerful subset (SPARK) of an already pretty tight language, Ada
* SPARK code was found to have only 10 percent of the residual errors of full Ada; Ada was found to have only 10 percent of the residual errors of code written in C. This is an interesting counter to those who maintain that choice of programming language does not matter, and that critical code can be written correctly in any language : The claim may be true in principle but clearly is not commonly achieved in practice.
This isn't just an anecdote: there are documented facts. The results (for the problem domain of aircraft avionics and large systems) may not be applicable to the normal b2b and gamezware - but then again, they might. Have a look at the stuff in bold later in this post.
It's not a magic bullet : from the same article:
In December 1999 CrossTalk, David Cook provided a well-reasoned historical analysis of programming language development and considered the role languages play in the software development process. The article was valuable because it showed that programming language developments are not sufficient to ensure success; however, it would be dangerous to conclude from this that they are not necessary for success. Cook rightly identifies other issues such as requirements capture, specifications, and verification and validation (V&V) that need to be addressed.
But the real kicker, one that should cause everyone to sit up and take notice, is this:
- Code quality improved by a factor of 10 over industry norms for DO-178B Level A software.
- Productivity improved by a factor of four over previous comparable programs.
- Development costs were half that typical for non safety-critical code
- With re-use and process maturity, there was a further productivity improvement of four on the C27J airlifter program.
One more thing: the SPARK and similar RAVENSCAR ( pdf, HTML version here) subsets of Ada-95 are just that : (proper)subsets that just omit certain language constructs. Write to the profile, and the code is compileable by any Ada-95 compiler, like the downloadable Free GNU version GNAT 3.14p (though commercial users might want the latest-and-greatest non-free version 3.15a. And the ORK (Open Ravenscar Kernel) is, as the name implies, an Open Source Kernel for reliable real-time embedded systems.
Better, Cheaper, Faster, Open-Source with Free-as-in-Beer downloadable compilers. IMHO worth at least investigating, even if you decide Microsoft's latest language-du-jour is more appropriate for your situation. YMMV, and COBOL, C++, Assembler, C#, Java or even VB might be better in your case. But worth a look.
-
GNAT - the GNU Ada Translator
GNAT Pro and GNAT Pro High Integrity Edition have certainly been used as the compilers for military systems.
GNAT, as the subject line suggests, is a GPL'd piece of software: the 'Pro' part relates to the level of support offered, access to prebuilt binaries for cross environments, early access to supported builds that are otherwise only visible in CVS GCC builds etc. Those who are interested might look at Ada Core Technologies website.
-
Remember GNAT.GNAT, a gcc-based ISO compliant Ada95 compiler is the foremost example of collaboration between Free Software and the military.
The Computer Science Department of the Courant Institute of Mathematical Sciences at New York University received a contract from the Ada 9X Project Office, under the direction of Ms Christine M. Anderson, to develop a GNU/Ada system. The work was co-sponsored by ARPA and the Ada Joint Program Office.
GNAT has been validated on many platforms, by Ada Core Technologies (ACT), a company devoted to supporting users of this compiler.
The quotation was taken from http://www.adahome.com/Resources/Compilers/GNAT.ht ml.
You can get GNAT here or check the above webpage for mirrors.
Besides that, if you use Windows, you can use a free IDE, AdaGIDE, developed at the Department of Computer Science of the USAF Academy. The IDE is of course free software put under the terms of the GPL.
-
AdaAda has all these qualifications except multiple inheritance, but considering Ada's powerful generic facility, you probably won't need it. Ada is perhaps the best available language for software engineering. It is fast, high level, yet easily allows low-level bit-twiddling if need be. GNU GNAT is the without a doubt the highest quality compiler in the GNU family of compilers. It is ISO certified, and must pass over 6500 regression tests before it is shipped. Several studies have shown that projects written in Ada lead the pack in fewest defects per 1000 lines of code, besting all comers.
Here are some Ada links:
-
Not Making Money In Free SoftwareIf I understand the license situation correctly, Sleepycat makes money because others do not want to release there software as Free Software. This is slightly different from true Free Software companies such as Ada Core Technologies (ACT) which usually do not slap different licenses on public and customer versions of a software package.
In fact, Sleepycat's business model stops working if the Free Software revolution has taken place because no one would need a proprietary-compatible license for Sleepycat's software. ACT's business model continues to work because their customers still need support, and still pay for enhancements to the GNAT toolchain.
I guess Sleepycat is just an Open Source company, but not a Free Software Company.
;-) -
Re:1 quick word:
Cygnus was profitable for years before being bought by RedHat.
No, they weren't. They struggled along for ten years without ever achieving sustainable profitability. The buyout was a rescue.
ADA Core Technology seems to be profitable (they've been around forever),
How do you figure that they are profitable? You get to look at the balance sheets of this privately held company? And how do you figure they're open source? It looks like it's "source included," not open source. There are no source downloads available on their site.
Mandrakesoft was profitable except for a brief stint where they were run by some flashy US CEO.
Nope, they've never been profitable either.
Penguin has jumped back into profitability.
No, they just had big layoffs.
Tim -
Re:Another solution
[stuff about writing in Kylix]
Or look at Ada 95 next time you need to design a piece of multithreaded software. Ada has threading capabilities build into the language, and has proper array datatypes so there is no need to fiddle with pointers and worry about checking of boundaries.
Ada rights many of the wrongs of Pascal and has a strong and rich type system build in.
I am amazed that so many insist on staying away from modern languages that make it easy to find bugs at compile time. Oh well.
The GNAT compiler is GPL'ed and available for Win32 and Linux and quite a number of other platforms. -
Re:ah...
> You're comparing AmigaOS to UCSD Pascal? Congratulations, you've found a new way to be ridiculous on slashdot.
Pay attention to context, please. If you had done that, you'd know that I was refering to UCSD's p-code as a precedent to Java's byte code, which was brought up by the previous poster, rather than comparing Pascal to an operating system.
Since we're on the subject of pseudo code...
You could compile other languages to p-code, just as you can now compile other languages to byte code. IIRC, Apple had a Fortan compiler that spilled p-code which ran on the same Apple ][ interpreter that their Pascal did. Nowadays, JGNAT will compile an Ada source file and spill byte code for a Java VM. (Someone observed about a year ago that there were enormous similarities between Java and Ada "under the hood", and once the idea was out, they apparently didn't have to do much except change the back end of the compiler.)
-- -
The GNU Visual Debuggerhas support for threads, see the GVD home page.
Note that might want to have a look at the Ada 95 language, it has pretty good support for portable multi-threading (aka tasking, builtin into the language) and a very good compiler: GNAT.
Laurent
-
DoD funded GPL project: GNU Ada
Note that the DoD did require the GPL when they funded the development of the GNU Ada front-end to GCC, aka GNAT, a while ago (circa 1995).
Now GNAT is of course still free software and ACT and ACT Europe are continuing the development and offer paying support services. Up to now they released sources from time to time, but it looks like the Ada front-end sources will be included soon in the CVS GCC repository, see the discussions on the GCC mailing list.
Disclaimer: I worked for ACT, but I no longer do, and at work I'm a client of ACT support services.
-
Re:The last language designed by committee was...Excuse me, but Ada was not designed by committee. There was a large requirements gathering process, but the design of the language was by a small tightly focussed design team led by Tucker S. Taft at Intermetrics who had final say, and used it.
The Handbook of Programming Languages has to say the following:
Some have claimed that Ada was "designed by a committee". This claim is simply not true. The HOLWG [High Order Language Working Group - the working group of the DoD, lead by Whitaker, that wrote the requirements for, and oversaw the competition for the design of, the language that became Ada
Michael B. Feldman: Ada 95 in Context, in: Peter H. Salus (Ed.): Handbook of Programming Languages, Vol. I, Object-Oriented Programming Languages. MacMillian, 1998, pp. 561. /Abigail] represented the intended users of the new language. This group oversaw the design competition, but each of the four full language designs was firmly in the hands of a small team in industry. The team that won the competition consisted of Jean Ichbiah and six other members who attest to Ichbiah's strong leadership. It is true that the process was an open one, which was unprecedented in language development, and that many in the community reviewed the design and advised on its refinement, but Ada was designed by its designers.The Topaz project chose C++ instead (which is probably fine) however the reason they gave for dropping Ada off the candidate list was due to bootstrapping worries which were, in my view, unfounded now that we have GNAT (also see this). I hope they reconsider.
From a project standpoint of view, I think Ada is a very good choice. (And so would Eiffel be, IMO). However, one of the features of Perl is that Perl runs almost everywhere. GNAT is build on top of gcc, IIRC, and gcc doesn't run on all the platforms Perl runs on (the actual number of different platforms Perl runs on is unknown). Of course there are other Ada compilers, but I fear that Perl written in Ada means certain platforms will be locked out. And that is a price not everyone is willing to pay. The link you provided suggest GNAT only runs on 3 platforms, Linux, DOS, and SCO. There is also a GNAT homepage, which shows it's run on more platforms.
-- Abigail
-
Re:The last language designed by committee was...
Ada was designed by committees
Excuse me, but Ada was not designed by committee. There was a large requirements gathering process, but the design of the language was by a small tightly focussed design team led by Tucker S. Taft at Intermetrics who had final say, and used it.
For what it's worth, Larry Wall publically said that Ada might be a good choice for the Perl6 implementation language.
The Topaz project chose C++ instead (which is probably fine) however the reason they gave for dropping Ada off the candidate list was due to bootstrapping worries which were, in my view, unfounded now that we have GNAT (also see this). I hope they reconsider.
Also do not forget, it's "Ada" not "ADA". ADA is the American Dental Association, whereas Ada is a language named after Ada Byron, Countess of Lovelace, world's first programmer, thanks!
Chris Morgan
-
GNAT
Having done my undergraduate CS at NYU, the 'N' in the Gnu Nyu Ada Translator (GNAT - how many people knew that), and having studied under two of the developers of that system (their company's site) I was fortunate enough to be exposed to virtues of this language.
The Ada syntax is very similar to Pascal's, but the language is very similar to Java (especially thread support). Once you get accustomed to using the language, you notice that you can be very, very productive using it, much more than in C++. I would also say that the learning curve (minus the time to familiarize yourself with the syntax if you are coming from the C/C++ world) is pretty easy to climb, and you can be proficient at it soon.
For my compiler class, we needed to write a compiler for a (the non OO) subset of Ada95. I chose to write mine in Ada95, because we were allowed to use the GNAT lexer/parser (which was written in A95 as well). I would strongly recommend that anyone wanting to learn large scale programming or who is developing something that will be open source, should take a look at the source code. It is clearly written, well documented, easily understood, and even beautiful. It is a wonderful example of how someone should write code if the expect others to read it. It also shows just how beautiful and understandable the language is. -
Re:Parameterized types in Java
Another alternative available to allow parameterised classes is Ada95. Using the AppletMagic compiler one can make JVM compatible byte code from Ada95 source - Ada95 being an ISO standard Pascal like 3GL with built-in OOP, multi-threading, hierarchical generics (templates), namespaces, exceptions etc. The GNU Ada95 Compiler (GNAT) is expected to include a JBC backend soon - see this. Ada compilers are _so_ strict (trust me on this) that when translating Java language demos into the equivalent Ada95 for compilation with AppletMagic, the authors found some bugs that the Sun Java compiler didn't!
-
need more using software engineering language
Sigh. Too bad more aren't using a software engineering OO language since there is now such a rich choice available under the GNU license: Eiffel, Ada95, Sather (among the safest). Even Modula3, Smalltalk, and Java are worthy of consideration. Here's some URLs,
GNU Eiffel
GNU Ada95
GNU Sather