12.2 Compiler-Sprachen
Zu den Compiler-Sprachen zählt der Großteil der Programmiersprachen, die zur Umsetzung groß angelegter Softwareprojekte eingesetzt werden. Abbildung 12.1 zeigt das prinzipielle Vorgehen zur Erstellung eines Programms mit Hilfe eines Compilers.
Compiler: Der Compiler dient zur Erstellung von Programmen. Er übersetzt den Quelltext in eine maschinenlesbare Form und ist für das sogenannte Linking der Quelldateien zuständig. Ein bekannter Compiler ist gcc. Der Programmierer muss sich meist »nur« um das Erstellen eines korrekten Codes kümmern, das Kompilieren und Linken der Programme erledigt ein einfacher Kommandozeilenbefehl.
Kompilieren: Eingedeutschte Bezeichnung für das Übersetzen eines Programmquelltextes in ein für den Computer ausführbares Programm (siehe Kasten zu »Compiler«).
Abbildung 12.1 Schritte zur Übersetzung eines Programms
12.2.1 C/C++
Das gesamte Betriebssystem Linux wurde in der Programmiersprache C erstellt. Möchten Sie selbst Programme aus Quellen übersetzen, so ist mindestens der C-Compiler erforderlich. Unter Ubuntu installieren Sie sämtliche zum Erstellen von C-Programmen benötigten Pakete über das Metapaket build-essential. Dadurch werden sowohl der C- als auch der C++-Compiler sowie die fmake-Utilitys installiert. Sie können die Funktionsweise des Compilers erneut mit Hilfe unseres Standardprogramms testen. Erstellen Sie eine Datei fakultaet.cpp mit folgendem Inhalt:
#include <iostream>
using namespace std;
int fak(int n);
int main(void)
{
int n;
cout << "Fakultät: " << fak(5) << endl;
}
int fak(int n) {
if (n==0) return 1;
else return n*fak(n-1);
}
Im vorliegenden Fall wurde die Fakultätsberechnung als eigenständige, rekursive Funktion fak implementiert.
Nach der Eingabe wird das Programm zunächst über
g++ -o fakultaet fakultaet.cpp
kompiliert und anschließend mittels ./fakultaet gestartet.
Anwenderprogramme kompilieren
Mit Hilfe des C-Compilers können Sie aber nicht nur kleine Programmierprojekte selbst realisieren; vielmehr sind Sie in der Lage, durch das Kompilieren von Quellen Linux-Anwenderprogramme ganz Ihren Anforderungen bzw. Ihrer Hardware anzupassen.
12.2.2 Java
In Ubuntu ist OpenJDK das standardmäßig installierte Java. Möchten Sie damit Java-Projekte realisieren, so benötigen Sie in jedem Fall das Paket openjdk-7-jdk. Um die Grafikfähigkeiten von Java zu demonstrieren, erstellen wir ein Programm, das eine Treppe aus Rechtecken erstellt, deren Höhe quadratisch zunimmt. Erstellen Sie eine Datei treppe.java mit folgendem Inhalt:
import java.applet.*;
import java.awt.*;
public class treppe extends Applet{
int x=1; int y;
public void paint (Graphics pen) {
while (y<100) {
y=x*x;
pen.fillRect(x*10, 100-y, 10, y);
x++;
}
}
}
Das Programm wird mit dem Befehl javac treppe.java übersetzt.
Java: Eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems. Java ist eine Komponente der Java-Technologie. Java-Programme werden in Bytecode übersetzt und dann in einer speziellen Umgebung ausgeführt, die als Java-Laufzeitumgebung oder Java-Plattform bezeichnet wird. Deren wichtigster Bestandteil ist die Java Virtual Machine (Java-VM), die Programme ausführt, indem sie den Bytecode interpretiert. Java-Programme laufen in aller Regel ohne weitere Anpassungen auf verschiedenen Computern und Betriebssystemen, für die eine Java-VM existiert. Sun bietet neben dem eigenen UNIX-Derivat Solaris auch Java-VMs für Linux und Windows an. Andere Hersteller lassen ihre Java-VM für ihre Plattform zertifizieren, zum Beispiel die Firma Apple für Mac OS X.
JavaScript: Eine einfache Programmiersprache, die im Webbrowser ausgeführt wird – man spricht auch von clientseitiger Ausführung (im Gegensatz zu Sprachen wie PHP, ASP, CFML oder Perl, die auf dem Server ausgeführt werden). Dadurch eignet sich JavaScript beispielsweise, um Formulare zu überprüfen, bevor sie an den Server geschickt werden, oder für DHTML-Effekte. JavaScript wurde ursprünglich von Netscape entwickelt und hat mit der Programmiersprache Java nur den Namen gemeinsam.
Applet einbinden
Durch den Befehl javac treppe.java wird eine Java-Klassendatei treppe.class generiert, die allerdings nicht eigenständig lauffähig ist. Binden Sie die Klasse in eine HTML-Datei namens treppe.html ein:
<HTML>
<BODY>
<APPLET code="treppe.class" width=350 height=120>
</Applet>
</BODY>
</HTML>
Nun können Sie das Applet im Applet-Viewer, der zum Sun-Java-Paket gehört, folgendermaßen testen (Abbildung 12.2):
appletviewer treppe.html
Abbildung 12.2 Der »Applet-Viewer«
Wenn das klappt, dann lässt sich das Applet auch in jedem beliebigen Browser darstellen. Nun haben Sie auch die Möglichkeit, browserunabhängige Java-Applikationen zu erstellen.
Buchtipp: Das folgende Beispiel wurde dem beliebten Java-Buch »Java ist auch eine Insel« von Christian Ullenboom entnommen, das als Openbook unter www.galileocomputing.de frei verfügbar ist.
Java-Beispiel
import java.math.*;
class Fakultaet
{
static BigInteger fakultät( int n )
{
BigInteger big = BigInteger.ONE;
if ( n == 0 || n == 1 )
return big;
if ( n > 1 )
for ( int i = 1; i <= n; i++ )
big = big.multiply( BigInteger.valueOf(i) );
return big;
}
static public void main( String args[] )
{
System.out.println( fakultät(100) );
}
}
Kompiliert wird die Applikation wieder mittels javac, starten können Sie das Programm über
java Fakultaet
Im vorliegenden Fall wird die Java-Mathematik-Bibliothek dazu verwendet, die Fakultäten möglichst großer Zahlen n in ganzzahliger Darstellung zu berechnen.
Mono
Als Open-Source-Alternative zu Microsofts .NET Framework ist Mono in aller Munde. Skeptiker bescheinigen dem Projekt jedoch leider keine große Zukunft, falls sich Software-Patente auf breiter Basis durchsetzen. Unter Ubuntu sind einige (wenn auch veraltete) Mono-Pakete integriert. Eine brauchbare Entwicklungsumgebung lässt sich durch die Installation folgender Pakete installieren:
- mono-devel
- gtk-sharp2
Das letzte Paket stellt Bibliotheken zur Erstellung von GTK-Programmen in Verbindung mit dem C#-Compiler des Mono-Pakets zur Verfügung.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.