nls-technical
[Top] [All Lists]

Re: [nls-technical] [bootstrap-nsf] Re: [bootstrap-nsf] Re: questions ab

To: <bootstrap-nsf@ws.blueoxen.net>, "'NLS Restoration Technical Discussion'" <nls-technical@chm.cim3.net>
From: "Jeff Rulifson" <jeff@rulifson.name>
Date: Tue, 21 Feb 2006 13:17:46 -0800
Message-id: <001901c6372c$43dea030$f8454698@JeffRLaptop>

Answers to specific question from previous post    (01)



Q: I assume that your initial work would have been sometime between 1963 
and 1968? It would be great if you could pin down some years for me.    (02)

A: I worked with Doug from Jan 66 through late 69.    (03)

Q: Was the CDC 3300 the first machine that NLS ran on?    (04)

A: There was a mini-NLS on a 160A. I never worked on it.    (05)

Q: JR: From a page management viewpoint, an NLS statement was a string of
words. The statements could be compacted within a page. Links into the page
were adjusted during the compaction. New statements were heuristically
placed close to their peers in the NLS branch. A statement could not be
larger than a single page.    (06)

EK: I think this has remained true even on the latest version of Augment 
that Doug is still running, yes?    (07)

A: I do not know.    (08)

Q: JR: Memory on the 940 was very limited. Instead of an attribute-value
pair as was used in the PDP10 version, the 940 version worked with bits
inside 19 bit words.    (09)

EK:  I'm not sure what attribute-value pair you are referring to. I 
understand that statements are just a string of words that must be less 
than a single page. More clarification on the pairs?    (010)

A: It's a LISP reference. In every list a single nodes in a list are a value
and a pointer to the next element in the list. An A-list is a structured
list where the value, (CAR L), identifies an attribute and the value of the
second node (CADR L) is the value of the attribute, and so on.    (011)

EK: I'm also not clear on what is stored in 19 bits? Is there a 5 bit header
with 19 bits of data (5 + 19 = 24 bit words, used by the SDS 940)?    (012)

A: I was confused. Forget I said 19.    (013)

Q: An NSL statement had a fixed length header and a variable length string.
I think this has remained true, yes?    (014)

A: I do not know.    (015)

Q: I guess the Meta Compiler and compiler were all rewritten from SNOBOL to 
use L10 at some point, once L10 itself was written?    (016)

A: Actually, no. Butler Lampson spent the summer of 1965 as an intern
working for Doug. He wrote a SNOBOL compiler in a macro assembler for the
CDC3300. Peter Deutsch wrote the assembler in CDC3300 assembly language.
When I joined the group, neither would assemble. There was no documentation
and no comments in the code. As my first job, I got them both to run. We
never actually used the SNOBOL compiler. I then discovered the Meta II
language done by Val Shorre (?) then ad SDC. I pieced together the string
manipulation routines and made a self compiling Meta II system for the
CDC3300. Then, I bootstrapped everything from there.    (017)

Q: Did this occur during the transition from the SDS 940 to the PDP-10?    (018)

No, we had a single user system on the CDC3300. We bootstrapped the meta
compiler system from the CDC3300 to the SDS940.    (019)

Q: JR: So, statement names were "(" $(L/D) ")" at the start of a statement.
View specification control was "[" name ":" flags "]" in the string.    (020)

EK: I'm reasonably comfortable with LISP, but I'm afraid I don't know any 
SNOBOL. I assume the L and D represent some kind of string processing 
functions?    (021)

A: Its regular expression syntax -- a left paren followed by an arbitrary
number of (letters or digits) followed by a right paren.    (022)





_________________________________________________________________
Message Archives: http://chm.cim3.net/forum/nls-technical/
Shared Files: http://chm.cim3.net/file/work/project/nls-restore/
Community Portal: http://www.computerhistory.org/  
To Post: mailto:nls-technical@chm.cim3.net
Community Wiki: http://chm.cim3.net/cgi-bin/wiki.pl?NLS_Restoration    (023)
<Prev in Thread] Current Thread [Next in Thread>