Article View: de.comp.lang.c++
Article #81Re: Lippmann - was ist das?
From: Harald Fuchs
Date: Wed, 16 Dec 1992 13:55
Date: Wed, 16 Dec 1992 13:55
59 lines
3426 bytes
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!hfReferences:
<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