This is the talk page for discussing improvements to the Ada (programming language) article. This is not a forum for general discussion of the subject of the article. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
Archives: Index, 1, 2, 3 |
Ada Home
- Ada Home - Old Web Site for Ada (not maintained)
Moved comments
Moved comments here from main text. Reorganized into threads.--buzco
Ariane 5
The descrition of the Ariane 5 Failure should not be on a side discribing a programming lanuage a link to a different side should be enough. Ariane 5 Failure
US Department of Defense
Really only used anymore in US Department of Defense stuff. Oh yeah, and Ada95, the most popular Ada compiler actually translates your code to C, then compiles the C. I love that.
- Ada95 is not a compiler, it is a version of Ada, the most recent version, I believe. I am also skeptical of the idea that Ada is "really only used anymore" in the US DOD.
- Do you mean GNAT (GNU Ada Translater) when writing "Ada95"? This is no translater to C any longer but a frontend to the GNU Compiler Collection, as the C or the Java frontends are. By the way, it is _not_ used only by DOD staff and it is a highly capable language. In contrast to the popular misbelief it produces rather fast code (comparable to C).
- Make that C, C++, Forth, FORTRAN, Java, Objective C and Pascal front ends! May be others! --buzco
- The team behind Gnat used in the beginning a proprietary Ada compiler and used that to build an compiler which implemented a subset of Ada big enough to support building itself. Now the team left that proprietary compiler in the dust. After that it was a simple matter of extending that they already have while using the base to build the next more evolved version.
- Gnat until 3.11 or so (ca 1999) needed to generate a C stub for the sake of elaboration but that liability is no more !!
- GNAT never was a Ada-to-C translator !
- cfront was a c++-to-c translator !
theory books
Ada is used in a few compiler theory books because of its comprehensiveness and elegance.
primary users
Should there be a section on primary users of a language like ada and how their requirements affected the language?
Pascal
Ada has some tastes of Pascal still but not one of the bad ones. --Janet Davis
list of possible topics
(list of possible topics moved from main page) What about
- how Ada tied into formal specification languages?
- how Ada is very stongly typed
- packages in Ada
- concurrency support
- real time/embedded system support ???
- how Ada suffered from design by DOC committee/specifications and required super-fast hardware for compilation/debugging.
- ?? others
list of possible topics
I think the Steelman language requirements page would be better as part of this entry, or maybe a subpage, as it isn't really of interest except in the context of Ada. Anyone agree/disagree? --Matthew Woodcraft
More Ariane 5
I don't think the note re the Ariane 5 disaster is quite correct. As I understand it, the fault was the re-use of a part and its software, which had worked properly on the Ariane 4. However, the more powerful engines on the Ariane 5 gave a thrust/velocity/displacement that was out of the part's design range, and the part detected that fact -- correctly, according to its original design. But since it thought it had a number that failed the sanity check it went into debug mode -- again according to design -- and started dumping debug data onto the rocket's control bus. So unless my understanding of the problem is wrong, the problem was a simple failure to review a part's specifications, and nothing at all to do with the programming language or compilation switches. -- B.Bryant
- That's basically my understanding of the situation, except that 'detected that fact' is a bit strong -- it seems that the error was a CPU-level floating point trap, with no high-level-language handler. The Ada task in question didn't actually do anything useful after takeoff, so if the exception hadn't been explicitly suppressed the rocket would have been safe.
- Certainly that bit of the article could do with improvement, but some mention is probably appropriate in this article (if it were taken out someone would just add it in again). -- Matthew Woodcraft
Re: "design by DOC committee
- Ada was not "designed by committee", each version (Ada and Ada-95) had ONE designer that had final say on any feature or change to the language. Its design is far cleaner and more organized than many other languages. -- RTC 01:38 2 Jul 2003 (UTC)
- True. The DOD's choice of Ada was the result of a competitive tendering process in which Ada beat the other contenders. The only role of a committee was to decide that it was better than the other proposed languages. -- Derek Ross
Re: "required super-fast hardware for compilation/debugging"
- I added a section on the problems that the early compilers had and why. -- RTC 02:16 2 Jul 2003 (UTC)
- Hmm, I never heard about Ada 80 and I discussed with lots of people involved in early Ada including Jean Ichbiah and people from the Ada/Ed project (first validated Ada compiler). Would you mind naming exactly the documents and compilers? Also point to document about elaboration issues? Thanks. Guerby 21:20 17 Jul 2003 (UTC)
- I took the liberty of removing that entire section, not only because of Guerby's concerns, but because a quick search of the Web shows that the Ada Mandate was not signed into law until 1990, so it cannot be blamed for the quality of 1980-era compilers.
- FWIW I have also heard mention that when Ada first came out it demanded things beyond then-current compiler technology, so maybe there is still a need for a section like the one I removed. However, if anyone decides to put such a section back in, please check and document any claims of fact included in the section. - B.Bryant 23:40 21 Jul 2003 (UTC)
Silly criticisms
- Ada was widely called by many the "language of the future", but has never been used that much outside of the government. This title is often laughed at by programmers now. A major impediment to Ada's widespread adoption may have been that it is extremely verbose and the variable name conventions (requiring CamelCase and underscores to be used in the same variable name, such as This_Variable) are difficult to type, look ugly, and don't provide any information, unlike variable name conventions for just about every other language do.
I'm excising this whole paragraph. I've never heard it called the "language of the future", after reading a lot about Ada. For every language, you can find someone hyping it that looks silly in retrospect. Usage may be important, but it needs a lot more than just "never been used that much". "The variable name conventions ... are difficult to type, look ugly, and don't provide any information, unlike variable name conventions for just about every other language do" is a bit absurd; Ada has the same freeform variable names that most modern languages do, and the names I've seen in C code look much like the ones in Ada. To say that other language name conventions aren't difficult to type and don't look ugly is a very arguable case to make; BASIC and FORTRAN's short variable names, FORTRAN's type-name relations and Perl's type-name relations can be considered ugly and difficult.
I'd like to see some valid criticisms on Ada, but these are just silly. --Prosfilaes 02:19, 1 Jul 2004 (UTC)
date discrepancy?
In May of 1979, the Green proposal, designed by Jean Ichbiah at Cii Honeywell Bull, was chosen and given the name Ada
the above is chronologically the first mention of the name 'Ada' being associated with the Ada programming language. I'm quite certain that when I worked for the US Navy, and at sometime definitely prior to 1976 June 13, that I heard mention of 'the Ada Project' more than once. Do we have any info available from nonclassified source about this beingcalled the Ada Project, prior to 1979?
Reversion of Sep. 14th changes
There was nothing awful, but nothing great. Ada83 is one version of Ada, not another name for; "statically typed" is more unambigious than "strongly typed"; it was created to stop the proliferation of languages in the DoD, and improving on other languages (and not just C and C++) was a side-goal; what it was designed to do is important; and tasking is just one feature out of many.
I replaced "Ada was named after Ada, Lady Lovelace, the first computer programmer" with "Ada was named after Ada, Lady Lovelace", because the statement that she was a computer programmer directly contradicts the linked Wikipedia article (as well as other sources). My edit was reverted by UtherSRG with no explanation. I'm not trying to denigrate Ada Lovelace or the Ada language; I'm just trying to correct a factual error in a Wikipedia article. There is no historical evidence to support the common belief that she wrote programs for the Analytical Engine. -- BenRG 00:23, 12 Oct 2004 (UTC)
- Sorry Ben. I get a bit overzealous guarding some articles from anonymous editors. You are right, the article on Ada Lovelace indeed points out that she probably didn't do any programming. Take a look again at the sentence in quesiton. - UtherSRG 14:00, 12 Oct 2004 (UTC)
- Sure, I'm happy with that. -- BenRG 21:21, 18 Oct 2004 (UTC)
Ada Capitalization
I propose to change the capitalization of the identifier 'Text_Io' in the Hello World! example. In my opinion the correct letter case is 'Text_IO' and not 'Text_Io', as it's found in the Ada Reference Manual and also in the GNAT source code. Although Ada is not case sensitive this doesn't mean that capitalization isn't important. The Ada 95 Quality and Style Guide recommends to 'Use uppercase for abbreviations and acronyms', e.g. Text_IO (for Input/Output). Moreover, GNAT has an option to check attribute casing and reject any identifier that doesn't mach with its definition casing. Both forms are syntactically correct, but Text_IO is more correct and follows the language's guidelines of quality and style. Thanks -- suruena 14:13, 2004 Nov 30 (UTC)
- Right!
--Krischik 14:51, 30 Nov 2004 (UTC)
JGNAT, MGNAT and A#
I've moved JGNAT back to the compilers subsection and added MGNAT (Ada .NET compiler). I've also removind the reference to A# to the related programming languages subsection (that was put there by myself). I'm not sure whether A# is only the name of the project, or there are any extension to the Ada language (other than 'limited with', a feature that will be part of Ada 2005). Are the languages accepted by JGNAT and MGNAT a subset of Ada? (Can someone confirm this?) In that case, maybe it would be necesary to add a section called Ada dialects.
NOTE: I do not consider SPARK as an Ada dialect because it greatly changes the language with data & information flow analysis (adding formal annotations), therefore becoming another language. But if A# makes any chages (I suppose those are minor changes), I will consider it a dialect.
-- suruena 23:38, 2004 Dec 6 (UTC)
More a superset
I would consider JGNAT and MGNAT more a superset. In order to support the virtual mashines additional featuers are added: Garbage Collector - a must, interface inheritance, limited with, Object.Operation.
Yes, some of which will be part of Ada 2005 - but not all with the same syntax. And on top ObjectAda did the Java extension differently. The hope is that with Ada 2005 all both will fall in line again.
As for A# - Tricky to say since MGNAT is the only A# implementation - so mayby there are just two words for the same thing.
SPARC and "Dialect" - I see the word itself broader then you - The are german dialects which I can't understand - but I can understand SPARC programms.
But if you are a native english speaker you may find a more appropiate word.
Anyway, I think the current wording is OK for far and I would leave it as it is.
--Krischik 08:43, 7 Dec 2004 (UTC)
Embedded systems
I removed the Embedded systems cat (a language alone isn't a system) and got a note regarding Ada's intended use within that context. While I wouldn't suggest re-adding the category, I would suggest that someone incorporate that fact in the article itself to better clarify that fact.--Hooperbloob 06:46, 14 Feb 2005 (UTC)
As a software engineer involved in the development of Ada, I would like to see included in here a comparison with C and C++. Ada is one of the few programming languages certified by the DoD because we produce much more reliable programs, more resistant to hacking than other high order languages, e.g., C++. However, where speed is concerned, you really want to use either Assembly Language or C, an intermediate language. Ada still requires a lot of memory and has a high overhead. There are some compilers that allow an optimized, bare-bones Ada but they need to be carefully checked. I suggest having two compilers and compiling the source code on both. You'll find different bugs each way.