Operatoren: Numerisch: n+n = n n+=n = n +n = n ++n = n n++ = n n-n = n n-=n = n -n = n --n = n n-- = n n/n = n n/=n = n n*n = n n*=n = n n%n = n n%=n = n n&n = n n&=n = n n&&n = n ~n = n n|n = n n|=n = n n||n = n !n = n n^n = n n^=n = n n>>n = n n>>=n = n n<x = n x=n: arith. vergleich; NaN nach IEEE x=x = n x=L: elementweise rekursiv vergleichen x<=x = n x=*: *==* x==x = n x=P: name,text ((~disass)) ((procname, formalparameternamen, proccode 'as is')) x!=x = n x/y: unterschiedliche Datentypen: Sortierung nach Datentyp: * < n < t < L < P automatische konvertierung von argumenten: Argumente werden, wo durch den Operator eindeutig bestimmt, automatisch konvertiert: Numerisch: void=0.0; Text=EvalNum(); Liste=Rekursiv; Proc=BREAK; Text: void=""; Zahl=NumString(); Liste=Rekursiv; Proc=BREAK; Liste: void={*}; Text={Text}; Zahl ={Zahl}; Proc={Proc} Proc: kommt nicht vor Void: kommt nicht vor für Vergleiche werden zwei gleiche Datentypen benötigt. Sind die Datentypen unterschiedlich, ist das gewünschte Verhalten unbekannt. Deshalb wird hier einfach nach Datentyp sortiert: * < n < t < L < P c++ Klassen: class Var wird genauso wie für vipsi benötigt implementiert. class String verwendet unabhängig davon z.T. andere Bedeutungen für Operatoren, z.B. +, +=, * usw.