003
07.04.2015, 14:14 Uhr
holm
|
Richtig.
Das ist ein Witz über den heute wohl kaum einer mehr lachen kann, der dürfte aus der Zeit mit dem Krieg "Pascal gegen C" stammen und der ist, denke ich, wohl von Pascal verloren worden. Pascal macht alle möglichen Typprüfungen, gibt bei Strings in irgend einem zusätzlichen Feld die Länge an usw. C macht das nicht, es prüft weder vor der Zuweisung ob Datentypen kompatibel sind oder ob sie überlaufen bzw. ob eine Routine die Strings parst bzw. ausgibt evtl. einen VM-Fehler erzeugt weil der String nicht 0-terminiert ist. C "denkt" einfach, dass sich der Programmierer schon was dabei gedacht haben wird, aber Anfängern bröselt ihr Programm halt aus "unerklärlichen" Gründen auseinander.
Beide Verfahrensweisen haben Vor- und Nachteile, Pascal rettet Programmierer vor vielen Fehlern, ist aber als Systemprogrammiersprache nicht sonderlich praktikabel da natürlich die Prüferei Zeit und Platz kostet. C ist schnell und klein (auch die fehlende Laufzeitbibliothek macht sich positiv bemerkbar), aber man macht halt schnell Fehler. Interessant ist das Sowohl Windows als auch Unix in C programmiert sind, aber Windows nur so von Pufferüberläufen strotzt ...
Gruß,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} |