[HN Gopher] Medley Loops: The Basic System (Lisp Object-Oriented...
___________________________________________________________________
Medley Loops: The Basic System (Lisp Object-Oriented Programming
System) [pdf]
Author : pamoroso
Score : 45 points
Date : 2024-10-16 14:42 UTC (3 days ago)
(HTM) web link (interlisp.org)
(TXT) w3m dump (interlisp.org)
| pamoroso wrote:
| Volume 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 wrote:
| Thanks 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.
| lispm wrote:
| LOOPS 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/3102...
|
| Note that LOOPS is an early OOP System, it's not a about
| iteration in a loop.
| rjsw wrote:
| I 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
| lispm wrote:
| Some more background https://larrymasinter.net/stefik-
| loops.pdf and 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 wrote:
| I 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.
| Rochus wrote:
| What are the major differences to CLOS?
| lispm wrote:
| The 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 wrote:
| The 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 wrote:
| The 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.
| Rochus wrote:
| Providing an answer would have been more helpful.
|
| EDIT: still no helpful contribution, just nagging.
| Rochus wrote:
| And what are the major differences between LOOPS and
| CommonLOOPS (besides Interlisp vs CL)?
| multjoy wrote:
| Also, y tho.
| multjoy wrote:
| y tho
| lispm wrote:
| LOOPS (Lisp object-oriented programming systems) is written in
| Interlisp for the Interlisp-D environment, was a Xerox product
| and is from around 1981.
|
| CLOS (Common Lisp Object System) is a general OOP standard
| extension for Common Lisp. A specification was proposed in
| 1987/88. CLOS was included in the Common Lisp standard and
| widely implemented by various implementations.
|
| Both were a "system" -> meaning that it is available and
| programmable also at runtime.
|
| LOOPS is an actual piece of software with a GUI, which
| integrates into the Interlisp-D development environment.
|
| LOOPS was based on message sending, classes, methods,
| interactive changes to the object system.
|
| CLOS does not use message sending, but calling generic
| functions with multi-methods and multiple dispatch.
|
| LOOPS supports Access-oriented Programming with Active Values.
| Demons can act based on access to objects. CLOS has no direct
| support for that. Maybe partial (-> :before & :around &:after
| methods in CLOS).
|
| LOOPS includes a rule-system. CLOS systems have that as
| extensions. It's not a part of CLOS itself.
|
| LOOPS includes graphical & menu tools to browse and edit
| objects. CLOS systems have some of that as extensions,
| depending on the implementation.
|
| LOOPS was a programming system for knowledge-based systems,
| like Expert Systems. CLOS was not designed for that, but such
| programming systems were also developed for Common Lisp, some
| using CLOS. Example: KnowledgeWorks from LispWorks.
|
| LOOPS was later rewritten as CommonLOOPS for Common Lisp. The
| software "Portable Common LOOPS" (PCL) then was further
| developed into a portable (and widely ported) and complete
| prototype implementation of CLOS + MOP.
| Rochus wrote:
| Thanks. I'm mostly interested in OO features. I assumed that
| LOOPS was essentially an OO extension of Interlisp (and thus
| a precursor of CLOS) due to the title. Does it really do
| "message sending", or is it rather like Smalltalk, which does
| "normal" method dispatch and call, but where the term
| "message sending" is use for this?
| lispm wrote:
| The answer would depend on what you think "message sending"
| is and why you think Smalltalk does not support "message
| sending".
| Rochus wrote:
| Meanwhile I have had a chance to skim the book and I have
| reason to believe that OO in LOOPS is solved very
| similarly to how it is in ST-76 and 80, i.e. virtual
| method dispatch via selector and calling a compiled
| method. A selector is simply the method signature, even
| if some people in the Smalltalk community refer to it as
| a "message". In contrast, there was actually something
| like message passing in Smalltalk-72, albeit synchronous.
___________________________________________________________________
(page generated 2024-10-19 23:00 UTC)