In article <3s8ep1$hqm@mirv.unsw.edu.au> Xun Xu <xuxun> writes:
> Hi. What is pop? I saw some talks about pop server which
> is said to speak pop-2 and pop-3. I used archie and tried
> to locate some info about pop but got some 'popd' source
> code and nothing more.
>
> Can anyone tell me what pop is exactly? if it is only
> a language, then what is pop server for ?
[Sussex doesn't seem to carry the comp.answers group, so I can't set
up a proper FAQ posting... IPR]
HELP POPFAQ Ian Rogers
CONTENTS - (Use <ENTER> g to access required sections)
(You're using Ved to read this, right? :-)
-- Is this the Post Office Protocol
-- What *is* Pop then
-- Can I get POP for my MS-DOS/Macintosh/Archimedes/...
-- Can I get Poplog for my Sun/Solbourne/DEC/MIPS/SG/HP/VAX
-- Is Glow like Pop11
-- What's so good about an open stack
-- What's so good about the Virtual Machine
-- Acknowledgements
-- Is this the Post Office Protocol -----------------------------------
[ir]
No it's not, sorry. If that's what you're looking for then try
comp.protocols.pop or comp.protocols.internet or something (but I don't
actually know if they exist). Here's the charter for comp.lang.pop:
The group serves for discussions on the programming language Pop11,
and related environments, libraries, languages and the Plug User
Group.
Relevant topics, in this group, would cover all aspects of Pop11
programming (from novice questions to expert efficiency issues) and
the current BSI standards effort (Pop9x), and how it relates to
other languages of this type (e.g. GLOW, Pepper).
Also relevant would be conversations about the Poplog programming
environment and its libraries. Eg.
OOP in Pop11 Flavours, or objectclass etc. and how they relate to
other OOP languages (C++, CLOS etc.)
X windows hacking in Pop11
Mixed language programming (eg. between Lisp/Pop11/Prolog/ML/C etc.)
that is supported in Poplog but isn't relevant for discussion in
other, pure language, groups
Techniques for Artificial Intelligence programming (it is an AI
language after all :)
and so on.
[jl]
Yes, there's a name clash because both had a thing called
POP2. It doesn't matter. The protocol is on POP3, the
language is at Pop11, the language system is called POPLOG.
If you want to know more about the protocol, please read
1225 Rose, M.T. Post Office Protocol: Version 3. 1991 May;
16 p. (Format: TXT=37340 bytes)
To get this document, send a one-line mail message to
<mail-server@nisc.sri.com> with no subject:
SEND rfc1225.txt
[as]
I have an incomplete draft introduction to Pop-11 which is currently
available via anonymous ftp.
ftp ftp.cs.bham.ac.uk
<login as "anonymous" with password your email address>
cd pub/dist/poplog
get primer.Z
quit
then
uncompress primer
-- What *is* Pop then -------------------------------------------------
[sfk]
From the computer scientist's viewpoint, the most important qualities of
Pop are :-
* Garbage collection (automatic store management).
* The language is dynamically typed (cf. Lisp).
* Arguments and results are passed and returned via a stack which
is open to the user to manipulate in any way.
* Procedures are first class datatypes, can be arbitarily nested,
and provide full-lexical scoping.
[as]
* Incremental compilation
* lightweight processes
* extendable syntax and explicit virtual machine
-- Can I get POP for my MS-DOS/Macintosh/Archimedes/... ---------------
[sfk]
I only know of one implementation for the PC and that's one called
GLOW. I've only seen this system reviewed once in (wait for it ...)
the UK section of Byte magazine & no one I know has tried it out.
Alas, I've lost the relevant article. So, please please will someone
post the contact details for the GLOW implementation?
Incidentally, GLOW is a fairly major deviant from the "mainstream" of
Pop languages.
[as]
The Brighton based company Cognitive Applications Ltd produced an
implementation of Pop-11 called Alphapop, which was, I think, very
favourably reviewed in Byte around May 1986 by Dick Pountain.
I think the price has dropped substantially since those days, especially
for academics, though development froze some years ago, and it is now
only a small though very usable subset of Poplog Pop-11. For more
information contact:
Cognitive Applications Ltd
4 Sillwood Terrace
Brighton
BN1 2LR
+44 (0) 273 821600
[rl]
AlphaPop (Pop11 for the Macintosh) - the prices:
The standard AlphaPop package includes:
Software
Language Guide book
Reference Manual book
A single user license costs L400; academic price L300. Additional
licenses are quite cheap, and the 25% academic discount applies
across these also.
There is a 'student edition'. It includes:
Software
Electronic version of reference manual
(it is intended for people who are being taught Pop11, and
therefore don't need the full tutorial documentation)
This edition costs L120, and is available to bona-fide students.
(All prices exclude VAT).
AlphaPop - the version (also, AlphaPop - the Caveat):
The current version of AlphaPop is 1.2.3. We have never charged
anyone for an upgrade; and have always tried to contact all known
customers when there was an upgrade; if anyone still has an older
version, please send me the disk (Ben Rubinstein at Cognitive
Applications, address below) and we will upgrade you.
This version of AlphaPop has basic graphics facilities. It does
not support colour, QuickTime etc. It runs under System 7, but
does not run with 32-bit addressing switched on. It runs under
every operating system from 3.4 to 7.1, and on every known
Macintosh (current and discontinued), most of which have been
introduced since it shipped. It runs happily on a 512K Mac;
and can take advantage of more memory, up to 8MB.
Now the caveat: anyone buying AlphaPop should be aware that we
have no plans to upgrade it further. As noted above, there seems
every reason to believe it will continue to be compatible for
some time to come; but we can't guarantee it, nor should you
expect upgrades to take advantage of new features such as QuickTime.
We do not actively market AlphaPop, but are happy to sell it to
anyone who enquires, provided this is understood.
AlphaPop - the contact address:
(In the US + Canada, please contact:
Computable Functions Inc.,
35 South Orchard Drive
Amherst MA 01002
USA
Tel: (413) 253-7637
)
Outside North America:
Cognitive Applications Ltd
4 Sillwood Terrace
Brighton
BN1 2LR
Tel: 0273-821600
Fax: 0273-722767
EMail: UK0025@applelink.apple.com
[kers]
So far as I know, there are no FTP'able versions of Pop at all. Pop also
tends not to run on MS-DOS machines, historically (I think) because of
their pig-poor addressing and underpowered CPUs; this has changed
recently. (Poplog does run on Sequent Symmetrys, which are high-end
*86's. I think.)
Some person somwhere was rumoured to be doing a Pop look-fairly-like
called Saffron, or Karl, or Salt. Something like that. But I don't think
they've done anything with it recently. Lazy frogs.
[sk]
So, Chris, when is Pepper going public? (Karl?? Oh, Karl Popper.)
-- Can I get Poplog for my Sun/Solbourne/DEC/MIPS/SG/HP/VAX -----------
[ir]
Yup. Ring Integral Solutions Ltd on 0256-882028 or email isl@isl.co.uk
[jw]
I am pleased to announce that Poplog 14.2 is now available to UK
academic institutions from the University of Sussex.
(Commercial institutions: please contact Integral Solutions Ltd
on 0256-882028).
Poplog 14.2 introduces the Poplog User Interface (PUI), a control-panel
type interface to Poplog; enhanced XVed facilities, including a
scroll-bar and menu-bar; native VED support for bold, italic, and
underlined text, colours and line graphics; and support for OpenWindows
3.0, SunOS 4.1.3, and HP-UX 8.0.
Hosts supported include: SPARCstations, SPARCservers, Solbourne, DEC
workstations and servers, MIPS, Silicon Graphics, HP, VAX (VMS and
Unix).
Prices range from L600 (ex. VAT) for a single workstation licence to
L1500 (ex. VAT) for a single architecture site licence.
For further information, please send email to
popsales@uk.ac.susx.cogs
or telephone Alison Mudd on
0273-678116
-- Is Glow like Pop11 -------------------------------------------------
[es]
The article on GLOW can be found in the UK May 1992 issue of Byte
magazine, page 84UK-8.
For those who haven't got access to this issue, I will give a very
brief summary, including quotes from the article:
"Glow Comes Out of the Dark" (Dick Pountain)
Inspired by POP-11, Glow is a powerful list-processing language for
MS-DOS.
Glow, like its ancestor POP-11, is an interactive list-processing
language with a syntax that resembles Pascal or structured BASIC.
It supports loops as well as recursion, lists as well as strings, and
objects with multiple inheritance.
A major difference between it an POP-11 is that Glow employs strictly
lexical, rather than dynamic, scoping. This means that the visibility
of any object is governed by the program text (as in Pascal), rather
than the run-time environment.
MS-DOS Glow calls your own external text editor from inside Glow and
compiles directly from the editor, so long as it is not too large.
One difference is in definition of procedures: instead of POP's
define ... enddefine
Glow uses
def ... edef
Glow performs I/O via two streams called "source" and "sink" which you
redirect as necessary to real I/O devices, called IODEVS (e.g.
console,keyboard,stderr ...).
The first-release version of Glow that I have is stable, but has some
rough edges ...
Glow is the BASIC of AI languages.
Glow for Macintosh or MS-DOS with manual and user's guide, 69.95
pounds, from
Andrew Arblaster
NightOwl software
Bollostraat 6
B-3140 Keerbergen
Belgium
32-015-234871
fax:32-015-234871
-- What's so good about an open stack ---------------------------------
[sfk]
The key difference between Lisp and Pop's semantics (putting the
important issue of syntax aside for one moment) is the open stack.
.... Having the open stack at the heart of all programming
idioms gives the language family its distinctive character.
One idiom will illustrate my point nicely. The task is (say) to add all
the numbers in a list. One of the built-in routines is called "applist"
which takes a list and a procedure as arguments. It then applies the
procedure to each element of the list in turn. We can add all the
numbers in the list as follows:
applist( 0, LIST, nonop + ) ;;; nonop disables infix-ness of +
Oh? Did I say applist takes 2 arguments? Well, I did but don't forget
that Pop uses an open stack, so there's no notion of argument checking.
All the arguments go on the stack and come off again. This example
works because the iteration starts with 0 on the stack, then element 1
gets pushed, then the top two items get added and replaced by the single
result, and so on and so on. At the end of the iteration, all that
remains on top of the stack is the answer.
Of course, the equivalent functional programming idiom (e.g. in Lisp)
would be to define a slightly different higher-order operator to
"applist" which might be called "fold".
define fold( sofar, list, op );
if null( list ) then
sofar
else
fold( op( sofar, hd( list ) ), tl( list ), op )
endif
enddefine;
That's always true. You can always do it in Lisp (or whatever) but you
just do it differently. Here's another nice use of the open stack.
Suppose we want to flatten a tree (represented as a list of lists) into
(say) a list. What's the idiomatic way of writing that? The answer is
to use the stack as a temporary collection zone.
define flatten_to_stack( tree );
if islist( tree ) then
applist( tree, flatten_to_stack )
else
tree
endif
enddefine;
define flatten( tree );
[% flatten_to_stack( tree ) %]
enddefine;
The virtue of writing flatten this way is that, for example, it might
turn out that we didn't want a list but we wanted a vector (1D array).
Well that was easy ...
define flatten( tree );
{% flatten_to_stack( tree ) %}
enddefine;
Changed my mind. I wanted to convert the vector into a string. Fine ...
define flatten( tree );
consstring(#| flatten_to_stack( tree ) |#)
enddefine;
Note the use of count brackets "#|" and "|#" in the above example.
These simply count the difference in the length of stack before and
after the expression between them. This makes sense when you know that
consstring expects a count of the number of characters on the stack as
its "topmost" argument.
This is probably far too long a post already but I could go on about the
open stack for another couple of hours. It is the most wonderful thing
about Pop and defines the language family. It is never the case that it
makes you able to do things that can't be done in Lisp-like languages
but it does make you want to say them rather differently!
-- What's so good about the Virtual Machine ---------------------------
[as]
The Poplog Virtual Machine extends the simple Forth-like
facilities of Pop-11 (push something onto the stack, pop the top of
the stack into ..., call procedure X, return from current procedure,
go to, branch if, etc. etc.) with quite a lot of sophisticated
constructs including mechanisms for handling abnormal exits,
interrogating the control chain, trapping procedure exit and entry
(and running user-specified set-up and re-set procedures), handling
both dynamic and lexical scoping, handling a stack of prolog
continuations, runtime creation of new procedures, etc. The PVM
makes it possible to implement incremental compilers for a variety
of high level languages, not all with efficiency comparable to
stand-alone implementations, but still quite tolerably fast, and
much faster than if they were interpreted. (E.g. you can build a
prolog interpreter in any Lisp system, but not an incremental prolog
compiler.) For more on the Poplog VM see
Robert Smith, Aaron Sloman, John Gibson
`POPLOG's two-level virtual machine support for interactive languages' in
Research Directions in Cognitive Science Volume 5: Artificial Intelligence,
eds D. Sleeman and N. Bernsen, Lawrence Earlbaum Associates, 1992
(Also Cognitive Science Research Paper 153, School of Cognitive
and computing sciences University of Sussex, Jan 1990).
[ir]
See HELP * POPREFS for more papers on Poplog
-- Acknowledgements ---------------------------------------------------
kers - Chris Dollin, HP Labs
sfk - Steve Knight, HP Labs
jl - Jonathan Laventhol, D. E. Shaw & Co.
rl - Rudi Lutz, Sussex University
rp - Robin Popplestone, Massachusetts University
ir - Ian Rogers, Sussex University
as - Aaron Sloman, Birmingham University
jw - John Williams, Sussex University
--- C.all/help/popfaq
--- Copyright University of Sussex 1992. All rights reserved. ----------
|