Bootstrapping (Programmierung): Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „'''topic''' - Kurzbeschreibung == Beschreibung == <noinclude> == Anhang == === Siehe auch === {{Special:PrefixIndex/{{BASEPAGENAME}}}} ==== Links ==== ===== Weblinks ===== = TMP = '''Bootstrapping''' (auch '''Ureingabe'''<ref>{{cite web | accessdate = 2011-03-17 | location = http://www.dict.cc | publisher = dict.cc | title = Bootstrapping | url = http://www.dict.cc/?s=Bootstrapping }}</ref>) bezeichnet in der Programmierung den Prozess, mit einfach…“
 
Markierung: Ersetzt
Zeile 9: Zeile 9:
===== Weblinks =====
===== Weblinks =====


= TMP =
'''Bootstrapping''' (auch '''Ureingabe'''<ref>{{cite web
| accessdate = 2011-03-17
| location = http://www.dict.cc
| publisher = dict.cc
| title = Bootstrapping
| url = http://www.dict.cc/?s=Bootstrapping
}}</ref>) bezeichnet in der [[Programmierung]] den Prozess, mit einfachen [[Entwicklungswerkzeug]]en mächtigere zu programmieren.
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.
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:
* Ein weiterer Compiler für X wurde in einer anderen Programmiersprache Y geschrieben.
* Frühere Versionen des Compilers wurden in einer Teilmenge von X geschrieben, für die ein anderer Compiler existierte.
* Der Compiler für X ist ''cross compiled'' von einer anderen Architektur, auf der ein Compiler für X existiert.
* 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, z.&nbsp;B. mit Hilfe der [[Befehlssatzarchitektur]] in [[Assemblersprache]].<ref name="compilerdesign">{{Internetquelle | url= http://hjemmesider.diku.dk/~torbenm/Basics/basics_lulu2.pdf#page=293 | titel=Basics of Compiler Design | sprache=en | zugriff=2018-10-22}}</ref>
* Der Compiler hat sich selbst mithilfe eines Interpreters, der in einer anderen Sprache Y geschrieben wurde, kompiliert.<ref name="compilerdesign"/>
== Notation ==
[[Datei:T-diagram.png|mini|Bartman-Diagramm]]
Um den Prozess des Bootstrappings grafisch darzustellen, wird das sogenannte ''Bartman-Diagramm'' verwendet. Im nebenstehenden Diagramm wird ein Compiler für [[Ada (Programmiersprache)|Ada]] in [[C (Programmiersprache)|C]] geschrieben, der Code in [[Maschinensprache]] erzeugt.<ref name="compilerdesign"/>
== Etymologie ==
Im Englischen existiert spätestens seit dem frühen 19. Jahrhundert der Ausdruck "to pull oneself up by one's bootstraps" oder "to pull oneself over a fence by one's bootstraps" (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.
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.
Der Begriff des [[Booten]]s geht ebenfalls auf "Bootstrapping" zurück.


[[Kategorie:Programmierung]]
[[Kategorie:Programmierung]]

Version vom 5. April 2024, 10:59 Uhr

topic - Kurzbeschreibung

Beschreibung

Anhang

Siehe auch

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Bootstrapping_(Programmierung)