Was ist das? P15 in Aktion!
Alle beteiligten Variablen sind mit dem
neuen Prozessor 15 - "Access Structured Storage" - assoziiert. Dies geschah natürlich bevor der Wert der Variablen erstmalig abgefragt wurde:
'J16 0' 15 ⎕NA 'A'
('ADDRESS' 'A')15 ⎕NA 'ADR'
Die hier erstellte Variable ADR enthält die aktuelle Speicheradresse der Variablen J16. Als Name verweist "A" (und auch die folgenden Namen) auf Speicher außerhalb des APL-Workspaces.
Die folgenden Definitionen benutzen die ersten 8 Bytes des Bereichs, der bei der Adresse ADR beginnt und 16 Bytes umfasst:
('E8 0' ADR)15 ⎕NA 'E8'
('I4 1 2' ADR)15 ⎕NA 'I4'
('I2 1 4' ADR)15 ⎕NA 'I2'
('C1 1 8' ADR)15 ⎕NA 'C1'
('B1 1 64' ADR)15 ⎕NA 'B1'
All diese Namen verweisen also auf die gleichen Bytes außerhalb des APL2-Workspaces. Allerdings werden diese Bytes unterschiedlich interpretiert. Im Falle E8 werden die 64 Bits als eine Gleitpunktzahl in IEEE 754 Darstellung aufgefasst. I4 nimmt die gleichen Bits, um sie als zwei ganzzahlige Werte auszugeben. B1 zeigt alle Bits dieses Speicherbereichs als solche (B1 hätte ich übrigens besser mit ('B1 2 8 8' ADR)15 ⎕NA 'B1' assoziiert).
Für die Konvertierung von einer Darstellung in eine andere gibt es natürlich geeignete APL-Funktionen. Man kann hierfür zum Beispiel ATR, RTA und PFA verwenden. Mit Prozessor 15 kann dies ohne Funktion durch geeignete Definitionen erreichen werden.