2 ms·
> They are 4 digit labels where the left-most digit is the main task (e.g. handle recursive function calling), the next digit is a subtask within the main task,
by greenyoda 6y ago
> They are 4 digit labels where the left-most digit is the main task (e.g. handle recursive function calling), the next digit is a subtask within the main task, etc.
Even old-school FORTRAN (FORTRAN II) had SUBROUTINEs and FUNCTIONs for breaking down a program into smaller pieces. So there doesn't seem to have been a need to have a monolithic main program that's organized into subtasks using only statement labels and GOTOs.
Still, I agree that old code can be beautiful.
- daly 6y agoThe computer systems running this LISP code had 4k of memory. There are a few subroutines (e.g. APUSH, FPUSH, CAR, CDR, etc.) but the inner loop looks pretty much like a tightly coded state machine. I suspect most of the FORTRAN statements will compile to single instructions (on some architectures). FORTRAN level subroutine/function calls would use a stack and chew up memory. My PDP-8/f System was a small machine with a paper tape reader/punch on the teletype. Running the multi-pass FORTRAN compiler, linker, and library code paper tapes (including intermediate tapes) could take all day. I usually just hand-patched the final binary paper tape (using a small plastic holder and a 1-hole punch). The fact that I could run LISP and interact "on the fly" was an amazing advance. Later, when I worked for Unimation trying to computer-control industrial robots I got a Data General NOVA. Unfortunately I didn't have a FORTRAN compiler. All the robot work was done in hex machine code. Oh, if I only had a LISP!