Vergleich Programmiersprache und Lautsprache

Seit ein paar Wochen beschäftige ich mich mit Perl, weil ich jemanden anbot, ihr Programmieren beizubringen. Die Wahl der Programmiersprache überließ ich ihr (ausgenommen Java). Nun kam die Frage auf, welche Parallelen zwischen Programmiersprachen und gesprochenen Sprachen bestehen. Ich möchte mich der Frage in mehreren Artikeln nähern.

Constructing meaning from text is not a separate literacy skill, but a merging of all acquired...
„Constructing meaning from text
is not a separate literacy skill,
but a merging of all acquired…“
von Ken Whytock (CC BY-NC)

Zunächst einmal meine Annäherung an Programmiersprachen (von einem mathematischen Hintergrund):

Ich verstehe Programmiersprachen als aus Funktionen aufgebaut: Ich gebe Argumente (x,y) an eine Subroutine (&sum()) und erhalte ein Ergebnis (z). Dieses kann ich weiterverarbeiten (print). Ich möchte es kurz an einem Beispiel in Perl erläutern:

use 5.0101;
use strict;
use warnings;

my $x = 1;
my $y = 2;
my $z = &sum($x,$y);
print("$x + $y = $z\n");

sub sum {
  my $summand1 = $_[0];
  my $summand2 = $_[1];
  return ($summand1 + $summand2);
}

Den obigen Code in eine Datei (sagen wir alphabet.pl) speichern und mit perl alphabet.pl aufrufen.


Aber es ging in der Frage ja um eine gesprochene Sprache!

Unsere europäischen Sprachen setzen sich aus Lauten zusammen. Allgemeiner kann man ein Alphabet zugrunde legen. Buchstaben eines Alphabets werden zu Wörtern zusammengesetzt, die dann Sätze bilden.

Buchstaben

Buchstaben in Programmiersprachen sind die Menge der erlaubten Zeichen für Variablen und Funktionen. Für Perl sind das:

  • Zahlen
  • Buchstaben
  • Unterstrich

Daraus kann ich mir meine Bezeichner zusammensetzen. Oben waren das beispielsweise x, y und z. Irgendein anderes Zeichen (beispielsweise Minus) führt zu einem Kompilier-Fehler (probiert es aus!). Übrigens darf eine Variable nicht mit einer Ziffer anfangen …
Das $-Zeichen dient dabei als Hinweis auf eine Variable. Das my macht die Variable lokal. Was es damit auf sich hat, erkläre ich in einem anderen Artikel.

Das =-Zeichen kann so verstanden werden, dass wir dem Symbol auf der linken Seite, den Wert (oder die Aussprache in einer gesprochenen Sprache) zuordnen.

Wörter

Nur mit Buchstaben herumspielen wird schnell langweilig. Setzen wir sie also zusammen und bilden Wörter!

Bestimmt bist du oben über &sum() und print gestolpert. Beides sind Funktionen (oder in Perl-Sprech: Subroutinen). In dem Sinne sind sie etwas komplexer als Buchstaben. Der Unterschied liegt darin, dass print von Perl bereitgestellt wird, während wir &sum() selbst definiert haben. Es gibt mehrere Möglichkeiten, Subroutinen aufzurufen, wobei mit beginnendem & und abschließendem () die sauberste ist.

Was macht nun &sum?

Eine Summe definieren. Dabei speichern wir die übergebenen Variablen ($_[0] und $_[1]) zunächst lokal in $summand1 und $summand2. Mit return geben wir einen Wert zurück. Hier möchten wir zunächst einen Ausdruck ($summand1 + $summand2) bestimmen. Theoretisch könnten wir diesen auch in einer eigenen Zeile (my $summe = $summand1 + $summand2) setzen und das Ergebnis in einer dritten Variable ($summe) speichern. So sparen wir aber eine Zeile Code 🙂

Apropos Codezeilen sparen: Die umgebenden {} fassen alles darin zu einem Block zusammen. Aus Sicht von Perl besteht der Inhalt aus einer Zeile. Dieses Konzept findet sich auch in anderen Programmiersprachen.

Sätze

Wenn wir die obigen Wörter zusammenfügen, erhalten wir einen Satz. Ich lege die Analogie zu einem ausführbaren Programm.

Mehrere Programme können in ein Modul zusammengefasst werden, was vielleicht einem Absatz in der Lautsprache entspricht. Mehrere Module bilden eine Anwendung. Das mag man mit einem Kapitel vergleichen. Es wird also immer komplexer. Aber alles lässt sich wieder auf ganz elementare Bausteine herunterbrechen 🙂

Advertisements

Ein Gedanke zu “Vergleich Programmiersprache und Lautsprache

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s