Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.forth > #351

Re: Neuer Text zu Forth - falls jemand Fehler findet...

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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