6 ms·
Medley Loops: The Basic System (Lisp Object-Oriented Programming System) [pdf]
- pamoroso 2y agoVolume I of the Medley LOOPS series about the Lisp Object-Oriented Programming System, an Interlisp object extension. Volume II is coming in the late fall of 2024, Volume III in the fall of 2025.
- Rochus 2y agoThanks for sharing. I didn't realize it was available, but the version is 1.2 and date is July 2024, so it must have been around for some time.
- pamoroso 2y agoYou're welcome. Although the manuscript was circulated internally for feedback over tha past few months, we published it to the Medley Interlisp Project website only a few days ago.
- lispm 2y agoLOOPS was one of the early frameworks for AI programming (-> for Knowledge-based Systems -> especially Expert Systems) in Lisp, which also made use of the new graphical user interface of the Interlisp-D Lisp Machine from Xerox. Interlisp-D was a combination of operating system and development environment, and was developed for the same computers, which also ran Smalltalk. Both were image-based and managed the source code in the development environment. Remarkable is the fully interactive way of working in the REPL (Lisp's Read Eval Print Loop) and through the GUI, including live editing all classes/etc. via menus. LOOPS extended Interlisp with various ways to do object-oriented programming and a rule-system. There is also a "friendly primer" for Xerox LOOPS, from mid 1980s. https://bitsavers.org/pdf/xerox/interlisp-d/198510_Koto/3102242_Xerox_LOOPS_A_Friendly_Primer_Mar87.pdf https://bitsavers.org/pdf/xerox/interlisp-d/198510_Koto/3102... Note that LOOPS is an early OOP System, it's not a about iteration in a loop.
- rjsw 2y agoI was at a presentation on LOOPS in London given by Dan Bobrow and Mark Stefik, they were pitching it as an equivalent framework to KEE or ART as you describe. They had a good showcase application called Truckin' [1] that made good use of all the features of LOOPS. [1] https://www.markstefik.com/?page_id=359 https://www.markstefik.com/?page_id=359
- lispm 2y agoSome more background https://larrymasinter.net/stefik-loops.pdf https://larrymasinter.net/stefik-loops.pdf and https://www.markstefik.com/?page_id=334 https://www.markstefik.com/?page_id=334 I think LOOPS was limited by only being available on Interlisp-D related systems. Common LOOPS was supposed to be portable, but I remember it only in the context of the CLOS development as a stepping stone, but not as a product or environment like LOOPS.
- rjsw 2y agoI ran Common LOOPS in AKCL on a 386 PC. It was just an object system for programming, it didn't have a Frame System or Rule Engine as well like LOOPS. My previous environment had been Franz Lisp on the Atari ST. My copy of the Franz sources was missing flavors so I wrote my own object system for it that looked a bit like New Flavors but with a frame system built in as well. My binding to GEM from Lisp made use of the object system as well and the repl was in a GEM window.
- mark_l_watson 2y agoYes!, that Truckin’ demo was awesome. I had a 1108 Xeorx Lisp Machine, and ran InterLisp-D on it the first 18 months I had it, then switched to running Common Lisp. Such a fantastic development environment!
- 082349872349872 2y ago[just in case it saves anyone else some confusion: §s in the bitsavers scan are out of order]
- Rochus 2y agoWhat are the major differences to CLOS?
- lispm 2y agoThe answer is mostly about CLOS and not about LOOPS. Update: my remark was about an earlier posted content, which had an "AI" generated answer. That text has been removed.
- Rochus 2y agoThe book unfortunately doesn't mention CLOS, nor does it give any hints about the differences. But the focus of the book is obviously on Lisp Object-Oriented Programming, not on Expert Systems. A comparison with CLOS is therefore apparent.
- mepian 2y agoThe only way to improve GenAI-slop comments is to delete them, please stop polluting HN. EDIT: The comments I was referring to got sneakily edited. Another thing that is not nice to do.
- deleted 2y ago[deleted]
- Rochus 2y agoProviding an answer would have been more helpful. EDIT: still no helpful contribution, just nagging.
- Rochus 2y agoAnd what are the major differences between LOOPS and CommonLOOPS (besides Interlisp vs CL)?
- multjoy 2y ago[flagged]
- g19205 2y agosomebody asked what's the different between LOOPS and CLOS, but probably more time relevant question is what's the difference between LOOPS and Flavors. they list Flavors as an inspiration, but also various knowledge management systems, so there must be something additional going on there. maybe lispm knows. OP is a very long book, I haven't had a chance to read it fully, but first thing I wanted to see is how they manage message sending, and it's as jank as it is in flavors. I thought considering how custom interlisp can be they'd do something special. nope, it's just send. for those who don't know what I'm talking about, an old school smalltalk style object system lets one send arbitrary messages, without prior knowledge of what those messages might be, and treats the receiving object as a blackbox (conceptually anyway). this approach doesn't map well to s-exp, because first symbol in an s-expression drives the logic. in flavors (and in LOOPS) the symbol used is "SEND", so in order to actually send a message you write something like (send some-window :set-edge 10 10 40 40) as you can imagine a very heavily object oriented code becomes littered with sends. LOOPS seems to make it a little bit less painful by making ← an equivalent of send, so above can be written as (← SomeWindow SetEdge 10 10 40 40) this is obviously only a margin improvement. clos solved this problem by drifting away from smalltalk's blackbox concept and making everything generic function oriented, (set-edge some-window 10 10 40 40)
- amszmidt 2y agoAnd SEND is just a macro over FUNCALL. (DEFMACRO SEND (OBJECT OPERATION &REST ARGUMENTS) "Send a message to OBJECT, with operation OPERATION and ARGUMENTS." `(FUNCALL ,OBJECT ,OPERATION . ,ARGUMENTS))