110 likes | 312 Views
APL – a progamming language. Kenneth E. Iversion(1). 17.12.1920-19.10.2004 Kanadischer Mathematiker 1954 an Harvard-Universität in Mathematik promoviert Lehrte 1955 bis 1960 an Harvard als Assistent Professor Angewandte Mathematik Bis 1980 Forschung bei IBM
E N D
Kenneth E. Iversion(1) • 17.12.1920-19.10.2004 • Kanadischer Mathematiker • 1954 an Harvard-Universität in Mathematik promoviert • Lehrte 1955 bis 1960 an Harvard als Assistent Professor Angewandte Mathematik • Bis 1980 Forschung bei IBM • Ab 1980 bei I. P. Sharp Associates in Toronto • 1987 Ruhestand
Kenneth E. Iversion(2) • 1962 Buch A Programming Language • 1965 erster APL-Interpreter für Stapelverarbeitung • 1966 interaktive System APL\360 • Entwurf weiterer Programmiersprachen, darunter ab 1990 gemeinsam mit Roger Hui die Sprache J
Besonderheiten • Interaktivität • Datentypen • Speicherverwaltung • Array-Verarbeitung • Ausführung und Rangfolge • Funktionen und Operatoren • Rangfolge von rechts nach links
Structure of the APL2C System Workspace APL Variables + Functions + Operators Interpreter / FrameworkDefinition and execution of functions, Workspace handling, Session manager APL-Primitives Functions + Operatorsimplemented in C Graphical User Interface MFC / Windows NTMotif / Unix, Linux ISO Standard C Library Operating System
APL2C Data Structure Data header definition of an APL variable in C: typedef struct { long length; // Total length (bytes) unsigned char type; // SIMPLE or NESTEDunsigned char rank; // Rank unsigned char eltype; // INT, ..., PNTRunsigned char reserved; // ...long lnkcnt; // no. of references long number; // Number of elements long dim[1]; // Dimensions, per axis // ... // Data (dynamic size) } aplarray;
Data Structure - Examples (simple) X length type rank eltype res. lnkcnt number 20 SIMPLE 0 INTG 0 1 1 5 X'abc' length type rank eltype res. lnkcnt number dim[0] 23 SIMPLE 1 CHAR 0 1 3 3 ‘a’ ‘b’ ‘c’
Data Structure - Example (nested) X(1 2) (3 4) length type rank eltype res. lnk. number dim[0] 28 NESTED 1 PNTR 0 1 2 2 Adr. Adr. length type rank lnk. eltype res. number dim[0] 28 SIMPLE 1 1 INTG 0 2 2 1 2 length type rank lnk. eltype res. number dim[0] 28 SIMPLE 1 1 INTG 0 2 2 3 4
APL2C Symbol Table Symbol Name Type Address ‘M’ Variable ‘TEST’ Function ‘MYOP’ Operator ‘DX’ Variable Central management of all APL Objects Allows the definition of local and pseudo-local variables.