Diskussion:Selbstübersetzung (Compiler)
Lemma
[Quelltext bearbeiten]Das Lemma ist zwar eine zutreffende deutsche Übersetzung von self-hosted, doch gibt es sie in deutschsprachiger Literatur in dieser Form nicht. Ich habe sie gewählt wegen des Verständlichkeitsgrundsatzes bei einem schwer zu erfassenden Thema („Oma-Tauglichkeit“) und eine Weiterleitung von self-hosting auf dieses Lemma angelegt. Ich würde gerne darüber sprechen, ob das Lemma, wenn auch mit gewissen Bauchschmerzen wegen WP:TF, aus Gründen der Verständlichkeit so behalten werden kann oder ob man es auf den Originalbegriff self-hosting verschiebt. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20221105012900-Lemma11
- Ist denn die Definition von self-hosted als Eigenschaft einer Programmiersprache überhaupt zutreffend? en: spricht durchgehend von einer Eigenschaft des Compilers. Die einzige Voraussetzung der Sprache ist, dass sie zur Maschinensprache kompilierbar sein muss. Ob self-hosting gegeben ist, ergibt sich dann jedoch aus dem Buildsystem. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20230810074100-Herzmut-2022110501290011
- Eine Programmiersprache ist mit ihrem Compiler oder Interpreter identisch; durch ihn werden die Möglichkeiten der Programmiersprachen realisiert oder begrenzt. Eine Programmiersprache, die weder das eine noch das andere hat, kann nicht als Programmiersprache bezeichnet werden, weil mit ihr nichts programmiert wird; dabei ist vor allem der Interpreter weniger als Computerprogramm, sondern mehr als ein Computersystem zu verstehen, welches in der Lage ist, Programmbefehle zu verarbeiten, unabhängig davon, ob es sich dabei um Hardware oder Software handelt oder ob zwischen dem Programm und der Ausführung Zwischeninstanzen stehen. Umgekehrt muss jedes Programm irgendwo irgendwann in Maschinensprache übersetzt werden, da es sonst nicht ausgeführt werden kann. Eine Programmiersprache trägt sich selbst, wenn ihr Compiler in dieser gleichen Sprache geschrieben werden kann und dieser auch einen neuen Compiler, oder eine neue Version dieses Compilers, erzeugt. Wenn das Build-System also keine neue Version des Build-Systems auf der Basis der von ihm übersetzten Sprache erzeugen kann, wobei das alte Build-System mit dem neuen identisch ist, umgekehrt aber nicht unbedingt, ist es nicht self-hosting. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240116154100-Matthäus Wander-2023081007410011
- Dass zwei Gegenstände voneinander abhängen, macht sie nicht identisch; es sind immer noch zwei unterschiedliche Gegenstände mit unterschiedlichen Eigenschaften. Für die gängigsten Programmiersprachen gibt es mehrere Compiler oder Interpreter. Bei Python kann beispielsweise CPython nicht seinen eigenen Sourcecode übersetzen, da dieser in C geschrieben ist, PyPy hingegen schon. Demnach ist PyPy selbsttragend und CPython nicht. Die Definition „Eine Programmiersprache trägt sich selbst, wenn ihr Compiler in dieser gleichen Sprache geschrieben werden kann und (...)“ deckt sich nicht mit der Definition aus Einzelnachweis 1: „A self-hosting compiler is one that can compile its own source code“ [1]. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240116202600-Herzmut-2024011615410011
- Du kannst aber mit CPython in Python ein Programm wie PyPy schreiben. Dass self-hosted languages gebootstrappt werden müssen, ist aber auch nichts Neues oder Ungewöhnliches. Insofern trifft die von dir erstzitierte Definition auf dein Beispiel Python zu. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240116225000-Matthäus Wander-2024011620260011
- Gibt es einen Beleg für die Definition einer self-hosted language? --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240117194200-Herzmut-2024011622500011
- Idempotenz. Der Compiler und die ihn beschreibende Sprache sind identisch. Aber für den Artikel bestehe ich nicht auf self-hosted languages, wenn self-hosted compilers dir plausibler erscheint. Aus meiner Sicht ist es das gleiche, also ist es mir dann auch gleich, ob nun die Sprache oder der Compiler als self-hosted bezeichnet wird. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118003000-Matthäus Wander-2024011719420011
- Die Begründung ist unschlüssig. Ein Compiler ist nicht dasselbe wie eine Programmiersprache. CPython != PyPy != Python. Idempotenz besteht nicht. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240118103000-Herzmut-2024011800300011
- Wenn ein Compiler nicht dasselbe ist wie (s)eine Programmiersprache, gibt es auch keine self-hosted Compiler. Darüber kannst du aber gern im Stillen weiter nachdenken; zur Sache tut dieser Teil der Diskussion nichts mehr. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118143500-Matthäus Wander-2024011810300011
- Wäre ein Compiler dasselbe wie die von ihm kompilierte Programmiersprache, dann würden unterschiedliche Compiler, die dieselbe Sprache unterstützen, dasselbe Binary erzeugen. Tun sie aber nicht. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240118211700-Herzmut-2024011814350011
- Verschiedene Compiler unterstützen ja auch nicht dieselbe Sprache, sondern wenn überhaupt, die gleiche. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240120134700-Matthäus Wander-2024011821170011
- Wäre ein Compiler dasselbe wie die von ihm kompilierte Programmiersprache, dann würden unterschiedliche Compiler, die dieselbe Sprache unterstützen, dasselbe Binary erzeugen. Tun sie aber nicht. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240118211700-Herzmut-2024011814350011
- Wenn ein Compiler nicht dasselbe ist wie (s)eine Programmiersprache, gibt es auch keine self-hosted Compiler. Darüber kannst du aber gern im Stillen weiter nachdenken; zur Sache tut dieser Teil der Diskussion nichts mehr. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118143500-Matthäus Wander-2024011810300011
- Die Begründung ist unschlüssig. Ein Compiler ist nicht dasselbe wie eine Programmiersprache. CPython != PyPy != Python. Idempotenz besteht nicht. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240118103000-Herzmut-2024011800300011
- Idempotenz. Der Compiler und die ihn beschreibende Sprache sind identisch. Aber für den Artikel bestehe ich nicht auf self-hosted languages, wenn self-hosted compilers dir plausibler erscheint. Aus meiner Sicht ist es das gleiche, also ist es mir dann auch gleich, ob nun die Sprache oder der Compiler als self-hosted bezeichnet wird. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118003000-Matthäus Wander-2024011719420011
- Gibt es einen Beleg für die Definition einer self-hosted language? --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240117194200-Herzmut-2024011622500011
- Du kannst aber mit CPython in Python ein Programm wie PyPy schreiben. Dass self-hosted languages gebootstrappt werden müssen, ist aber auch nichts Neues oder Ungewöhnliches. Insofern trifft die von dir erstzitierte Definition auf dein Beispiel Python zu. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240116225000-Matthäus Wander-2024011620260011
- Dass zwei Gegenstände voneinander abhängen, macht sie nicht identisch; es sind immer noch zwei unterschiedliche Gegenstände mit unterschiedlichen Eigenschaften. Für die gängigsten Programmiersprachen gibt es mehrere Compiler oder Interpreter. Bei Python kann beispielsweise CPython nicht seinen eigenen Sourcecode übersetzen, da dieser in C geschrieben ist, PyPy hingegen schon. Demnach ist PyPy selbsttragend und CPython nicht. Die Definition „Eine Programmiersprache trägt sich selbst, wenn ihr Compiler in dieser gleichen Sprache geschrieben werden kann und (...)“ deckt sich nicht mit der Definition aus Einzelnachweis 1: „A self-hosting compiler is one that can compile its own source code“ [1]. --Matthäus Wander Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Matthäus Wander-20240116202600-Herzmut-2024011615410011
- Eine Programmiersprache ist mit ihrem Compiler oder Interpreter identisch; durch ihn werden die Möglichkeiten der Programmiersprachen realisiert oder begrenzt. Eine Programmiersprache, die weder das eine noch das andere hat, kann nicht als Programmiersprache bezeichnet werden, weil mit ihr nichts programmiert wird; dabei ist vor allem der Interpreter weniger als Computerprogramm, sondern mehr als ein Computersystem zu verstehen, welches in der Lage ist, Programmbefehle zu verarbeiten, unabhängig davon, ob es sich dabei um Hardware oder Software handelt oder ob zwischen dem Programm und der Ausführung Zwischeninstanzen stehen. Umgekehrt muss jedes Programm irgendwo irgendwann in Maschinensprache übersetzt werden, da es sonst nicht ausgeführt werden kann. Eine Programmiersprache trägt sich selbst, wenn ihr Compiler in dieser gleichen Sprache geschrieben werden kann und dieser auch einen neuen Compiler, oder eine neue Version dieses Compilers, erzeugt. Wenn das Build-System also keine neue Version des Build-Systems auf der Basis der von ihm übersetzten Sprache erzeugen kann, wobei das alte Build-System mit dem neuen identisch ist, umgekehrt aber nicht unbedingt, ist es nicht self-hosting. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240116154100-Matthäus Wander-2023081007410011
- Ist im Schwesterwiki übrigens (gegenwärtg) nur als Eigenschaft (im Zusammenhang mit ihren, also amerikanisch sobezeichneten compilers) beschrieben (also dort als „self-hosting“ bezeichnet und dazu hierher, auch oben, wohl recht treffend, aber nur [lehn]übersetzt selbsttragend). Zudem gibt es diese Eigenschaft sicherlich schon länger als die Wikipedia, auch mit einem (wohl anderen) hier eigentlich heimischeren Bezeichner, welcher mir aber dummerweise (auch) gerade entfallen ist. Auf der Suche danach habe ich nun aber wenigstens erstmal (über Google, mit „Compilerbau selbstübersetzend“, im, innerlich mit „ÜBERSETZERBAU VORLESUNGSSKRIPTUM“ überschriebenen PDF, wohl bei der TU Wien, zudem im Zeitraum „1985-2021“, genauer ebenda mit der Kurzbeschreibung „Abbildung 1.6: Selbst-Übersetzung eines Compilers“, eben) das (zusammengesetzte und hier wohl eher geeignete Haupt- und Schlag-)Wort „Selbst-Übersetzung“ gefunden. Und wer weiter, und dabei ergebnisoffen (sowie nicht auf irgendwelche Einzelsprachen beschränkt), aber eben bevorzugt nach hier heimischen Wörtern oder Bezeichnern (zum selben Begriff) sucht, wird da sicherlich auch weiter fündig werden. Mit lieben Grüßen. -- 77.11.197.144 Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-77.11.197.144-20240118115500-Herzmut-2022110501290011
- Nachtrag: „von Neumann“ und (hier, also zum nebenan wohl beschriebenen/gemeinten Begriff, vor allem) die nach ihm wohl benannte Architektur (und, weiter gedacht, ebenso die nach ihm benannt Sonde) ist da wohl auch ein zielführendes Stich- oder eben Schlagwort (oder eher [ein Such- und Finde-]Bezeichner). -- 77.11.197.144 Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-77.11.197.144-20240118120800-Herzmut-2022110501290011
- Ich finde den Vorschlag gar nicht so schlecht. Selbstübersetzung (Compiler) halte ich für ein geeignetes Lemma. Ich führe mal eine Textfassung ein, wo dieser Begriff verwendet wird. Gute Quellenarbeit! --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118140500-77.11.197.144-2024011812080011
Ich habe den Artikel nach Selbstübersetzung (Compiler) verschoben. Allerdings steht jetzt noch die Frage im Raum, wie die spezifische Eingrenzung auf Compiler von der allgemeinen Eigenschaft des Self-Hostings voneinander abgegrenzt werden soll: eigener Artikel, eigener Abschnitt, oder kann das beides zusammen in den Artikel wie jetzt? Die thematische Verwandtschaft ist ja nicht völlig abweisbar. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118143800-Lemma11
Kategorie "Selbsttragende Programmiersprache"*
[Quelltext bearbeiten]Es gibt Artikel über Programmiersprachen, die ich gern in diese Kategorie einsortieren würde. Die Kategorie existierte bisher noch nicht, aber auch kein Artikel, der sie beschreibt. Daher habe ich die Kategorie erst einmal provisorisch angelegt, der dann die Programmiersprachen hinzugefügt werden, die in die Kategorie passen - davon gibt es weitaus mehr als die erforderlichen 10. --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20221105013300-Kategorie "Selbsttragende Programmiersprache"*11
- Würde ich (hier) so nicht unterstützen (wenn ich hier mitentscheiden dürfte, da es da sicherlich noch bessere Übersetzungen oder gar eigene/heimatsprachige Bezeichner gibt; siehe oben). Mit lieben Grüßen. -- 77.11.197.144 Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-77.11.197.144-20240118115500-Herzmut-2022110501330011
- Und wie ist es mit Programmiersprachen, deren Compiler in ihnen geschrieben ist? --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118143600-77.11.197.144-2024011811550011
- Ist (Erstens, meiner Ansicht nach) viel zu sperrig und (Zweitens) kann der Teil mit den Programmiersprachen so wohl besser weggelassen oder (besonders auch hier) bspw. (möglichst oder weitgehend ohne amerikanisch) zu „[Kategorie:]Selbstübersetzende Übersetzer“ (oder ggf., also wenn wir in einem entsprechenden Übersetzer-Wiki wären, noch kürzer zu „[…:]Selbstübersetzende“) übersetzt werden. :-) -- 77.11.197.144 Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-77.11.197.144-20240118150400-Herzmut-2024011814360011
- Und wie ist es mit Programmiersprachen, deren Compiler in ihnen geschrieben ist? --Herzmut (Diskussion) Diskussion:Selbst%C3%BCbersetzung (Compiler)#c-Herzmut-20240118143600-77.11.197.144-2024011811550011