Diskussion:Einrückungsstil

message: Die Schreibweise z--, nicht --z, stammt wie auch das Beispiel direkt aus  also bitte nicht einfach gedankenlos ändern, sondern erst die GNU Code Conventions lesen. Außerdem ist z-- wesentlich gebräuchlicher als --z, siehe auch Diskussion:Beautifier --ChristianHujer 20:55, 3. Apr 2005 (CEST)
replies: text: Das ist nicht gedankenlos. Im Gegenteil. Siehe Diskussion:Beautifier. Also --z verwenden! --217.95.168.102 20:16, 5. Apr 2005 (CEST)
replies: text: Offensichtlich doch gedankenlos. Bei den meisten heutigen Compilern und CPUs besteht zwischen --z und z-- kein Unterschied. Mit einem Uralt-Compiler auf einem Motorola 68000 (1979) macht das gerade mal 4 Taktzyklen aus. Es ist nicht die Aufgabe der Programmierer, sich um solche Kleinigkeiten zu kümmern. Optimierung auf dieser Ebene ist Compiler-Aufgabe. Außerdem wie gesagt das Beispiel ist ein *ZITAT* aus der genannten Quelle und sollte gerade deshalb nicht verändert werden. Und damit die anderen Beispiele sich ausschließlich in Bezug auf die Einrückung unterscheiden, habe ich sämtliche Änderungen wieder rückgängig gemacht.--ChristianHujer 00:41, 7. Apr 2005 (CEST)

text: Achja, gerade getestet mit gcc ohne Optimierung sowie javac (1.5.0_01): kein Unterschied zwischen i++ und ++i. Es ist also wirklich unsinnig, wegen alten Prozessoren und alten Compilern von vor 20 Jahren auf ++i zu bestehen. Für 99% der Programmierer macht das keinen Unterschied.--ChristianHujer 00:50, 7. Apr 2005 (CEST)

text: Allerdings ist die Prefix-Syntax einfacher zu verwenden, wenn man Operatoren ueberladet. -- Davidkra 19:29, 19. Jul. 2009 (CEST)

message: M.E. kann (besser: sollte!) der Beitrag sinnvoller strukturiert werden:
1. Teil: Einrückung als Element der Syntax von Programmiersprachen, um die Blockstruktur einfach zu kodieren
Zunächst ist zu bemerken, dass bereits 1965 von Peter Landin vorgeschlagen wurde, die Einrückung als syntaktisches Element einzuführen -- dieser Vorschlag wurde mit der Programmiersprache ISWIM (»If you See What I Mean«) realisiert, wurde aber nicht in ALGOL 58 oder ALGOL 60 aufgenommen.
Unter den heute verbreitet verwendeten Programmiersprachen enthält namentlich die Programmiersprache Python die Einrückung als syntaktisches Element. Auch Haskell arbeitet mit syntaktisch vorgeschriebener Einrückung. 
Dann haben syntaktisch korrekte Programme in diesen Programmiersprachen immer eine vernünftige Einrückung -- die Einrückungstiefe (= Anzahl der Leerzeichen oder auch die Expansion des Tabulatorzeichens) ist allerdings syntaktisch nicht exakt vorgeschrieben.
Hier könnte m.E. ein Beispiel folgen.
2. Teil: Einrückung zur zusätzlichen optischen Unterstützung der synataktisch bereits vorgenommen Blockstrukturierung
Die Programmiersprache ALGOL wurde entwickelt, damit Quellcode publiziert werden konnte. Daher kam der Doppelcodierung der Blockstruktur einmal durch Begin-End-Konstrukte und zum anderen durch das typographische Element der optischen Einrückung eine besondere Bedeutung zu.
Folgesprachen der ALGOL-Familie behielten diese Doppelkodierung der Blockstruktur bei.
hier Beispiele:
ALGOL 58/60
Simula 67 
ggf. ALGOL 68
Pascal
Modula-2
Oberon
-- L. Humbert Fr 30. Jul 15:04:55 CEST 2010 (nicht signierter Beitrag von 91.40.169.249 (Diskussion) 15:05, 30. Jul 2010 (CEST)
thread_title:  Grundsätzliches 

message: Der Überschrift vermag ich wenig hinzuzufügen...
Lambda-Funktionen sind in Python einfache Funktionen, die lediglich aus (optionalen) Argumenten und einem Ausdruck bestehen, somit also keinerlei Schleifen, bedingte Anweisungen usw. enthalten. Eine Verbindung zum Pico-Stil erschließt sich mir nicht.--Tobias 15:25, 9. Dez. 2006 (CET)
replies: text: Das ist eine Übersetzung aus dem Englischen Wikipedia-Artikel. Ich habe den entsprechenden Teil gelöscht. --ChristianHujer 01:10, 3. Jan. 2007 (CET)
thread_title:  Was hat der Pico-Stil mit lambda-Funktionen zu tun? 

message: Warum sind in den Beispielen die return-Abweisungen so weit eingerückt? Logisch betrachtet müsste die return-Anweisung doch innerhalb einer Funktion um nur eine Ebene eingerückt werden!? --Seth Cohen 17:58, 15. Nov. 2010 (CET)
thread_title:  EInrückung der return-Anweisung 

message: – GiftBot (Diskussion) 17:03, 20. Dez. 2015 (CET)
thread_title:  {{Anker|deadurl_2015-10}} Defekte Weblinks 

message: Ich habe diesen Stil bereits einmal entfernt, da er vollkommen unbekannt ist und keinerlei Relevanz hat. Selbst im Forum der Skriptsprache AutoHotkey ist der Stil zu 99% unbekannt (abgesehen von den entsprechenden Posts der Erfinders). Der "Erfinder" ist offenbar ein Informatiker der auch unter dem Namen SL5 eine werbliche Website betreibt.
Ich entferne diesen Stil nochmals und bitte vor einer eventuellen Revertierung um Belege, die die Relevanz - entgegen meiner Ansicht - belegt. Google liefert auch hauptsächlich nur Wiki-Klone und diverse Nennungen durch den Erfinder selbst. Die bisherigen Belege sind auch nur Links auf das Github-Konto und eine Webseite des sogenannten SL5. Sämtliche relevanten Wiki-Bearbeitungen erfolgten außerdem durch ein Ein-Themen-Konto.
Der Stil hat sich ja nun doch einige Zeit in Wikipedia gehalten - aber irgendwann sollte mit der Eigenwerbung auch mal Schluss sein.--Kramer ...Pogo? 19:10, 26. Mär. 2019 (CET)
thread_title:  SL5small-Stil 

message: Ich denke, dass der Ratliff-Stil mehr Aehnlichkeit mit dem Whitesmith-Stil hat als mit 1TBS. Er unterscheidet sich von diesem naemlich nur dadurch, dass die oeffnende Klammer nicht alleine steht (allerdings nur in C, nicht aber in HTML, btw. Das HTML-Beispiel scheint mir mehr Whitesmith zu entsprechen als Ratliff). Die groessere Aehnlichkeit zu Whitesmith statt zu 1TBS wird deutlich wenn man sich "else" anschaut. Meiner Meinung nach sollte Ratliff zudem nicht separat sondern als Variante von Whitesmith gefuehrt werden. --Meillo (Diskussion) 15:34, 7. Apr. 2019 (CEST)
thread_title:  Ratliff-Stil Aehnlichkeit 

message: Es fehlt IMO eine noetige Unterscheidung zwischen dem originalen K&R-Stil, bei dem Einzelstatements ohne Block (d.h. geschweifte Klammern) stehen, und 1TBS, wo immer ein Block genutzt wird.
K&R (Bloecke nur da wo sie noetig sind, in diesem Beispiel an keiner Stelle):
int euklid(int a, int b)
{
	if (a == 0)
		return b;
	while (b != 0)
		if (a > b)
			a -= b;
		else
			b -= a;
	return a;
}
1TBS (Bloecke bei jeder Kontrollstruktur):
int euklid(int a, int b)
{
	if (a == 0) {
		return b;
	}
	while (b != 0) {
		if (a > b) {
			a -= b;
		} else {
			b -= a;
		}
	}
	return a;
}
Beim K&R-Stil braucht man die Bloecke nur wenn es sich um mehr als ein Statement handelt oder um das Dangling else-Problem zu loesen.
Bei 1TBS setzt man sie immer, weil die Idee hinter 1TBS ist, dass man Zeilen einfuegen und entfernen kann, ohne, dass man durch die Aktion andere Zeilen nacharbieten muss. Wenn man im obigen Beispiel in eines der "if"s eine weitere Anweisung einfuegt (z.B. eine printf()-Debug-Ausgabe), dann muss man beim K&R-Stil im gleichen Zug auch geschweifte Klammern einfuegen, bei 1TBS aber nicht.
Wenn ich meine Buecher wieder zur Hand habe, kann ich gerne originale Beispiele beitragen. Soweit ich weiss war das nicht nur eine Optimierung fuer den Buchdruck, sondern ist auch im Originalcode von Ken und Dennis so. Das kann man auch nachschauen.
Ich weiss nicht, ob und wann ich dazu komme, diesen Abschnitt zu ueberarbeiten, darum dokumentiere ich das vorerst mal hier. Kommentare und weiterer Input sind willkommen!
--Meillo (Diskussion) 16:25, 7. Apr. 2019 (CEST)
thread_title:  Block bei Einzelstatements (K&R vs. 1TBS)