<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Quelltextformatierung</id>
	<title>Quelltextformatierung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Quelltextformatierung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Quelltextformatierung&amp;action=history"/>
	<updated>2026-05-28T02:03:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Quelltextformatierung&amp;diff=297327&amp;oldid=prev</id>
		<title>imported&gt;ShalokShalom am 7. September 2017 um 21:00 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Quelltextformatierung&amp;diff=297327&amp;oldid=prev"/>
		<updated>2017-09-07T21:00:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Als &amp;#039;&amp;#039;&amp;#039;Quelltextformatierung&amp;#039;&amp;#039;&amp;#039; bezeichnet man die Formatierung eines [[Quelltext]]s nach bestimmten Regeln. Zweck ist das Verbessern der Programmcode-Lesbarkeit, die eigentliche Funktionalität der Programme ist davon nicht betroffen.&lt;br /&gt;
&lt;br /&gt;
Quelltextformatierung ist als Funktion in manchen [[Integrierte Entwicklungsumgebung|integrierten Entwicklungsumgebungen]] enthalten und wird dabei bei der Erzeugung von Quelltext angewendet. Es gibt aber auch eigenständige [[Computerprogramm|Programme]], so genannte &amp;#039;&amp;#039;Quelltext-Formatierer&amp;#039;&amp;#039; (engl. {{lang|en|&amp;#039;&amp;#039;source formatter&amp;#039;&amp;#039;}} oder auch {{lang|en|&amp;#039;&amp;#039;beautifier&amp;#039;&amp;#039;}}), die es dem [[Softwareentwickler|Programmierer]] ermöglichen, bereits vorhandenen Quelltext in ein gut bzw. besser lesbares Format zu bringen.&lt;br /&gt;
&lt;br /&gt;
Die Verwendung einer Quelltextformatierung ist besonders dann nützlich, wenn sich der Programmierer an einen vorgegebenen [[Programmierstil]] halten muss, der ihm vorschreibt, wie er seinen Quelltext zu gestalten hat.&lt;br /&gt;
&lt;br /&gt;
Insbesondere bei Programmiersprachen, die eine [[C (Programmiersprache)|C]]-ähnliche [[Syntax]] haben, z.&amp;amp;nbsp;B. [[C++]], [[Java (Programmiersprache)|Java]], [[C-Sharp|C#]], ist die Quelltextformatierung weit verbreitet.&lt;br /&gt;
&lt;br /&gt;
In den Programmiersprachen [[F-Sharp|F#]], [[Elm (Programmiersprache)|Elm]], [[Python (Programmiersprache)|Python]], [[Occam]] und einigen anderen ist Quelltextformatierung ein Syntaxelement. Blöcke werden hier durch ihre Einrückung festgelegt, wodurch [[Leerraum|Leerzeichen]] eine syntaktische Bedeutung bekommen.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Quelltext-Formatierer sind die [[Freie Software|freien]] Programme &amp;#039;&amp;#039;indent&amp;#039;&amp;#039; und &amp;#039;&amp;#039;[[astyle]]&amp;#039;&amp;#039;. Auch [[Texteditor|Editoren]] wie [[Emacs]] oder [[Vim]] verfügen intern über entsprechende Formatierungshilfen, ebenso wie [[Visual Studio]].&lt;br /&gt;
&lt;br /&gt;
== Vorteile der Quelltextformatierung ==&lt;br /&gt;
* Einhaltung eines [[Programmierstil]]s (engl. {{lang|en|&amp;#039;&amp;#039;code convention&amp;#039;&amp;#039;}})&lt;br /&gt;
* Vereinheitlichung des Quelltextlayouts&lt;br /&gt;
* Erhöhung der Lesbarkeit&lt;br /&gt;
* Erhöhung der Wartbarkeit&lt;br /&gt;
&lt;br /&gt;
Die Quelltextformatierung hat zum Ziel, den Programmierern die Arbeit mit Quelltexten zu erleichtern, insbesondere bei der Übernahme von Quelltexten anderer Programmierer oder der Arbeit in Teams. Einige quasigenormte Varianten finden sich im Artikel [[Einrückungsstil]].&lt;br /&gt;
&lt;br /&gt;
== Änderungen bei der Quelltextformatierung ==&lt;br /&gt;
* Vereinheitlichung der Einrückung, Einhaltung eines bestimmten Einrückungsstils&lt;br /&gt;
* Entfernen oder Hinzufügen von Blöcken bei modifizierenden Anweisungen wie &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt; usw.&lt;br /&gt;
* Vereinheitlichung von Leerzeichen vor der Argumentliste, z.&amp;amp;nbsp;B.&lt;br /&gt;
** Leerzeichen vor den Argumenten modifizierender Anweisungen,&lt;br /&gt;
** keine Leerzeichen vor den Argumentlisten von Funktionsaufrufen oder&lt;br /&gt;
** keine Leerzeichen vor der Parameterliste einer Funktionsdeklaration.&lt;br /&gt;
* konsequent einheitliche Positionierung der {} für Blöcke&lt;br /&gt;
* Einfügen von () gemäß der Operatorpriorität bei Operatoren mit allgemein unklarer Priorisierung&lt;br /&gt;
&lt;br /&gt;
Weiter fortgeschrittene Algorithmen für Quelltextformatierung beherrschen außerdem:&lt;br /&gt;
* Vereinheitlichung von Symbolnamen&lt;br /&gt;
* Umbenennung von Symbolen gemäß Konventionen, z.&amp;amp;nbsp;B. m_MainControl in mainControl&lt;br /&gt;
* Ergänzung von Rümpfen für Dokumentationskommentare&lt;br /&gt;
* Übernahme von Aufgaben von Code-Analysewerkzeuge, bis hin zum Vorschlag von [[Refactoring|Refaktorierungen]]&lt;br /&gt;
&lt;br /&gt;
== Beispiele für die Arbeitsweise ==&lt;br /&gt;
Ausgangsquelltext:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   for (int i=0;i&amp;lt;10;i++)&lt;br /&gt;
    if( values[i]&amp;gt;0&amp;amp;&amp;amp;values[ i+1 ]&amp;gt;0 )&lt;br /&gt;
    {&lt;br /&gt;
            out.println (&amp;quot;found!&amp;quot;);&lt;br /&gt;
 break;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ergebnis der Formatierung:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
    if (values[i] &amp;gt; 0 &amp;amp;&amp;amp; values[i + 1] &amp;gt; 0) {&lt;br /&gt;
        out.println(&amp;quot;found!&amp;quot;);&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Änderungen:&lt;br /&gt;
* Grundsätzlich Blöcke hinter for, if u.&amp;amp;nbsp;ä. auch wenn Einzelanweisungen erlaubt sind (erlaubt leichtes Ergänzen von Anweisungen im Block)&lt;br /&gt;
* Die Einrückung wurde konsequent vereinheitlicht (auf je 4 Leerzeichen)&lt;br /&gt;
* öffnende geschweifte Klammer auf gleicher Zeile (ein häufiger Stil in Java und C++)&lt;br /&gt;
* auflockernde Leerzeichen wurden streng nach Regeln gesetzt:&lt;br /&gt;
** hinter Schlüsselwörtern wie if, while…&lt;br /&gt;
** kein Leerzeichen hinter öffnender und vor schließender runder Klammer (analog eckige Klammern)&lt;br /&gt;
** Raum zwischen binären Operatoren (solche mit zwei Operanden)&lt;br /&gt;
&lt;br /&gt;
Auch wenn der hier dargestellte Stil – z.&amp;amp;nbsp;B. in der Java-Programmierung&amp;lt;ref&amp;gt;[http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html &amp;#039;&amp;#039;Code Conventions for the Java Programming Language.&amp;#039;&amp;#039;] In: &amp;#039;&amp;#039;oracle.com&amp;#039;&amp;#039;, [[Sun Microsystems]], 20. April 1999. (englisch)&amp;lt;/ref&amp;gt; – relativ verbreitet ist, gibt es eine Vielzahl von anderen Stilen, die teils durch die Tradition, teils durch die Eigenschaften der jeweiligen [[Programmiersprache]] begründet sind.&lt;br /&gt;
&lt;br /&gt;
== Nachteile des Einsatzes ==&lt;br /&gt;
&lt;br /&gt;
Programme, die die Quelltextformatierung durchführen, sind nicht in der Lage, wie Menschen die Bedeutung eines Quelltextes zu erfassen. Die Regeln für die Umformatierung sind sehr schematisch und ausdruckslos. Bewusst vorgenommene, dem Zweck der Verständlichkeit dienende Verstöße gegen die den Umformatierungsregeln zu Grunde liegenden Konventionen gehen verloren. Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int width = minwidth*2 + padding*4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
wird unter Umständen zu&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int width = minwidth * 2 + padding * 4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Konventionsverstoß des Programmierers diente offensichtlich dem Zweck, die Verständlichkeit des Programms zu erhöhen, indem er durch das Weglassen von Leerzeichen die höhere Priorität der Multiplikation (*) im Vergleich zur Addition (+) zum Ausdruck brachte. Diese nicht für das Programm aber für einen lesenden Programmierer relevante Information ging durch die Quelltextformatierung verloren. Ist die [[Operatorrangfolge]] nicht eindeutig erkennbar, sollten stattdessen Klammern gesetzt werden, durch diese können auch Fehler durch falsch angenommene Rangfolgen vermieden werden.&lt;br /&gt;
&lt;br /&gt;
Als weiterer Nachteil wird häufig angeführt, dass Quelltextformatierung den „persönlichen Stil“ eines Programmierers zerstöre. Dem kann meist entgegengesetzt werden, dass es beim Programmieren im Team nicht auf den persönlichen Stil und das Ego Einzelner ankommt, sondern darauf, dass dem Team als ganzes ein angenehmes und zügiges Arbeiten ermöglicht werden sollte. Das bedeutet, dass auf persönlichen Stil zu verzichten und eine für das gesamte Team gültige Regelung zu befolgen ist.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;ShalokShalom</name></author>
	</entry>
</feed>