Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.forth > #351
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Newsgroups | de.comp.lang.forth |
| Subject | Re: Neuer Text zu Forth - falls jemand Fehler findet... |
| Date | 2015-09-05 20:55 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <msfdo0$ujq$1@dont-email.me> (permalink) |
| References | <134c1e35-36f4-4d65-a089-7c83f542ac3a@googlegroups.com> <mscv6l$lg7$1@dont-email.me> <2015Sep5.191829@mips.complang.tuwien.ac.at> |
Anton Ertl wrote: > Bernd Paysan <bernd.paysan@gmx.de> writes: >>Abgesehen davon habe ich erst kürzlich einen Rant über den NULL-Pointer >>und das NULL-Objekt gelesen, der mir klar machte, warum das mit der >>Typprüfung in der Praxis so schlecht funktioniert: NULL ist einfach jeder >>Typ (zumindest jede Klasse), und crasht aber garantiert bei jedem Zugriff >>außer dem Vergleich auf NULL: >> >>https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/ > > Naja, NIL gab's in LISP schon 1960, und vermutlich schon frueher, da > braucht sich Hoare nicht damit bruesten:-). NIL ist aber richtig gemacht, und crasht nicht. (cdr NIL) ist einfach NIL, ebenso (car NIL). NULL->next ist auf jeden Fall ein Crash. >>Damit wird praktisch das ganze Versprechen eines Typ-Systems ausgehebelt. > > Naja, das haben sich die ganzen Typsystemleute auch gedacht, und haben > in ihre Typsystems Typen eingebaut, die nicht NULL werden duerfen; und > dass man bei den Typen, die Null werden duerfen, dann immer den Check > hinschreiben muss. Also in Forth-Syntax so: > > > ( addr ) dup if \ jetzt ( non-null-addr ) > @ ... > else > drop ... > then > > Das wird auf der Webseite auch angefuehrt. Ob das jetzt wirklich was > bringt, ist fuer mich zweifelhaft, aber ich bin ja kein Glaeubiger der > statischen Typisierung. Mir ist nur aufgefallen, dass, man in Java > Baeume auch rein ueber OO-Dispatch implementieren kann, dann braucht > man kein NULL, aber einige Operationen werden muehsamer zu > implementieren (geht alles nur ueber Rekursion). Man macht eine Klasse "Endknoten", von der es dann eine Instanz gibt, die man überall einhängt, wo's nicht weitergeht. Die Methoden sind dann immer der jeweilige Else-Zweig beim NULL-Test. Der Grund, warum das C++- und Java-Programmierer so überfordert, ist ja, dass man in OOP ein Objekt eben *nicht* fragen muss, was es ist. Das weiß das ja selber. Außer, es ist der NULL-Pointer, der weiß das nicht. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
Back to de.comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
Neuer Text zu Forth - falls jemand Fehler findet... djc <ciesinger@gmx.net> - 2015-09-04 05:36 -0700
Re: Neuer Text zu Forth - falls jemand Fehler findet... Bernd Paysan <bernd.paysan@gmx.de> - 2015-09-04 22:35 +0200
Re: Neuer Text zu Forth - falls jemand Fehler findet... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-05 17:18 +0000
Re: Neuer Text zu Forth - falls jemand Fehler findet... Bernd Paysan <bernd.paysan@gmx.de> - 2015-09-05 20:55 +0200
Re: Neuer Text zu Forth - falls jemand Fehler findet... djc <ciesinger@gmx.net> - 2015-09-06 02:56 -0700
Re: Neuer Text zu Forth - falls jemand Fehler findet... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-06 16:05 +0000
Re: Neuer Text zu Forth - falls jemand Fehler findet... djc <ciesinger@gmx.net> - 2015-09-06 10:08 -0700
Re: Neuer Text zu Forth - falls jemand Fehler findet... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-08 16:18 +0000
Re: Neuer Text zu Forth - falls jemand Fehler findet... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-06 15:56 +0000
Re: Neuer Text zu Forth - falls jemand Fehler findet... Bernd Paysan <bernd.paysan@gmx.de> - 2015-09-06 22:09 +0200
Re: Neuer Text zu Forth - falls jemand Fehler findet... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-08 16:27 +0000
csiph-web