Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Linux
2 Ubuntu Linux
3 Von »Warty« bis »Edgy«
4 Optimale Nutzung der beiliegenden DVDs
5 Ubuntu erleben – Die Installation
6 Erste Schritte
7 Ubuntu
8 Kubuntu
9 Xubuntu
10 Edubuntu
11 Hardwarekonfiguration
12 Ubuntu und aktuelle Hardware
13 Software
14 Programme installieren
15 Programmierung und Design
16 Migration von Windows zu Ubuntu
17 Netzwerktechnik
18 Kompilieren und Optimieren
19 Das System im Detail
20 Sicherheit
21 Virtualisierung
22 Übersicht: Software für (K)Ubuntu
23 Wo bekomme ich weitere Hilfe?
24 Befehlsreferenz Ubuntu Linux
A Häufig gestellte Fragen
B Glossar
C Mark Shuttleworth
D Deutsche Übersetzung der GPL
Stichwort

Download:
- ZIP, ca. 29,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Ubuntu GNU/Linux von Marcus Fischer
Grundlagen, Anwendung, Administration
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
2., akt. und erw. Aufl., mit 2 DVDs
913 S., 39,90 Euro
Galileo Computing
ISBN 978-3-89842-848-4
gp 15 Programmierung und Design
  gp 15.1 Programmiersprachen
    gp 15.1.1 Interpretersprachen
    gp 15.1.2 Compilersprachen
  gp 15.2 Integrierte Entwicklungsumgebungen
    gp 15.2.1 Anjuta
    gp 15.2.2 KDevelop
    gp 15.2.3 Eclipse
    gp 15.2.4 Lazarus
    gp 15.2.5 Gambas
  gp 15.3 Webdesign
    gp 15.3.1 Mozilla Composer
    gp 15.3.2 Nvu
    gp 15.3.3 Weitere Lösungen
  gp 15.4 Professioneller Satz mit LaTeX
    gp 15.4.1 Installation
    gp 15.4.2 Beispiele
    gp 15.4.3 Integrierte Umgebungen

»Programmieren ist wie küssen: Man kann darüber reden, man kann es beschreiben, aber man weiß erst dann, was es bedeutet, wenn man es getan hat.« (Andree Beaulieu-Green)

15 Programmierung und Design

Im vorliegenden Kapitel möchte ich Ihnen einen Überblick geben, wie man die wichtigsten Programmiersprachen und Entwicklerwerkzeuge installiert. Anhand eines durchgängigen Beispiels wird die Funktion der Werkzeuge demonstriert. Im letzten Abschnitt kommen auch Webentwickler und Layouter nicht zu kurz: Hier werden Werkzeuge zur Erstellung von Internetcontent und druckreifem Material vorgestellt.


Galileo Computing

15.1 Programmiersprachen  downtop


Galileo Computing

15.1.1 Interpretersprachen  downtop

Bei der Verwendung von Interpretersprachen wird der Programmcode zur Laufzeit in maschinennahe Befehle übersetzt. Dieses Vorgehen eignet sich dann, wenn »mal eben schnell« ein kleines Programm erstellt werden soll, das nicht unbedingt auf komplexe Systemfunktionen zugreifen soll.

Shellskripte

Wir beginnen unseren Ausflug in die Welt der Programmierung mit Shellskripten. Diese dienen nicht nur der weitgehenden Automatisierung von Standardaufgaben, vielmehr sorgt auch das Abarbeiten von Skripten beim Starten des Systems für die automatische Konfiguration von Diensten. Derartige Skripte finden Sie z. B. im Verzeichnis /etc/init.d/.

Als Beispiel wollen wir selbst eine kleines Shellskript schreiben, das die so genannte Fakultät einer natürlichen Zahl berechnet. Dabei wird die Zahl so lange mit einer jeweils um 1 reduzierten Zahl multipliziert, bis man 1 erreicht hat. Kompliziert? Hier ein Zahlenbeispiel:

5! = 5 x 4 x 3 x 2 x 1 = 120

Das Shellskript, das erst eine Zahl einliest, dann deren Fakultät berechnet und diese schließlich ausgibt, hat folgende Gestalt:

#!/bin/bash 
declare -i zahl=$1 
declare -i fakultaet=1 
while [ $zahl -gt 1 ]; do 
  fakultaet=$fakultaet*$zahl 
  zahl=$zahl-1 
done 
echo "Fakultät = " $fakultaet
  • In der ersten Zeile wird zunächst der typische Header von Bash-Shellskripten definiert (#!/bin/bash).
  • In Zeile 2 und 3 werden die Variablen für das Programm definiert. Die Variable zahl wird direkt als Konsolenparameter eingelesen, daher zahl=$1.
  • Die eigentliche Berechnung erfolgt in den Zeilen 5 bis 8 innerhalb einer while-Schleife. Dabei wird der Inhalt der Variablen zahl pro Schleifendurchlauf immer um eine Einheit reduziert, bis man schließlich bei der Zahl 1 angelangt ist.
  • Nach Beendigung der Schleife wird der Inhalt der Variablen fakultaet schließlich auf der Konsole ausgegeben.

Das Skript selbst wird als fakultaet.sh abgespeichert und wie folgt ausgeführt:

user$ sh fakultaet.sh 5 
Fakultät = 120

Alternativ hätte man das Skript auch nur fakultaet nennen und mittels chmod+x fakultaet ausführbar machen können, dies erspart den expliziten Aufruf des bash-Interpreters via sh.

Shellskripte sind insbesondere dann recht nützlich, wenn man komplizierte Programmaufrufe nicht mehrfach eingeben möchte, z. B. beim Mastern von bootfähigen CDs oder Transcodieren von Videomaterial.

Perl

Die nächste häufig auftretende, interpretierbare Programmiersprache unter Linux ist Perl. Diese Sprache wurde von Larry Wall mit dem Ziel entwickelt, sich möglichst nahe an menschlichen Sprachgewohnheiten zu orientieren. Perl erfordert für Einsteiger geringe programmiertechnische Vorbildung und zeichnet sich durch eine starke Kombinierbarkeit der Sprachelemente und einen reichen Wortschatz aus. Für eingefleischte Programmierer stellt Perl eine Art Schweizer Messer unter UNIX/Linux dar.

Möchten Sie Perl unter Ubuntu verwenden, so sollten folgende Pakete installiert sein:

  • perl
  • perl-base

Das obige Fakultätsprogramm hätte unter Perl folgende Gestalt:

#!/usr/bin/perl 
sub fac { 
  $_[0]>1?$_[0]*fac($_[0]-1):1; 
{ 
print fac(5);

Das Programm wird von einer Kommandozeile aus über

user$ perl fakultaet.pl

gestartet, wenn es unter dem Namen fakultaet.pl abgespeichert wurde. Komplizierter Code? Nun, auf den ersten Blick sicher. Der Algorithmus reduziert sich hier in genialer Weise auf eine einzige Zeile, in der die Fakultätsfunktion rekursiv berechnet wird. Die Möglichkeiten von Perl veranlassen viele der so genannten Geeks zu Wettbewerben wie Obfuscation (das Verschlüsseln von Programmen bis zur Unkenntlichkeit des Sinns) und Golf (ein Programm für einen bestimmten Zweck in möglichst wenig Codezeilen erstellen).

Python

Python ist eine objektorientierte Programmiersprache, die sich durch einen klaren Aufbau auszeichnet. Unter Ubuntu wird Python über das Paket

  • python

installiert. Besonders interessant ist die Ausnahmebehandlung unter Python, die eine Syntaxüberprüfung von Programmstrukturen während der Laufzeit gestattet. Betrachten wir als Beispiel einmal folgenden Codeabschnitt:

#!/usr/bin/env python 
while True: 
  try: 
    num = raw_input("Eine Zahl eingeben: ") 
    num = int(num) 
    break 
  except ValueError: 
    print "Eine _Zahl_, bitte!"

Dieser Code wird den Benutzer so lange nach einer Nummer fragen, bis dieser einen String eingibt, der sich per int() in eine Ganzzahl konvertieren lässt, ohne dass ein Fehler auftritt.

Erwähnenswert ist, dass sowohl das BitTorrent-Filesharing-Protokoll als auch das MoinMoin-Wiki-System in Python implementiert wurden.


Galileo Computing

15.1.2 Compilersprachen  toptop

Darunter fällt der Großteil der Programmiersprachen, die zur Umsetzung groß angelegter Softwareprojekte eingesetzt werden. Abbildung 15.1 zeigt das prinzipielle Vorgehen zur Erstellung eines Programms mit Hilfe eines Compilers.

Abbildung 15.1    Schritte zur Übersetzung eines Programms

Der Programmierer muss sich meist »nur« um das Erstellen von einem korrekten Code kümmern, das Kompilieren und Linken der Programme erledigt ein einfacher Kommandozeilenbefehl.

C/C++

Das gesamte Betriebssystem Linux wurde in der Programmiersprache C erstellt. Möchte man 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 make-Utilities 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

user$ g++ -o fakultaet fakultaet.cpp

kompiliert und anschließend mittels

user$ ./fakultaet

gestartet.

Mit Hilfe des C-Compilers können Sie aber nicht nur kleine Programmierprojekte selbst realisieren; vielmehr sind Sie in der Lage, durch Kompilieren von Quellen Linux-Anwenderprogramme ganz Ihren Anforderungen bzw. Ihrer Hardware anzupassen.

Java

Ubuntu bietet Ihnen in der Multiverse-Sektion die original Java-Umgebung von Sun. Möchten Sie damit Java-Projekte realisieren, so benötigen Sie in jedem Fall die Pakete sun-java5-jdk und sun-java5-source.

Um die Graphikfä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 folgenden Befehl übersetzt:

user$ javac treppe.java

Dadurch wird eine Java-Klassendatei treppe.class generiert, die allerdings nicht eigenständig lauffähig ist. Binden Sie die Klasse folgendermaßen in eine HTML-Datei namens treppe.html ein:

<HTML> 
<BODY> 
  <APPLET code="treppe.class" width=200 height=200> 
  </Applet> 
</BODY> 
</HTML>

Nun können Sie das Applet im Appletviewer, der zum Sun-Java-Paket gehört, folgendermaßen testen (Abbildung 15.2):

user$ appletviever treppe.html

Abbildung 15.2    Der Appletviewer

Wenn das klappt, dann lässt sich das Applet auch in jedem beliebigen Browser darstellen. Selbstverständlich haben Sie auch die Möglichkeit, browserunabhängige Java-Applikationen zu erstellen. Das folgende Beispiel wurde dem beliebten Java-Buch »Java ist auch eine Insel« von Christian Ullenboom, das als Openbook unter http://www.galileocomputing.de für jedermann frei verfügbar ist, entnommen:

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, anschließend können Sie das Programm über

user$ java Fakultaet

starten. Im vorliegenden Fall wird die Java-Mathematikbibliothek 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 keine große Zukunft, falls sich Softwarepatente auf breiter Basis durchsetzen.

Unter Ubuntu sind einige (wenn auch veraltete) Monopakete integriert. Eine brauchbare Entwicklungsumgebung lässt sich durch die Installation folgender Pakete installieren:

  • mono
  • mono-devel
  • gtk-sharp

Das letzte Paket stellt Bibliotheken zur Erstellung von GTK-Programmen in Verbindung mit dem C#-Compiler des Monopakets zur Verfügung.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux






Ubuntu GNU/Linux
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 3 Stunden
 Ubuntu-Training
In 28 kostenlosen Video-Lektionen macht Sie Rainer Hattenhauer mit Ubuntu GNU/Linux vertraut.
Zu den Videos

 Buchtipps
Zum Katalog: Ubuntu GNU/Linux - Das Video-Training für Einsteiger und Umsteiger






 Ubuntu GNU/Linux
 Das Video-Training


Zum Katalog: Linux






 Linux


Zum Katalog: Debian GNU/Linux Etch






 Debian GNU/Linux


Zum Katalog: OpenOffice.org 2.0 - Einstieg und Umstieg






 OpenOffice.org 2.0
 Einstieg und Umstieg


Zum Katalog: OpenOffice.org 2.0 - Video-Training






 OpenOffice.org 2.0
 Video-Training


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de