<?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=Bootstrapping_%28Programmierung%29</id>
	<title>Bootstrapping (Programmierung) - 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=Bootstrapping_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bootstrapping_(Programmierung)&amp;action=history"/>
	<updated>2026-05-26T18:11:46Z</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=Bootstrapping_(Programmierung)&amp;diff=794200&amp;oldid=prev</id>
		<title>imported&gt;MasterLee: /* Notation */ siehe hier: https://dl.acm.org/doi/10.1145/366199.366249</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bootstrapping_(Programmierung)&amp;diff=794200&amp;oldid=prev"/>
		<updated>2026-03-23T21:00:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Notation: &lt;/span&gt; siehe hier: https://dl.acm.org/doi/10.1145/366199.366249&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen|2=Dieser Artikel|1=&amp;lt;small&amp;gt;(Februar 2017)&amp;lt;/small&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bootstrapping&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;Ureingabe&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web |url=https://www.dict.cc/?s=Bootstrapping |first=Paul |last=Hemetsberger |title=Bootstrapping |language=de, en |publisher=dict.cc Deutsch-Englisch-Wörterbuch |date=2025 |accessdate=2025-06-12}}&amp;lt;/ref&amp;gt;) bezeichnet in der [[Programmierung]] den Prozess, mit einfachen [[Entwicklungswerkzeug]]en mächtigere zu programmieren.&lt;br /&gt;
&lt;br /&gt;
Die einfachste Umgebung ist etwa ein sehr grundlegender [[Texteditor]] und ein [[Assembler (Informatik)|Assembler]]. Mit diesen Werkzeugen kann man einen komplexeren Texteditor und einen einfachen [[Compiler]] für eine höhere [[Programmiersprache]] schreiben, und so weiter, bis man eine [[Grafische Benutzeroberfläche|grafische]] [[integrierte Entwicklungsumgebung]] und eine sehr hohe Programmiersprache hat.&lt;br /&gt;
&lt;br /&gt;
Compiler für eine Programmiersprache X werden oft in derselben Programmiersprache X geschrieben (Beispiele: Fast alle C-Compiler, [[Free Pascal]], [[PyPy]], [[Glasgow Haskell Compiler]]). Damit ergibt sich ein [[Henne-Ei-Problem]]: Wie wird der neue Compiler erstmals kompiliert? Mögliche Wege sind:&lt;br /&gt;
* Ein weiterer Compiler für X wurde in einer anderen Programmiersprache Y geschrieben.&lt;br /&gt;
* Frühere Versionen des Compilers wurden in einer Teilmenge von X geschrieben, für die ein anderer Compiler existierte.&lt;br /&gt;
* Der Compiler für X ist &amp;#039;&amp;#039;cross compiled&amp;#039;&amp;#039; von einer anderen Architektur, auf der ein Compiler für X existiert.&lt;br /&gt;
* Der Compiler wurde von Hand kompiliert und möglicherweise hinterher auf seinen eigenen Quellcode angewendet. Das bedeutet, dass ein Programmierer den Compiler in eine Hardware-nähere Sprache bringt, zum Beispiel mit Hilfe der [[Befehlssatzarchitektur]] in [[Assemblersprache]].&amp;lt;ref name=&amp;quot;compilerdesign&amp;quot;&amp;gt;{{Internetquelle |url=https://hjemmesider.diku.dk/~torbenm/Basics/basics_lulu2.pdf#page=293 |titel=Basics of Compiler Design |sprache=en |abruf=2018-10-22}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Der Compiler hat sich selbst mithilfe eines Interpreters, der in einer anderen Sprache Y geschrieben wurde, kompiliert.&amp;lt;ref name=&amp;quot;compilerdesign&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
[[Datei:T-diagram.png|mini|Bratman-Diagramm]]&lt;br /&gt;
Um den Prozess des Bootstrappings grafisch darzustellen, wird das sogenannte &amp;#039;&amp;#039;Bratman-Diagramm&amp;#039;&amp;#039; verwendet. Im nebenstehenden Diagramm wird ein Compiler für [[Ada (Programmiersprache)|Ada]] in [[C (Programmiersprache)|C]] geschrieben, der Code in [[Maschinensprache]] erzeugt.&amp;lt;ref name=&amp;quot;compilerdesign&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Etymologie ==&lt;br /&gt;
Im Englischen existiert spätestens seit dem frühen 19. Jahrhundert der Ausdruck &amp;#039;&amp;#039;to pull oneself up by one&amp;#039;s bootstraps&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;to pull oneself over a fence by one&amp;#039;s bootstraps&amp;#039;&amp;#039; (sich an den eigenen Stiefelschlaufen hochziehen bzw. über einen Zaun ziehen) als Bezeichnung für die Lösung einer inhärent unlösbaren Aufgabe, insbesondere einer solchen, bei der – wie bei der oben erwähnten Compiler-Kompilierung – ein Henne-Ei-Problem besteht.&lt;br /&gt;
&lt;br /&gt;
Häufig wird in diesem Kontext auch die Geschichte erwähnt, in der Baron [[Hieronymus Carl Friedrich von Münchhausen|Münchhausen]] sich (unmöglicherweise) selbst aus dem Sumpf zieht, allerdings benutzt er dafür seinen Haarzopf und keine Stiefelschlaufe.&lt;br /&gt;
&lt;br /&gt;
Der Begriff des [[Booten]]s geht ebenfalls auf „Bootstrapping“ zurück.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [http://hjemmesider.diku.dk/~torbenm/Basics/basics_lulu2.pdf Basics of Compiler Design]&lt;br /&gt;
* [http://www.andreadrian.de/tbng/index.html BASICO: Self-compiling compiler in 1000 Quelltextzeilen]&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;MasterLee</name></author>
	</entry>
</feed>