Einführung in den Stil der Formatierung (Insbesondere die Einrückung) im Rahmen der Lehre des Programmierens. [] (Quelltext, Zeilen einrücken, Formatierung, Einrückung, formatieren, ), Lektion, Seite 720054
http://www.purl.org/stefan_ram/pub/programmieren_formatierungsstil_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

Formatierungsstil

„Es gibt viele, mancher wuerde sagen zu viele, sogenannte Bracing-Styles. Und das wichtigste was man dazu wissen muss ist, IMHO, dass es egal ist welchen man verwendet solange man den verwendet den ich verwende“ — Zoran Cutura

Die Festlegung der äußeren Form eines Programmes nennt man Formatierung. Sie sollte so erfolgen, daß das Programm möglichst übersichtlich aussieht. Es gibt aber unterschiedliche Ansichten darüber, wie das am besten geschieht.

Dieser Text empfiehlt eine bestimmte Formatierung. Erfahrene Programmierer können davon abweichen. Es ist aber wichtig, eine Art der Formatierung konsequent anzuwenden.

Einrückung

Wenn das erste sichtbare Zeichen einer Zeile nicht an der Position Null steht, sondern weiter rechts an der Position i, dann ist die Zeile um i  Zeichen eingerückt. Das folgende Beispiel zeigt zwei Zeilen: Die erste ist nicht eingerückt und die zweite ist um zwei Leerzeichen eingerückt. Zur besseren Lesbarkeit wird unter den beiden Beispielzeilen ein Zeilenlineal abgedruckt.

Einrückung (zwei Beispielzeilen)
### 
### 
01234567 
Position

Da Tabulatorzeichen unterschiedlich interpretiert werden, sind sie zur portablen Einrückung unbrauchbar. Zur Einrückung werden deshalb ausschließlich Leerzeichen verwendet.

Zum Ausdruck und zur Anzeige von Quelltext sollte eine dicktengleiche Schrift verwendet werden, also eine Schrift, bei der alle Zeichen, einschließliche des Leerzeichens, die gleiche Breite  haben.

Ein einzelnes Leerzeichen würde die Einrückung nicht immer deutlich erkennbar hervorheben, da auch die Position mancher Zeichen um etwa diese Breite schwanken können. Daher wird die Einrückung immer in Stufen von zwei  Zeichenbreiten verändert.

In vielen Programmiersprachen gibt es Klammern oder klammerartige Strukturen, die ineinander verschachtelt werden können.

Die Einrückung soll helfen, leicht zu erkennen, welche Struktur wie tief verschachtelt ist, wo sie beginnt und wo sie endet.

Wenn ein Zeichen in j  Klammerpaaren enthalten ist, dann hat es die Verschachtelungstiefe j.

In den folgenden vier Zeilen hat das Zeichen "x" beispielsweise jeweils die Verschachtelungstiefe Null, Eins, Zwei, Drei bzw. Vier.

Verschachtelungstiefe (fuenf Beispiele)
0 ---x---( --- ) 
1 ---( x )--- 
2 ---[]---(-[]--{ x--- })--- 
3 ---( ---( ---( ---( ---( --- )--- )-x- )--- )--- ) 
4 ---[]---[]---[ []]---[ [ [ [ [] ]]][ [ [] ]][ [ [ x ]][ [] ]]]

Die Verschachtelungstiefe des Zeichens "x" ist in den Beispielen nicht immer auf den ersten Blick zu erkennen. Die folgende Grundregel der Einrückung soll dabei helfen.

Die Verschachtelungstiefe des ersten sichtbaren Zeichens einer Zeile bestimmt die Einrückung der Zeile.

Zu dieser Formatierung paßt es, wenn nach einer öffnenden Klammer und vor einer schließenden Klammer ein Leerzeichen gemacht wird, weil sich dann eine einheitliche Ausrichtung des in den Klammern enthaltenen ergibt.

Würde kein Leerzeichen nach einer öffnenden Klammer stehen oder würde um mehr oder weniger als um zwei Zeichen eingerückt werden, würden in den Klammern enthaltene Textteile nicht untereinander ausgerichtet beginnen. Die Abbildungen zeigen dies für das Beispiel des Ausdrucks "( 2 + 3 + 4 )".

Genau ein Leerzeichen nach öffnender Klammer (einheitlich)
( 2 + 
3 + 
4 ) 
01234567 
Position

Kein Leerzeichen nach öffnender Klammer (uneinheitlich)
(2 + 
3 + 
4 ) 
01234567 
Position

Einrueckung mit genau drei Leerzeichen (uneinheitlich)
( 2 + 
3 + 
4 ) 
01234567 
Position

Nun soll die Ermittlung der Einrückung anhand der Verschachtelungstiefe noch einmal im Detail erklärt werden.

Das erste Beispiel zeigt eine Zeile mit Einrückung Null. Zwar enthält sie verschachtelte Klammerpaare, doch maßgeblich ist nur die Verschachtelung des ersten Zeichens. Da das Zeichen "x" nicht in irgendwelchen Klammerpaaren enthalten ist, wird es auch nicht eingerückt. In der folgenden Abbildung steht unter jedem Zeichen seine Verschachtelungstiefe.

Verschachtelung A (Beispiel)
x--( ---( --- )--- )- 
000011111222222111110 
Verschachtelungstiefe

Eine Klammer selber hat stets noch die Verschachtelungstiefe des vorherigen Zeichens. Eine Klammer verändert zwar die Verschachtelungstiefe, aber diese Änderung wird erst ab dem nächsten Zeichen wirksam. Da die erste Klammer in dem folgenden Beispiel die Verschachtelungstiefe Null hat, wird auch diese Zeile nicht eingerückt.

Verschachtelung B (Beispiel)
( x--[ y--- ]z-- )--- 
011111222222211111000 
Verschachtelungstiefe

Wenn nun aber die Zeile aus dem Beispiel „Verschachtelung B“ auf zwei Zeilen umbrochen wird, dann wird eine Einrückung nötig. Das Zeichen "x" hat Verschachtelungstiefe Eins, da es in einem Klammerpaar enthalten ist, nämlich den runden Klammern. Also wird bei Beginn einer neuen Zeile mit dem Zeichen "x" um zwei Leerzeichen eingerückt.

Die Zahlenangabe in der letzten Zeile der Abbildung ist ab jetzt nicht mehr die Verschachtelungstiefe. Es handelt sich ab jetzt um ein „Zeilenlineal“, das helfen soll, die Tiefe der Einrückung leicht abzulesen.

Verschachtelung C (Beispiel)
(  
x[ y ]z ) 
01234567 
Position

Die öffnende eckige Klammer hat ebenfalls Verschachtelungstiefe Eins, denn eine Klammer hat immer die Verschachtelungstiefe des vorangehenden Zeichens, so daß bei Beginn einer neuen Zeile mit der öffnenden eckigen Klammer auch um zwei Zeilen einzurücken ist.

Verschachtelung D (Beispiel)
( x 
[ y ]z ) 
01234567 
Position

Wird aber eine neue Zeile mit dem Zeichen "y" begonnen, so muß um zwei Leerzeichenpaare eingerückt werden, da dieses Zeichen die Verschachtelungstiefe Zwei hat.

Verschachtelung E (Beispiel)
( x[  
y ]z ) 
01234567 
Position

Das gleiche gilt auch wieder für die schließende eckige Klammer.

Verschachtelung F (Beispiel)
( x[ y  
]z ) 
01234567 
Position

Nach der schließenden eckigen Klammer vermindert sich die Verschachtelungstiefe wieder um Eins.

Verschachtelung G (Beispiel)
( x[ y ]  
z ) 
01234567 
Position

Die Verschachtelungstiefe des Zeichens "z" gilt auch noch für die nachfolgende runde Klammer.

Verschachtelung H (Beispiel)
( x[ y ]z  

01234567 
Position

Die Regel zum Einrücken macht keine Vorschrift darüber, wann  eine neue Zeile begonnen werden muß. Sie sagt nur, wie  dann eingerückt werden soll, wenn  eine neue Zeile begonnen wurde.

Alle Einrückungen auf einmal kann man im Beispiel „Verschachtelung K“ sehen, wo jedes Zeichen auf einer Zeile für sich steht.

Verschachtelung K (Beispiel)
(  
x  
[  
y  
]  
z  

01234567 
Position

Übungsaufgabe Unter jedes Zeichen des folgenden Textes soll seine Verschachtelungstiefe geschrieben werden.

Verschachtelung L (Uebungsaufgabe)
( a( b( c )d( e )f( g )h( i j k l )m( n )o( q( r )s( t )))) 
 
Verschachtelungstiefe

Übungsaufgabe Der folgende Text soll so formatiert werden, daß alle mit dem Zeichen "^" gekennzeichneten Zeichen einen neue Zeile beginnnen, die jeweils nach der obigen Grundregel eingerückt werden soll. Ansonsten darf nichts an dem Text verändert werden.

Verschachtelung M (Uebungsaufgabe)
( a( b( c )d( e )f( g )h( i j k l )m( n )o( q( r )s( t )))) 
^ ^ ^ ^^ ^ ^ ^ ^ ^ ^ ^^ ^^

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Netzpostadresse von Stefan Ram: "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen)   |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz