Diskussion:Ada (Programmiersprache)
Bezug zu Frau Ada
BearbeitenIn dem Artikel fehlt mir der Bezug, weshalb die Programmiersprache nach der Frau Ada benannt wurde. Was war der Grund, der Anstoß dazu? Immerhin ist die Programmiersprache Ada nicht die erste Programmiersprache. Das sollte im Artikel noch ausführlicher bearbeitet werden!
Alte Beiträge
BearbeitenVerwendungsgebiete und Firmen die Ada nutzen, siehe diese Präsentation (ab Folie 8).
So viel ich weiß ist Ada 0Y mittlerweile fertig (nämlich Ada 05) und auch das "entsprechende" Buch von John Barnes soll demnächst rauskommen...
Überhaupt wäre ein Verweis auf die Bücher von John Barnes vielleicht ganz sinnvoll?
Ada Byron, Lady Lovelace war die Assistentin von Charles Babbage. Babbage entwarf um 1820 den ersten (mechanischen) Computer - die Analytical Engine. Er konnte sie aber nicht vollenden, da ihm die nötigen Geldmittel fehlten.
--
Ich habe den Link, der angegeben wurde, wieder entfernt, da er den Kriterien für Links für ein Thema nicht genügt. Wenn noch nicht einmal ein offizieller Link für Ada dasteht, würde der angegebene Link ein falsches Bild von der Wichtigkeit der verlinkten Seite machen.
Hier der entfernte Link: Wacker Art Ada
Hier habe ich mal ein von mir geschriebenes Ada-Programm:
WITH integer_text_io, text_io; USE integer_text_io, text_io; PROCEDURE abstrackter_stack IS PACKAGE stackpack IS TYPE stack; TYPE zeiger IS ACCESS stack; TYPE stack IS RECORD inhalt : integer; vorgaenger : zeiger ; nachfolger : zeiger ; END RECORD; PROCEDURE push(wert : integer); PROCEDURE rotate; FUNCTION pop RETURN integer; FUNCTION empty RETURN boolean; END stackpack; stack_counter : integer; zahl : integer; number : integer; PACKAGE BODY IS top:zeiger:=null; PROCEDURE push(wert:integer) IS feld : zeiger; s1 : zeiger; s2 : zeiger; index : integer; BEGIN feld := NEW stack; IF stack_counter = 0 THEN top := feld; -- Wenn noch kein Feld vorhanden ist feld.vorgaenger := feld; -- muss erstmal eines eingerichtet feld.nachfolger := feld; -- werden. feld.inhalt := wert; END IF; IF stack_counter = 1 THEN feld.vorgaenger := top; -- Da bei zwei Feldern beide aneinander feld.nachfolger := top; -- haengen, braucht das zweite nur auf top.vorgaenger := feld; -- das erste und das erste nur auf das top.nachfolger := feld; -- zweite zu zeigen. feld.inhalt := wert; IF top.inhalt < wert THEN top := top.nachfolger; END IF; END IF; IF stack_counter > 1 THEN IF top.nachfolger.inhalt > wert or top.inhalt < wert THEN -- Hier wird nach einem kleinsten und groessten Element gesucht feld.vorgaenger := top; feld.nachfolger := top.nachfolger; top.nachfolger.vorgaenger := feld; top.nachfolger := feld; feld.inhalt := wert; IF top.inhalt < wert THEN top := top.nachfolger; END IF; ELSE -- ansonsten wird normal eingefuegt s1 := top.nachfolger; s2 := top.nachfolger.nachfolger; index := 0; WHILE index <= stack_counter-1 LOOP IF wert >= s1.inhalt and wert <= s2.inhalt THEN feld.vorgaenger := s1; feld.nachfolger := s2; s1.nachfolger := feld; s2.vorgaenger := feld; feld.inhalt := wert; ELSE s1 := s1.nachfolger; s2 := s2.nachfolger; END IF index := index + 1; END LOOP; END IF; END IF; stack_counter := stack_counter + 1; END push; PROCEDURE rotate IS -- Diese Prozedur zeigt alle index : integer; -- Elemente des Stacks an BEGIN FOR index IN 1..stack_counter LOOP PUT(top.inhalt); PUT_LINE(""); top := top.vorgaenger; END LOOP; END ROTATE; FUNCTION pop RETURN integer IS s1 : zeiger; s2 : zeiger; wert : integer; BEGIN IF stack_counter = 1 THEN wert := top.inhalt; top := null; END IF; IF stack_counter > 1 THEN wert := top.inhalt; s1 := top.vorgaenger; s2 := top.nachfolger; top := s1; s1.nachfolger := s2; s2.vorgaenger := s1; END IF; IF stack_counter = 0 THEN PUT_LINE("ausgegebener Wert ist Falsch, da der Stack leer ist!"); -- wo nichts ist, kann auch nichts ausgegeben werden END IF; stack_counter := stack_counter - 1; RETURN wert; END; FUNCTION empty RETURN boolean IS -- Ist der Stack leer? BEGIN RETURN top = null; END empty;
Man möge sich davon Überzeugen, das die Verwandtschft zu Pascal und Modula gar nicht zu übersehen ist. --Arbol01 17:23, 14. Mär 2004 (CET)
Ich glaub, Du brauchst niemanden zu überzeugen, oder irre ich? Außerdem steht das doch schon im Artikel. --denny vrandečić 19:44, 14. Mär 2004 (CET)
Schnelligkeit und die Unnötigkeit von C-Derivaten
BearbeitenKann jemand was über die Schnelligkeit von Ada-Programmen sagen? Ist es auch möglich komplette Betriebssysteme in Ada zu entwerfen? In wiefern kann man C/C++ und Java durch Ada ersetzen? 84.165.137.238 07:04, 5. Jul 2006 (CEST)
- Ada-Programme sind vergleichbar schnell mit C-Programmen; Erstellung und Wartung sind deutlich einfacher und billiger:
- The seminal comparison of Ada and C projects is Rational Software's 1995 study (also available as a pdf file [1]). Verdix (which merged into Rational in 1994) had about 50% of their 3 million lines of code in C and 50% in Ada. The code was maintained by the same developers over the course of 11 years, yet the Ada code had about half as many defects and the overall development cost was about 35% less for Ada code. http://www.adaic.com/whyada/ada-vs-c.html
- Es ist möglich, komplette Betriebssysteme in nahezu jeder kompilierten Sprache zu schreiben. Natürlich gilt das auch für Ada.
- Natürlich kann man C und C++ voll durch Ada ersetzen (seit Ada95 unterstützt Ada Objektorientierung), man muß die Programme halt neu schreiben. Aonix bietet in seinem Compiler die Möglichkeit zu JVM-Kompilierung, und AdaCore hat bis zu Version 1.1 mit jGNAT ebenfalls einen Ada -> JVM-Compiler entwickelt. Damit kann man auch Java ersetzen.
- "Die Unnötigkeit von C-Derivaten" spricht jetzt nicht so sehr für überschäumende Kompetenz. Ada ist im Gegensatz zu Java und C++ kein C-Derivat, sondern eine Wirth'sche Sprache (besser zu lesen) und hat einige Möglichkeiten von C nicht (exzessive Pointerarithmetik ohne Überlaufprüfung, strenge Typisierung). C/C++ im Allgemeinen und ANSI-C im Besonderen sind technisch veraltete Sprachen, die dringend konzeptionell überarbeitet werden müssen (so ist Java entstanden). Selbst der CCC redet vom "Kontrollierten Ausstieg aus C bis 2020". --85.181.5.7 08:05, 12. Jul. 2007 (CEST)
- "(so ist Java entstanden)" - sorry, und damit hast du nicht gerade Kompetenz bewiesen. Java hat die Syntax von C/C++ - das war es aber auch schon. Konzeptionell geht Java ganz andere Wege. Aber wenn du soviel weißt und Ada so viel besser als C/C++ ist, wie kommt es, dass alle Wirthschen Sprachen mehr oder weniger in der Bedeutungslosigkeit versinken? auch die Aussage, das sich ein Betriebssystem mit jeder Compilersprache entwickeln ließe, die Binärcode erzeugt, ist falsch. Eine Sprache, die für den Core eines Betriebssystems verwendet wird, muss a) Zeiger kennen und b) darf keinen GC haben. Der GC bedient sich der Speicherfunktionen des Betriebssystem, das ich ja gerade erst schreiben möchte. Zeiger brauche ist um auf absolute Adressen zugreifen zu können, die beim Booten eines Systems erst einmal so existieren. Selbst beim Vorzeigesystem Oberon ist nicht alles in Oberon....ruhig mal Sourcen wälzen... 84.170.99.53 22:01, 10. Aug. 2010 (CEST)
- Äh… Ada unterstützt schon Zeigerarithmetik wie C durch das
'Address
-Attribut. Nur sollte man es nach Möglichkeit (also außer bei hardwarenaher Programmierung) nicht verwenden --MushroomCloud 02:24, 13. Jul. 2007 (CEST)- 85.181.5.7 sagt: "technisch veraltete Sprachen, die dringend konzeptionell überarbeitet werden müssen (so ist Java entstanden)." - 84.170.99.53 entgegnet "sorry, und damit hast du nicht gerade Kompetenz bewiesen. Java hat die Syntax von C/C++ - das war es aber auch schon. Konzeptionell geht Java ganz andere Wege." Ich sehe da eher beim Kritiker Kompetenzprobleme - IP 85.. sagt doch genau das, nämlich daß Java ein anderes Konzept vertritt. 79.214.58.200 17:51, 19. Dez. 2010 (CET)
- Java hat das "look and feel" von C++ um die Aktzeptanz zu erhöhen - eine übernommene Synstax sieht anders aus. Java verwendet lediglich die selben Symbole. 79.212.244.103 02:25, 25. Jun. 2011 (CEST)
- 85.181.5.7 sagt: "technisch veraltete Sprachen, die dringend konzeptionell überarbeitet werden müssen (so ist Java entstanden)." - 84.170.99.53 entgegnet "sorry, und damit hast du nicht gerade Kompetenz bewiesen. Java hat die Syntax von C/C++ - das war es aber auch schon. Konzeptionell geht Java ganz andere Wege." Ich sehe da eher beim Kritiker Kompetenzprobleme - IP 85.. sagt doch genau das, nämlich daß Java ein anderes Konzept vertritt. 79.214.58.200 17:51, 19. Dez. 2010 (CET)
- Äh… Ada unterstützt schon Zeigerarithmetik wie C durch das
- Wir haben nun schon 2022. Wie sieht es mit dem zugesagten Ausstieg aus? 217.91.63.146 12:58, 11. Jan. 2022 (CET)
Weiterentwicklung?
BearbeitenSollen Ada 95 und Ada 2005 nicht hier auch noch berücksichtigt werden. Wer kennt sich genügend aus? --SonniWP2 09:08, 16. Aug. 2007 (CEST)
Zusätze & Todo
Bearbeiten- Ada Wikibook
- Relevante Inhalte v. englischen Wikipedia Artikel über Ada
- http://www.huber-net.de/adagag.htm
- Ada im DSE Wiki Autoren zum Thema Ada und Softwareentwicklung sind willkommen. (nicht signierter Beitrag von 80.156.47.201 (Diskussion) 17:16, 17. Jun. 2010 (CEST))
Bild
Bearbeiten[2] Den tieferen Sinn dieses Bildes erschließt sich mir überhaupt nicht. Bitte um Aufklärung.-- Codc 19:59, 20. Jun. 2008 (CEST)
ISO-Spec zu Ada nicht kostenfrei erhältlich
Bearbeiten"Die Sprachdefinition ist insofern ungewöhnlich unter den ISO-Normen, als sie kostenlos für jeden zugänglich ist. Deswegen wird die Sprachbeschreibung auch häufig von Programmierern als Standardnachschlagewerk zu Rate gezogen."
Ich war neugierig und hab dies überprüft. Ich durfte feststellen, dass man für die knapp 105 MB große PDF-Datei satte 342 CHF berappen darf. Zudem müsste es auf der Liste öffentlich verfügbare Standards stehn, was jedoch auch nicht der Fall ist. Abgesehen von den ganzen technischen Korrigenda und den Ergänzungen anderer Sprachen in dieser Liste sind AFAIK nur zwei Programmiersprachen bei der ISO kostenlos verfügbar: ECMAScript und C#. (Beide sind auch gratis bei der ECMA erhältlich, was fürn Zufall...) --Carminox 00:22, 3. Sep. 2008 (CEST)
References
BearbeitenIch habe einige ref-Tags eingebaut; das schluckte er ohne weiteres. Als ich unten den "references /"-Tag setzen wollte, fragte er mich erst nach einem Kontrollwort ab (wegen neuer Weblinks); als ich das eingegeben hatte, kam die deutsche "Du bearbeitest unangemeldet"-Seite; danach kam wieder das Kontrollwort usw. usf. in Endlosschleife.
Vielleicht kann das jemand den Entwicklern stecken. Und in diesem Artikel den "references /"-Tag setzen. --129.13.238.51 22:07, 20. Mai 2009 (CEST)
- Ja, lästig sowas. Das klingt nach einem Cacheproblem auf der langen Strecke zwischen Wikipedia und Dir. Kann passieren. Vermutlich kein Programmproblem. Ich hab "references /" nachgetragen. --Walter Koch 11:09, 21. Mai 2009 (CEST)
fehlende Belege
BearbeitenInzwischen ist ja einiges mit Einzelnachweisen belegt, und auch viele Literaturangaben sollten einiges abdecken. Deswegen entferne ich den Baustein 'fehlende Einzelnachweise/Belege'.
Falls jemand noch Stellen mit fehlenden Belegen findet, von mir aus den Baustein wieder reinsetzen, aber bitte die Stellen explizit hier auflisten und begründen.
Am besten wäre natürlich die direkte Verbesserung der Stellen, statt einfach nur einen Baustein zu setzen ...
Relevanz des Hinweises auf Eiffel?
BearbeitenWas soll der Satz: "Trotzdem senkte dieses Ereignis die Popularität von Ada nicht, auch nachdem Bertrand Meyer erklärte, mit der von ihm entwickelten Programmiersprache Eiffel wäre der Fehler nicht passiert.[10]"?
Sicherlich haben viele Menschen außer Herrn Meyer darauf hingewiesen, dass Ihnen das nicht passiert wäre, ohne dass das an der Popularität von Ada irgendetwas geändert hat...
Ada 2012 noch kein Standard?
BearbeitenIm Artikel steht Zurzeit ist die ISO/ANSI-Norm ISO-8652:1995/AMD 1:2007, informell Ada 2005, der aktuelle Standard. Ist Ada 2012 nicht schon draußen? --109.192.197.21 19:54, 23. Jan. 2015 (CET)
Erscheinungsjahr
BearbeitenHallo,
als Erscheinungsjahr ist in der Übersichtstabelle 1983 angegeben. Dieses Datum ist aus einer Reihe von Gründen nicht ganz schlüssig:
- Der Sprachentwurf von J. Ichbiah wurde bereits 1979 der Gewinner der entsprechenden Ausschreibung des DoD akzeptiert.
- Der Name Ada selbst wurde von Jack Cooper ebenfalls 1979 vorgeschlagen und anschließend akzeptiert.
- Die Veröffentlichung der Sprachbeschreibung erfolgte ebenfalls 1979 in den ACM SIGPLAN Notices (gut 10.000 Leser)
- Das abschließende "Stoneman"-Dokument wurde 1980 vom DoD veröffentlicht.
- Der erste Standard wurde unter der Bezeichnung MIL-STD 1815 ebenfalls 1980 veröffentlicht.
- Die englische Wikipedia betrachtet 1980 als das Erscheinungsjahr.
Das Jahr 1983 ist das Jahr einer späteren Standardisierung (dazwischen gab es noch 1982 eine weitere Version des Standards). Diese 1983er Version wurde dann für einige Jahre eingefroren. Das hat aber m.E. nichts mit der Festlegung des "Erscheinungsjahrs" zu tun.
Viele Grüße Matthias --Mkleine (Diskussion) 13:04, 17. Feb. 2015 (CET)
- Da hier bislang keine Antwort erfolgt, habe ich das Erscheinungsjahr jetzt analog zur englischen Wikipedia auf 1980 gesetzt. Ich würde sogar zu 1979 tendieren, finde allerdings, dass die Wikipedias in den unterschiedlichen Sprachen doch zumindest einheitliche Informationen liefern sollten. Wenn es gute Gründe für 1983 gibt, sollten diese Gründe entsprechend auch in der engl. Wikipedia vermittelt und zu einem einheitlichen Ergebnis geführt werden. Irgendwelche Rückmeldungen? --Mkleine (Diskussion) 17:40, 18. Feb. 2015 (CET)
Einsatzbeispiele
BearbeitenVielleicht kann man noch irgendwo im Artikel Einsatzbeispiele, wo Ada verwendet wird, einbauen. In dem Fall könnte man die Software für den Eurofighter als Beispiel erwähnen, die wurde komplett in Ada programmiert. --134.3.80.238 17:13, 14. Okt. 2018 (CEST)