探索Interlisp-10和Twenex
Exploring Interlisp-10 and Twenex

原始链接: https://journal.paoloamoroso.com/exploring-interlisp-10-and-twenex

作者正在深入研究Lisp的历史,探索20世纪70年代的Interlisp-10,这是一个为DEC PDP-10大型机设计的命令行环境。它早于更著名的图形化Interlisp-D,并具有TTY编辑器——最初的Interlisp编辑器,由于其强大的命令集和宏支持,至今仍然在批处理编辑中出人意料地有用。 为了真实地体验它,作者正在使用SDF托管的公共可访问TWENEX系统(DEC操作系统),从Linux机器访问。虽然设置过程中初始密码出现了一个小问题,但与TWENEX的交互感觉出人意料地熟悉,揭示了它对Interlisp术语(例如REPL的“Exec”)甚至后来的操作系统如CP/M和MS-DOS的影响。 虽然缺乏交互式帮助文档,但该系统提供了一个完整的Interlisp-10实现。作者发现TTY编辑器高效且直观,现在已准备好在这个历史悠久的Lisp环境中开始一个小型的编程项目。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 探索 Interlisp-10 和 Twenex (paoloamoroso.com) 13 分,由 naves 发表于 4 小时前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

I'm exploring another corner of the Interlisp ecosystem and history: the Interlisp-10 implementation for DEC PDP-10 mainframes, a 1970s character based environment that predated the graphical Interlisp-D system.

I approached this corner when I set out to learn and experiment with a tool I initially checked out only superficially, the TTY editor. This command line structure editor for Lisp code and expressions was the only one of Interlisp-10. The oldest of the Interlisp editors, it came before graphical interfaces and SEdit.

On Medley Interlisp the TTY editor is still useful for specialized tasks. For example, its extensive set of commands with macro support is effectively a little language for batch editing and list structure manipulation. Think Unix sed for s-exps. The language even provides the variable EDITMACROS (wink wink). Evaluating (PRINTDEF EDITMACROS) gives a flavor for the language.

For an experience closer to 1970s Interlisp I'm using the editor in its original environment, Interlisp-10 on TWENEX. SDF provides a publicly accessible TWENEX system running on a PDP-10 setup. With the product name TOPS-20, TWENEX was a DEC operating system for DECSYSTEM-20/PDP-10 mainframes derived from TENEX originally developed by BBN.

SDF's TWENEX system comes with Interlisp-10 and other languages. This is Interlisp-10 in a TWENEX session accessed from my Linux box:

A screenshot of a Linux terminal showing Interlisp-10 running under TWENEX in a SSH session.

Creating a TWENEX account is straightforward but I didn't receive the initial password via email as expected. After reporting this to the twenex-l mailing list I was soon emailed the password which I changed with the TWENEX command CHANGE DIRECTORY PASSWORD.

Interacting with TWENEX is less alien or arcane than I thought.

I recognize the influence of TENEX and TWENEX on Interlisp terminology and notation. For example, the Interlisp REPL is called Exec after the Exec command processor of the TENEX operating system. And, like TENEX, Interlisp uses angle brackets as part of directory names. It's clear the influence of these operating systems also on the design of CP/M and hence MS-DOS, for example the commands DIR and TYPE.

SDF's TWENEX system provides a complete Interlisp-10 implementation with only one notable omission: HELPSYS, the interactive facility for consulting the online documentation of Interlisp. The SDF wiki describes the basics of using Interlisp-10 and editing Lisp code with the TTY editor.

After a couple of years of experience with Medley Interlisp the Interlisp-10 environment feels familiar. Most of the same functions and commands control the development tools and facilities.

My first impression of the TTY editor is it's reasonably efficient and intuitive to edit Lisp code, at least using the basic commands. One thing that's not immediately apparent is that EDITF, the entry point for editing a function, works only with existing functions and can't create new ones. The workaround is to define a stub from the Exec like this:

(DEFINEQ (NEW.FUNCTION () T))

and then call (EDITF NEW.FUNCTION) to flesh it out.

Transferring files between TWENEX and the external world, such as my Linux box, involves two steps because the TWENEX system is not accessible outside of SDF.

First, I log into Unix on sdf.org with my SDF account and from there ftp to kankan.twenex.org (172.16.36.36) with my TWENEX account. Once the TWENEX files are on Unix I access them from Linux with scp or sftp to sdf.org. This may require the ARPA tier of SDF membership.

Everything is ready for a small Interlisp-10 programming project.

#Interlisp #Lisp

Discuss... Email | Reply @[email protected]

联系我们 contact @ memedata.com