| Unnatürliche Denkweisen
|
|
|
| C | Feldindizes von 0 bis N-1
|
| PL/1 | Feldabarbeitung: a = a/SUM(a)
|
| APL | Abarbeitung von rechts nach links: 2*3+4 => 14
|
| Keine einheitlichen Schreibregeln
|
|
|
| FORTRAN | x = 1 | aber DATA x/1/
|
| PL/1 | IF a=3 ... | aber WHILE(a=3) ...
|
| ISPF | FIND X 1 | aber FIND Y 1
|
| Schlechte Lesbarkeit
|
|
|
| APL | 4 + 2*i5 | gerade Zahlen von 6 bis 14
|
| viele | A(k) | für Felder und Funktionen
|
| Unerwartete Wirkungen
|
|
|
| BASIC | PRINT SQRT(4) => 0
|
| FORTRAN | CALL UP(1) | überschreibt Konstante 1
|
| C | if (a=b==5 && c=d==0) ...
|
| | Zuweisung an c nur, wenn a wahr ist
|
| Beschränkungen
|
|
|
| FORTRAN (66) | A(k+m) | nicht erlaubt
|
| PL/1 | | Stringindizes nur bis 32767
|
| Fehlinterpretationen
|
|
|
| JCL | //X DD DSN=A, DISP=(NEW,KEEP),
|
| Beschränkungen durch
|
|
|
| Speicherplatz | MS-DOS: 640 KB
|
| Laufzeit | Programmiertricks
|
| Erstellungzeit | Termindruck: "Bananensoftware"
|
| Kosten | Manpower
|
| Hardware | Zeichensatz, Farben, Auflösung
|
| Anforderungen | Realzeitprogramme: Timing
|
|
Tools (Editor, Compiler, Debugger, System)
|
| Editor/Compiler | Zusammenarbeit
|
| Compilerfehler | Funktionen; Optimierung
|
| Sprachdesignfehler | Falsche Abfragedefinition
|
| Laufzeitprobleme | Indexüberschreitung; Initialisierung
|
| Debugger | Neue Sprache
|
| Betriebssystem | Neue Sprache
|
|
Algorithmus
|
| Formulierungsfehler | a <= b <= c
|
| Denkfehler | (a+b+c)/3 = a statt a=b=c
|
| Vereinfachungsfehler | Linearisierung
|
| Abbruchfehler
|
| Auslöschung
|
| Fehlerfortpflanzung
|