[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Eindeutschung



On Tue, Apr 10, 2001 at 02:00:03PM +0000, Andreas Metzler wrote:
> Jan T. Kim <kim@inb.mu-luebeck.de> wrote:

> >> "to compile" = Uebersetzen eines Textes in einer Programmiersprache in
> >>                Maschinensprache. Wobei die Maschine auch einen Java-VM
> >>                oder aehnliches['] sein kann. 
> 
> > Diese Uebersetzung hat sich aber erst als umgangssprachliche Umschreibung
> > des (deutschen!) Begriffs "kompilieren" im computerfachsprachlichen Sinne
> > eingebuergert. Eigentlich heisst "to compile" soviel wie "erstellen,
> > aufstellen, anhaeufen, zusammenstellen, zusammentragen".
> 
> *Das* bedeutet es im normalen Sprachgebrauch, im Kontext der Computer
> bedeutet es das obiges. Ein native Speaker wird bei "compile a
> program" doch nicht an "zusammenstellen eines Programms" denken,
> sondern er hat schon gcc bildlich vor Augen?[']

Kann sein, aber nur unter der Voraussetzung, dass der native speaker
ueber technische Vorkenntnisse in hinreichendem Umfang verfuegt.
Ein native speaker ohne Vorkenntnisse hat es da schwerer als jemand,
der schon das Wort "to compile" als Fremdwort wahrnimmt.

> > Also im Ernst: Eine Kompilation ist keine Uebersetzung, sondern,
> > genau genommen, eine Explikation.
> 
> Nach erfolglosem Nachschauen im Wahrig, du meinst, es sei eine nicht
> injektive Abbildung?

Mit Explikation meine ich, dass abstrakte Konstrukte der Hochsprachenebene
in expliziten Abfolgen von Maschinenanweisungen umgesetzt werden...

> > Anhand von abstrakten "high level" Anweisungen im source werden auf
> > Maschinenebene "low level" Anweisungen zusammengestellt. Anders als
> > eine Uebersetzung ist dieser Vorgang konzeptionell unumkehrbar.

... mehr als das hier Beschriebene wollte ich also gar nicht ausdruecken.

> Ist "Uebersetzung" ein formal festgelegter Begriff?

Weiss ich nicht.

> *Imho*, dh.  normaler Sprachgebrauch, erfordert Uebersetzung
> keinesfalls die Umkehrbarkeit.

IMHO ist Uebersetzung aber schon umkehrbar (vielleicht ist mein
Sprachgebrauch ja unnormal...  ;-)

Also, nach meinem Verstaendnis bedeutet Uebersetzung die Erstellung
eines inhaltsgleichen Texts in einer anderen Sprache, und ich hatte --
bisher jedenfalls -- die Vorstellung, dass dies Sprachverstaendnis nicht
sooo ungewoehnlich ist.

Vollstaendige inhaltliche Aequivalenz ist dabei natuerlich letztlich
ein Idealfall, der vielleicht nur selten erreicht wird. In der
gaengigen Praxis reicht es durchaus, sich auf wesentliche Teilaspekte
des Gesamtinhalts zu beschraenken. Wenn diese allerdings durch die
Uebersetzung verfaelscht oder nicht wiedergegeben werden, ist die
Uebersetzung falsch bzw. unvollstaendig.

Aus diesem Verstaendnis laesst sich folgern, dass Uebersetzungen umkehrbar
sein muessen, zumindest bezueglich der wesentlichen Inhalte. Dies steht
mglw. gar nicht in Widerspruch zu Andreas' Verstaendnis, weil sich aus
dieser Feststellung keinesfalls die Behauptung, durch Uebersetzung und
Rueckuebersetzung muesse der Originaltext (wortwoertlich) produziert
werden, ableiten laesst, denn (1) ist nicht jedes Bit des Originals
inhaltstragend und (2) duerfen unwesentliche Inhalte ja weggelassen
oder veraendert werden.

> > Informationstheoretisch ist dies ein fundamentaler Unterschied,
> > aufgrunddessen der Gebrauch unterschiedlicher Begriffe m.E.
> > unbedingt geboten ist.
> [snip]
> "Informationstheoretisch" sagt mir nichts. In diesem Zusammenhang
> (Computer, programmieren, Linux, Debian, ...) verliert man durch
> Compilation aber doch nichts[''],

Eben dies bestreite ich. Die Semantik des Hochsprachenprogramms laesst
sich im Allgemeinen nicht aus einem binary gewinnen, sie geht durch
das Kompilieren verloren.

> man kann (theoretisch) zu einem
> gegebenen Maschinensprachenprogramm ein C-Programm ['''] finden,
> welches auf den selben Input den selben Output wie das
> Maschinensprachenprogramm liefert.

Naja, woertlich genommen ist diese Aussage trivial richtig, die Loesung
lautet stets

    fwrite(stdout, desired_output);

Gemeint ist aber ja vermutlich eher sowas wie: "Man kann theoretisch
zu jedem Maschinenprogramm ein C-Programm finden, das dieselbe Abbildung
von input zu output realisiert wie das Maschinenprogramm". Damit diese
Aussage zutreffend ist, muss man annehmen, dass "theoretisch" hier
"in unendlich langer Zeit" bedeutet.

Zutreffend ist in jedem Fall die Aussage, dass zu jedem gegebenen
Maschinenprogramm C-Programme mit identischem I/O- Verhalten
existieren. Die blosse Existenz solcher C-Programme rechtfertigt
aber nicht unbedingt die Aussage, man koenne sie auch finden. Wenn
man diese Folgerung zoege, muesste man ja auch sagen, man koenne zu
jeder GPG-verschluesselten message die Entschluesselung finden.
Letzteres dauert ja noch nichtmal unendlich lange...  ;-)

Informationstheoretisch ist nun also festzustellen, dass die
Zeitkomplexitaet des Kompilierens (im Wesentlichen O(Laenge des source))
qualitativ geringer als die des Umkehrvorgangs (die ja allenfalls
als "O(unendlich)" klassifiziert werden kann) ist. Dies ist eine
Perspektive des von mir postulierten "fundamentalen Unterschieds". Bei
Uebersetzungsvorgaengen gilt m.E. naemlich, dass eine Uebersetzung
von der Sprache A in die Sprache B dieselbe Zeitkomplexitaet wie eine
Uebersetzung von B nach A hat.

Der Grund dafuer, dass Uebersetzungen reversibel sind, waehrend
Kompilation irreversibel ist, liegt nach meinem Verstaendnis eben
darin, dass bei Uebersetzungen die Semantik (zumindest in wesentlichen
Aspekten) erhalten bleibt, waehrend das beim Kompilieren nicht zutrifft.

> In diesem Absatz steckt _sicher_ ein fundamentaler Fehler, bitte
> berichtige mich. (daher auch X-No-Archive: yes ;-))

Naja... ich habe mich bemueht, den Absatz so oberlehrerhaft und
kritisch wie moeglich zu kommentieren...  ;-)

Greetinx, Jan
-- 
 +- Jan T. Kim -------------------------------------------------------+
 |  *NEW* -->  email: kim@inb.mu-luebeck.de                           |
 |  *NEW* -->  WWW:   http://www.inb.mu-luebeck.de/staff/kim.html     |
 *-----=<  hierarchical systems are for files, not for humans  >=-----*

-- 
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

791 eingetragene Mitglieder in dieser Liste.


Reply to: