-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LISPED (first structure editor in 1966) #14
Comments
Also, Peter L. Deutsch (famous programmer in early Lisp days and Ghostscript creator), |
Thank you for this! This is new to me and very happy interesting. I'll
maybe implement an editor based on this for Beowulf!
Cheers
Simon
…On Mon, 8 Jan 2018, 22:00 Shaun Lebron, ***@***.***> wrote:
Mark H. David recently emailed me with a link to Lowell Hawkinson's LISPED
editor
<http://www.softwarepreservation.org/projects/LISP/lisp2/TM-2710-100-01-LISPED.pdf>,
to clarify that it was the first structure editor for Lisp, before the BBN
Teletype Editor came out:
- 1966 - LISP Editor Program LISPED
- 1967 - BBN Teletype Editor
In terms of the experience for running it, you enter through a parent
program called LISPEDIT, which allows you to read, execute, and perform
various other high-level file operations.
The STRINGEDIT program is the actual structure editor that is entered
when editing a file or creating a new one.
Token Strings
Interestingly, the program converts a file's s-expressions to *token
strings* for operating on. You can see some example conversions below:
[image: screen shot 2018-01-08 at 3 41 01 pm]
<https://user-images.githubusercontent.com/116838/34693813-a5be50ce-f48a-11e7-8f65-500c4763b887.png>
Editor Focus
The current focus of the editor (like a cursor or selection) is called the *object
fragment*. All commands operate on the object fragment, and allow you to
change your selection by manipulating the the LB and RB pointers (left
and right boundaries). In the diagram below, the t represents any token.
[image: screen shot 2018-01-08 at 3 50 55 pm]
<https://user-images.githubusercontent.com/116838/34694185-c31b4bf8-f48b-11e7-8e99-6b1dd388531f.png>
The diagram also defines directionality in terms of moving toward either
the head or the tail of a string (file):
[image: screen shot 2018-01-08 at 3 51 42 pm]
<https://user-images.githubusercontent.com/116838/34694431-b2e94996-f48c-11e7-84e1-71547516d2a1.png>
Structured Navigation
There are some interesting commands for changing the focus (object
fragment) in a structured way:
- NEXT - LB swaps with RB, and RB is moved to tail
- ONEXPR - shrinks or extends RB to encompass the smallest possible
expression
- ADVANCE - move LB forward or back
- EXTEND - move RB forward or back
Structured Modification
I can't seem to find any commands that insert or remove parens in pairs,
or to move parens across expressions.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#14>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFPvW1pAMVUudmSsRVxvUazcE9XV72b5ks5tIpADgaJpZM4RXA-R>
.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Mark H. David recently emailed me with a link to Lowell Hawkinson's LISPED editor, to clarify that it was the first structure editor for Lisp, before the BBN Teletype Editor came out:
From Lowell in 2010, in an email exchanged with Paul McJones:
In terms of the experience for running it, you enter through a parent program called
LISPEDIT
, which allows you to read, execute, and perform various other high-level file operations.The
STRINGEDIT
program is the actual structure editor that is entered when editing a file or creating a new one.Token Strings
Interestingly, the program converts a file's s-expressions to token strings for operating on. You can see some example conversions below:
Editor Focus
The current focus of the editor (like a cursor or selection) is called the object fragment. All commands operate on the object fragment, and allow you to change your selection by manipulating the the
LB
andRB
pointers (left and right boundaries). In the diagram below, thet
represents any token.The diagram also defines directionality in terms of moving toward either the head or the tail of a string (file):
Structured Navigation
There are some interesting commands for changing the focus (object fragment) in a structured way:
NEXT
- LB swaps with RB, and RB is moved to tailONEXPR
- shrinks or extends RB to encompass the smallest possible expressionADVANCE
- move LB forward or backEXTEND
- move RB forward or backStructured Modification
I can't seem to find any commands that insert or remove parens in pairs, or to move parens across expressions.
The text was updated successfully, but these errors were encountered: