Lyrik ~ Klinge
    Versuch einer Dichtung            

27 
 November 
 
2017


 

Auf der Suche nach einer Urklasse und einer Strukturanordnung des Weltwissens liebäugelte ich bisher mit benutzerdefinierten Variablentypen verschiedener Programmiersprachen: ‚Records‘ (Pascal), ‚Structures‘ (C, Ruby) als auch mit verschachtelten Hashes.
Ebenso befasste ich mich mit der Objektorientierten Programmierung und den Möglichkeiten der Klassenbildung und ihrer Vererbung von Eigenschaften (Attributen) und Methoden.

Im Prinzip ging es mir um die informationstechnische Umsetzung innerhalb einer geordneten, hierarchischen Struktur (Analogie: Bücherregal) gewisse Werte abzulegen (Analogie: Buch).
Die Struktur und die Datenspeicherung (von mir aus auch in einer eigenen, lesbaren Datei, allerdings keine interpretierbare CVS-Datei oder auslesbare SQL-Datenbank) waren mir wichtig.

Ich habe mich daher für die Verzeichnisstruktur von UNIX (1969) entschieden.

Mit Unix wurden einige bis heute maßgebliche Konzepte der Informationstechnik erstmals eingeführt, etwa das hierarchische, baumartig aufgebaute Dateisystem mit Ordnerstruktur.

Quelle: WikiPedia

Als mythologischer Nebeneffekt korrespondieren gewisse Termini in der Unix-Sprache mit dem Weltbaum in der nordischen Mythologie.


Yggdrasil, altnordisch Yggdrasill, auch: Weltesche, ist in der nordischen Mythologie der Name einer Esche, die als Weltenbaum den gesamten Kosmos verkörpert.

Quelle: WikiPedia

Root-/Wurzel-/Stammverzeichnis aller → Wurzel / Baumstamm
verzweigte Baumstruktur → Äste als Verzweigungen
Dateien → Blätter und Früchte

Eine Internet-Recherve ließ mich auf eine interessante Seite stoßen, wobei Punkt 1.8 meine Entscheidung untermauerte: Grundlagen der Informatik (Freies Gymnasium Borsdorf)

 
 
12 
 April 
 
2017


 

Pascal ist eine Anfang der 1970er Jahre entwickelte imperative Programmiersprache, die heute noch in älteren Anwendungen und zur einführenden Lehre ins Programmieren Verwendung findet. Im produktiven Bereich wurde sie mittlerweile von Sprachen wie Java abgelöst.

Pascal wurde von Niklaus Wirth an der ETH Zürich als Lehrsprache eingeführt, um die strukturierte Programmierung zu lehren.

Quelle: WikiPedia

Wie ein Maler seine Zeichnungen im Vorfeld mit Bleistift skizziert, so bietet eine objektorientierte Programmiersprache wie Pascal (bzw. deren Erweiterung „Object Pascal„) die Möglichkeit, eine amorphe Gedankenmasse in Sinnstrukturen zu gliedern, den Tonklumpen zu „formulieren“.
Merkmalssemantik und Prototypensemantik finden auch in der Programmierung Einzug mittels Klassen, Objekten, Attributen (Feldern) und Vererbungen [von Eigenschaften].

Der ästhetische Reiz bleibt dabei nicht aus und ereilt mich wie damals in den 80er Jahren auf dem Campingplatz in Italien beim Studium von ST Pascal+, insbesondere die flüssige Lesart der strukturellen Reinheit und Klarheit von Records. [1]Code is Poetry

type Mensch = class
       private
         Vorname: string;
         Nachname: string;
         Geburtstag: Date;
         Geschlecht: string;
       end;
 
     Berufstaetig = class(Mensch)
       private
         KontoNr: integer;
         Bankleitzahl: integer;
       public
         procedure GehaltZahlen;
       end;
 
     Manager = class(Berufstaetig)
       private
         Gehalt: real;
         Zulagen: real;
         AnzahlMitarbeiter: integer;
       end;
 
     Schueler = class(Mensch)
       private
         SchulKlasse: integer;
         Taschengeld: real;
       public
         procedure TaschengeldZahlen;
       end;

Hinter dem Schlüsselwort class steht in Klammer der Name des direkten Vorfahren.
Berufstaetig erbt also alle Attribute wie Vorname und Nachname von der Klasse Mensch und fügt noch eigene Attribute hinzu, die eben nur für Berufstätige gebraucht werden.
Manager erbt von Berufstaetig und somit auch von Mensch.

Quelle: Delphi-Source

Fußnoten   [ + ]

 
 
25 
 Februar 
 
2016


 

Quelle: Heinrich Hiller

Die Zusammenfassung von Datenstrukturen und Algorithmen nennt man Objekt.[1]C/C++. Von den Grundlagen der professionellen Programmierung. S. 777. Ulrich Kaiser, Christoph Kecher.

Unter einem Objekt versteht man die softwaretechnische Repräsentation eines realen oder gedachten, klar abgegrenzten Gegenstands oder Begriffs eines Anwendungsgebietes.
Das Objekt erfasst dabei alle relevanten statischen und dynamischen Aspekte des Gegenstands durch Attribute (statisch) und Methoden (dynamisch).[2]C/C++. Von den Grundlagen der professionellen Programmierung. S. 778. Ulrich Kaiser, Christoph Kecher.

Ein Objekt befindet sich zu jedem Zeitpunkt in einem genau definierten Zustand.
Dieser Zustand wird durch die Attribute des Objektes beschrieben:

Die Attribute eines Objekts enthalten Daten, die erforderlich sind, um den jeweiligen Zustand des Objekts vollständig und konsistent (Konsistenz (von lateinisch: con- ‚zusammen-‘ und sistere ‚stellen‘) bedeutet Beschaffenheit; Zusammenhalt, Geschlossenheit, Stimmigkeit. Quelle: Wikipedia) zu beschreiben.

Die Attribute (Eigenschaften) modellieren so die statischen Aspekte des Objekts. Atrribute können persistent oder transient.
Persistente Attribute behalten ihren Wert über die einzelne Verwendung des Objekts hinaus.
Transiente Attribute haben nur innerhalb einer Verwendung des Objekts Bedeutung.[3]C/C++. Von den Grundlagen der professionellen Programmierung. S. 779. Ulrich Kaiser, Christoph Kecher.

Neben den Eigenschaften eines Objekts ermöglichen Methoden, das Verhalten der Objekte auszuprägen.

Die Methoden eines Objekts beschreiben alle Operationen/Funktionen, die das Objekt ausführen kann und modellieren so das dynamische Verhalten des Objekts.
Auf die Attribute (Eigenschaften) des Objekts wird nur über die Methoden des Objekts zugegriffen. Auf diese Weise stellt das Objekt sicher, dass es immer einen konsistenten Zustand hat, der von außen nicht korrumpiert werden kann.[4]C/C++. Von den Grundlagen der professionellen Programmierung. S. 779. Ulrich Kaiser, Christoph Kecher.

Quelle: Heinrich Hiller

Beides zusammen, Eigenschaften und Methoden, bestimmen das Verhalten eines Objekts.
Bei genauerem Hinsehen fällt auf, dass die Eigenschaften lediglich mit dem Namen der Eigenschaft definiert sind (z.B. Farbe). Eine konkrete Ausprägung ist nicht gegeben (z.B. rot oder blau). Eine Beschreibung ohne konkrete Ausprägung wird in der OOP als Klasse bezeichnet. Eine Klasse beschreibt eine Gruppe von Objekten, die die gleichen Eigenschaften und Methoden besitzen. Erst die konkrete Ausprägung lässt eine Klasse zu einem Objekt werden.
Bei einer Klasse handelt es sich um eine abstrakte Zusammenfassung mehrerer Objekte mit gleichem Verhalten. In ihr werden grundlegende Eigenschaften und Methoden eines Objekts definiert. [5]Quelle: Heinrich Hiller

Unter einer Klasse verstehen wir die softwaretechnische Beschreibung eines Bauplans (Attributendeklarationen und Methodendefinitionen) für ein Objekt. Je nach Detaillierungsgrad des Bauplans unterscheiden wir dabei zwischen instantiierbare Klassen (auch allgemein Klassen) und abstrakte Klassen.
Instantierbare Klassen sind Klassen, deren Bauplan so detailliert ist, dass konkrete Objekte mit diesem Plan erzeugt werden können. Der Prozess, mit dem konkrete Objekte aus dem Bauplan erzeugt wrden, heißt Instantiierung.
Ein im Wege der Instantiierung aus einer Klasse entstandenen Objekts bezeichnen wir auch als Instanz seiner Klasse.
Die Attribute einer Instanz sind dann mit konkreten Werten versehen.[6]C/C++. Von den Grundlagen der professionellen Programmierung. S. 780 ff. Ulrich Kaiser, Christoph Kecher.

Fußnoten   [ + ]