|
From: | Peter Teeson |
Subject: | Re: [Bug-apl] [PATCH]: allow using lambdas in ]USERCMD |
Date: | Sat, 25 Feb 2017 13:42:54 -0500 |
Thanks for your thoughtful response Jürgen, and also Elias and Blake.Amen…. It is helpful to recognize the computing environment at the time that APL became a commercially viable product. I. P. Sharp and STSC both had modified APL/360 systems that were time-sharing - you paid for CPU cycles and file space. Users would log on to the mainframe with a user id over modems that were initially 75baud. Hallelujah for the Gandalf 1200 baud. Hurrah for the 2741 IBM golf ball for APL. Packet switched networks over phone lines also became available. We wrote our own. We ran at first on an IBM 360 mainframe with 5MB hard drives. Memory was core - donut shaped rings with wires magnetizing them to form 1’s and zero’s. If I recall correctly the size of a workspace was 50KB. Each user had a WS loaded at logon. This could be the )CONTINUE WS. Otherwise you got a )CLEAR WS or )LOADed a )SAVEd one. Initially the mainframe OS was IBM DOS. It had 3 partitions: F1, F2, and BG. The interpreter ran as the only process in F1 with the highest priority; The file system, BSS (Backing Store System) ran as the only process in F2 - 2nd highest priority. Various other batch processes ran in BG (BackGround) which had the lowest priority. Later on we moved to MFT and then to MVT. I left Sharp in 1986 so don’t what was used afterwards. When a user logged in they were one of a number of users whose WS was in main memory. Each user was allocated a quantum of CPU time. If they consumed their initial quantum they were allowed a certain smaller amount to complete. If they still hadn’t completed after that there was a PANIC INT which forced a swap out to disk (hard drive). Hence )CONTINUE. The WS structure consisted of a heap and a stack I don’t recall exactly which was which but one grew up from the lower address of the allocated memory and the other down from the higher address of the allocated memory. When they collided you got a WS full, and were swapped out to disk. So there was 1) the actual APL language interpreter itself, 2) a mechanism to manipulate WSs (System Commands) and 3) a number of QUAD functions to set various environmental variables and interface with the file system (FTIE, FUNTIE, FAPPEND etc - all preceded with the QUAD symbol) These days the environment is much richer from a resource point of view and if we had to do it again it is interesting to speculate how we would design an environment for the interpreter to live in. That is my interest to help satisfy my continuing passion for programming in general and APL in particular. Meanwhile my highest regards to all of you and specially to Jürgen. Peter
|
[Prev in Thread] | Current Thread | [Next in Thread] |