🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #81

Re: Lippmann - was ist das?

#81
From: Harald Fuchs
Date: Wed, 16 Dec 1992 13:55
59 lines
3426 bytes
In article <1gll29INNqb8@smurf.smurf.sub.org>, urlichs@smurf.sub.org (Matthias Urlichs) writes:

>> Jede Art von dynamischer Bindung (egal ob ueber vtbl oder nicht) kostet
>> ein paar Taktzyklen mehr und macht die entsprechenden Objekte ein
>> bisschen groesser, und deshalb ist eben statische Bindung der Default.

> Ausser das Programm ist so strukturiert und der Compiler+Linker so
> intelligent, dass die dynamische Bindung wieder rausfliegt.

Er nu wieder... wenn wir dynamische Bindung zum Default machen (theoretisch
durchaus sinnvoll), gibt es also zwei moegliche Konsequenzen:
1. die Programme laufen halt viel langsamer, oder
2. wir brauchen eine superschlaue Entwicklungsumgebung
Beides haette C++ das Schicksal von Eiffel, Trellis und vermutlich auch Beta
beschert: im Elfenbeinturm hoch angesehen, oft zitiert und ungeheuer
einflussreich, aber eben kein stupider Winzelweich-Compiler fuer Bitty-Boxen
unter MurksDoof.

> Meiner Erfahrung nach trifft das fuer einen grossen Teil der Spielobjekte,
> d.h. derer die sowieso nicht verfeinnert werden, sowieso zu.

Richtig.

> Ausserdem koennte ein noch _etwas_ intelligenterer Compiler auch Zuweisungen
> von Pointer-auf-B an Pointer-auf-A (A sei die Oberklasse von B) markieren.

Aha, tagged pointers? Also vptr durch die Hintertuer?

> (Bevor jetzt wieder jemand meckert: ...

Okay, ich bin ja schon still.

>> Wenn Du dynamische Bindung als Default haben willst, musst Du
>> konsequenterweise auch verlangen, dass Objekte nur ueber Referenzen oder
>> Pointer angesprochen werden, und das ist der Schritt von "C++" zu "D".

> Wieso? Bei direkten Objekten (oder wie auch immer das in C++ heisst) 
> ist statisch == dynamisch. Fein. Ein Problem weniger.  :-)

Nicht so schnell. Wenn Du ein Objekt direkt ansprichst (C++ kennt keinen
Terminus dafuer), _kannst_ Du ueberhaupt nicht dynamisch binden. Dasselbe ist
der Fall, wenn wir im real existierenden C++ das Woertchen "virtual" weglassen
- und damit befinden wir uns wieder am Ausgangspunkt der Diskussion.

> Umgekehrt -- C++ an sich ist mit Vorsicht zu geniessen.  :-)

Nur wenn man seinen Stroustrup nicht gelesen hat:
  C++ is a general purpose programming language designed to make programming
  more enjoyable for the serious programmer.
Damit meint Bjarne vermutlich ebenso schraege Hacker wie er selbst und seine
Kollegen im Hacker-Refugium der Bell Labs. Ganz sicher meint er keine
Bertrand-Meyer-Fans :-)

> Da saeuft man nun Tag fuer Tag - und keiner dankt es einem.

Wieso? Mein Kneipenwirt schaut immer sehr zufrieden drein...
--

Harald Fuchs <hf@telematik.informatik.uni-karlsruhe.de>
Technical Details
Message-ID: <HF.92Dec16135503@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!elroy.jpl.nasa.gov!nntp-server.caltech.edu!ira.uka.de!uka!news!hf
References: <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> <1gkcsjINNrm4@smurf.smurf.sub.org> <HF.92Dec15135859@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> <1gll29INNqb8@smurf.smurf.sub.org>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!elroy.jpl.nasa.gov!nntp-server.caltech.edu!ira.uka.de!uka!news!hf
From: hf@tk.telematik.informatik.uni-karlsruhe.de (Harald Fuchs)
Newsgroups: de.comp.lang.c++
Subject: Re: Lippmann - was ist das?
Date: 16 Dec 92 13:55:03
Organization: Karlsruhe University, Germany
Lines: 59
Message-ID: <HF.92Dec16135503@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>
References: <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>
 <1gkcsjINNrm4@smurf.smurf.sub.org>
 <HF.92Dec15135859@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>
 <1gll29INNqb8@smurf.smurf.sub.org>
NNTP-Posting-Host: whyaduck.telematik.informatik.uni-karlsruhe.de
In-reply-to: urlichs@smurf.sub.org's message of 15 Dec 1992 23:09:13 +0100