Modula und Ada unter OS X - Woher bekommen und wie installieren?

  • Ersteller Mitglied 7974
  • Erstellt am

Mitglied 7974

Gast
Hallo erstmal!

Vor Kurzem bin ich irgendwie auf die Programmiersprachen Modula und Ada aufmerksam geworden. In erster Linie deswegen, weil ich Alternativen zu C/C++ und alle darauf aufbauenden Dialekte gesucht habe, die eine klare und saubere Syntax ermöglichen/erzwingen, die über längere Zeit lesbar bleibt.
Wie dem auch sei, ich habe zwar was für Ada (GNAT) und Modula-3 (cm3) gefunden und auf meinem Rechner (G4-PowerBook, OS X 10.4.8) installieren können, aber die Compiler führen ihre Arbeit nie zu Ende, weil es stets zu Fehlern kommt (ich glaube, der Linker macht Probleme).

Meine Frage daher: Hat irgendjemand von euch einen der beiden Compiler (bevorzugt natürlich beide ;) ) zum Laufen gebracht? Und wenn ja, wäre dieser Jemand auch dazu bereit, mir die Installation zu erklären? Vielleicht gibt es aber auch andere Compiler, von denen ich einfach nur nichts weiß?
Ich tappe im Moment absolut im Dunkeln, da die Installationsanleitungen für GNAT und cm3, die auf den jeweiligen Homepages angeboten werden, für mich unbrauchbar sind. Ich habe zwar alles gemacht wie vorgeschrieben, aber es funktioniert ja dennoch nicht.

Also, vielen Dank an alle, die mir hierbei helfen können!

Gruß,
Matthias
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Meine Frage daher: Hat irgendjemand von euch einen der beiden Compiler (bevorzugt natürlich beide ;) ) zum Laufen gebracht?
Jein, unter MacOS X 10.2.8 hatte ich den Ada Compilter installiert. Da ich aber auch Linux Rechner habe, habe ich das ganze jetzt nicht mehr installiert.
 

Mitglied 7974

Gast
Kannst du dich noch erinnern, wie du das Teil installiert hast? Das, was ich gemacht habe, ist, dass ich versucht habe, dieses GNAT zu installieren, das ja anscheinend aus einem eigenen GCC gesteht. Der läuft bei mir aber nicht richtig.
Hier mal der Beispielcode und die dazugehörigen Ausgaben des Terminals:
Code:
-- Inhalt von hello.adb:

with ada.text_io;
use ada.text_io;

procedure hello is
begin
  put_line("hello");
end hello;

Dazu spuckt mir das Terminal folgendes aus:
Code:
gnatmake hello.adb
gcc -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
/usr/bin/ld: table of contents for archive: /usr/local/ada/lib/gcc/powerpc-apple-darwin8.1.0/4.0.1/adalib/libgnat.a is out of date; rerun ranlib(1) (can't load from it)
/usr/bin/ld: table of contents for archive: /usr/local/ada/lib/gcc/powerpc-apple-darwin8.1.0/4.0.1/libgcc.a is out of date; rerun ranlib(1) (can't load from it)
/usr/bin/ld: table of contents for archive: /usr/local/ada/lib/gcc/powerpc-apple-darwin8.1.0/4.0.1/libgcc_eh.a is out of date; rerun ranlib(1) (can't load from it)
collect2: ld returned 1 exit status
gnatlink: cannot call /usr/local/ada/bin/gcc
gnatmake: *** link failed.

Das hört sich für mich so an, als ob es mit dem Programm "ld" Probleme gäbe. Dieses ist allerdings installiert und ich frage mich einfach nur, warum es dann nicht läuft.

Hier noch dasselbe für Modula-3:
Code:
(* Inhalt von Main.m3 *)

MODULE Main;
IMPORT IO;

BEGIN
  IO.Put("hello");
END Main.

Das Terminal:
Code:
cm3
new source -> compiling Main.m3
 -> linking prog
/usr/bin/ld: warning -L: directory name (/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_lang_cm3/work/destroot/opt/local/cm3/lib) does not exist
/usr/bin/ld: can't locate file for: -lm3gcdefs
collect2: ld returned 1 exit status
Fatal Error: package build failed

Auch hier scheint es Probleme mit "ld" zu geben und zusätzlich lässt sich trotz Standardinstallation ein Verzeichnis nicht finden. cm3 habe ich über darwinports installiert, falls das noch interessant sein sollte.

Wie gesagt, wenn sich darauf irgendjemand einen Reim machen kann, soll er bitte laut schreien. Am Ende mache ich nur reine Anfängerfehler. :-c *heul*

Nochmals vielen Dank an alle, die mir hierzu was sagen können.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Welches Paket hast Du installiert? Das gcc 3.3 oder gcc 4.01 Paket?
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Ich habe gerade das Paket für gcc 3.3 heruntergeladen, gcc_select 3.3 aufgerufen Paket installiert "gnatmake hello.adb" ausgeführt, keine Fehlermeldung bekommen. Das ganze funktioniert also einwandfrei - Programm läuft auch.
 

Mitglied 7974

Gast
Ich habe mir gerade eben den Ada-Compiler von https://libre2.adacore.com/ heruntergeladen und installiert. Der funktioniert nun absolut einwandfrei. Trotzdem danke, tjp, dass du (wirklich nur meinetwegen?) eine Installation auf deinem System durchgeführt hast. Ich hoffe, du hast jetzt nicht Müll auf deiner Platte?
Jetzt bräuchte ich nur noch Hilfe mit Modula-3. Damit werde ich noch nicht schlau, aber Google ist ja geduldig. ;)
Nochmals vielen Dank für deinen Einsatz, tjp!
 

Mitglied 7974

Gast
Tja, meine Wurzeln sind PHP und studienbedingt PERL (*schäm*), was auch der Grund dafür sein könnte, warum ich mir mit C++ recht schwer tue.
Jedenfalls habe ich jetzt auch Modula-3 zum Laufen gebracht. Anscheinend lag's an meinen gcc-Compilern, die ich auf dem System habe. Als ich vorhin den GNAT-Compiler installiert habe, scheine ich damit endlich ein anständiges gcc-System bekommen zu haben. Jetzt compiliert auch Modula-3. :D

Nochmals danke für dein Engagement, tjp!
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
was auch der Grund dafür sein könnte, warum ich mir mit C++ recht schwer tue.
C++ ist sehr umfangreich und erfordert einiges an Umdenken, wenn man von Sprachen wie PHP und Perl kommt. Zeiger gibt es aber auch in Ada.
 

Mitglied 7974

Gast
Na ja, ich glaube, wenn man mal eine Zeitlang damit gearbeitet hat, dann machen einem Zeiger nicht mehr allzu viel aus. Und PHP und Perl sind ja im Prinzip auch nichts anderes als abgespeckte C-Dialekte.
Dennoch interessiere ich mich für Ada und Modula-3 aufgrund der Syntax. Wie auch in Python werden hier viele Aktionen mit Schlüsselwörtern eingeleitet (Perl: foreach my $element (@array), Python: for element in array). Das sind zwar irgendwo Marginalitäten und mit Übung kann man ja alles lesen, aber schon allein dieses "in" finde ich hilfreich genug, um die Syntax besser zu verstehen.
Vielleicht ein wenig was zu meinem Hintergrund: Ich studiere Computerlinguistik und arbeite als Werkstudent in einer Web-Firma, welche grundsätzlich alles in Perl codet. Tja, wenn man mal ein paar Gigabyte Corpora abarbeiten muss, ist man froh, wenn man irgendwann mal eine Sprache verwenden kann, die wirklich nativ ausgeführt werden kann und nicht über eine virtuelle Maschine läuft oder interpretiert wird. Ist einfach schneller. (Nennt mich neurotisch, aber irgendwie habe ich bei kompilierten Programmen ein besseres Gefühl, als bei gescripteten. Nicht, dass ich Scriptsprachen schlecht fände, aber ich finde die Laufzeiten eben nicht sonderlich aufregend.)
 

chipdrive

Gast
hallo leute,


ich wollte den ada compiler auf meinem ibook installieren hat aber nicht funktioniert da kommt so was wie cannot exec 'as' aber ich habe mal den compiler auf Ubuntu installiert und es hat geklappt und jetzt habe ich den Ada-Compiler von https://libre2.adacore.com/ heruntergeladen und der verlangt von mir nach dem ich sudo doinstall ausgefürt habe findet er make nicht also das gleiche ist mir mit ubuntu passiert war ganz einfach es zu installieren aber auf mac os habe ich K.A :( :-c


kann mir vielleicht jemand helfen und mir schreiben wir ihr den ada compiler auf mac os installiert habt?? =)

danke im voraus,
 

Mitglied 7974

Gast
"as" ist meines Wissens nach der Assembler-Compiler des GCC. Der GCC ist aber erst auf dem System vorhanden, wenn XCode installiert ist, denn XCode greift auf den GCC zurück.

Installier also erstmal XCode, dann müsste unter "/usr/bin" der "as" vorhanden sein, genauso wie "make".

Ist XCode installiert, sollte es so gehen:
Code:
shell(entpacktes GNAT-Verzeichnis)$ ./configure --prefix=/usr/local
shell(entpacktes GNAT-Verzeichnis)$ make
shell(entpacktes GNAT-Verzeichnis)$ sudo make install

Danach musst du noch prüfen, ob in deiner PATH-Variable an erster Stelle "/usr/local/bin" steht:
Code:
shell$ echo $PATH

Die Ausgabe müsste in etwa so aussehen:
Code:
/usr/local/bin:/usr/bin/:<weitere Einträge>

Ist dem nicht so, dann bearbeite in deinem Homeverzeichnis die Datei ".profile" mit deinem Lieblingseditor oder lege sie entsprechend neu an. An deren Ende muss dann eine Zeile stehen, die folgendermaßen aussieht:
Code:
export PATH=/usr/local/bin:$PATH

Terminal neu starten und schon müsste "gnatmake" zur Verfügung stehen.