Table of Contents

2-Pass Kompiler

Informationen

  • Kategorien: Kernel | Klassenformeln
  • Version: 17.0.0.6138
  • Veröffentlichungsdatum: Sonntag, 18. Mai 2014
  • Entwickler: Fischer
  • Benötigt Datenbankänderung: Nein
  • Betreff: Compiler von 1-Pass auf 2-Pass umgestellt.

Beschreibung

Im 1. Pass werden die Deklarationen der DotNet- und der selbst geschriebenen Funktionen eingelesen (d.h. nur Funktionskopf, der ausführbare Code wird noch nicht kompiliert). Im 2. Pass wird alles wie bisher kompiliert, auch der ausführbare Code der Funktionen. Aufrufe von Funktionen sind nur im ausführbaren Code möglich, zu diesen Zeitpunkt (Pass 2) sind bereits alle Funktionen bekannt.

Dadurch ist die Reihenfolge, in der Funktionen definiert werden beliebig. Und somit auch die Reihenfolge, in der die Klassenformeln eingelesen werden.

Zusätzlich ist es jetzt möglich, rekursive Funktionen zu schreiben, d.h. Funktionen die sich selbst direkt oder indirekt (über andere Funktionen) aufrufen. Um einen Programmabsturz durch Stack-Overflow zu verhindern, wird bei einer Rekursionstiefe > 10.000 die Funktion beendet und eine Exception geworfen.