Mombu the Programming Forum

Go Back   Mombu the Programming Forum > Programming > New to Poplog
User Name
Password
REGISTER NOW! Mark Forums Read




Reply
1 13th April 04:13
aaron sloman
External User
 
Posts: 1
Default New to Poplog



rouan.van.dalen@gmail.com writes:

Poplog is not a programming language, but an extendable software
development environment containing incremental compilers for several
languages:

Pop-11 (the core language, least well known)
For more information on Pop-11 see the primer
http://www.cs.bham.ac.uk/research/pr...poplog/primer/
(HTML. A PDF version is also available.)
That also gives a partial answer to the question about
datastructures provided. Pop-11 has a library called
objectclass, which provides similar functionality to the
Lisp CLOS object-oriented package, including multiple
inheritance and generic functions.

Common Lisp
Prolog
Standard ML

There is more information about poplog here:

http://www.cs.bham.ac.uk/research/pr...plog.info.html

All those languages have been used for writing commercial
applications, the last three in stand alone environments, though
some commercial work has used two of the poplog languages (usually
Pop-11 and one other).

The best known commercial application developed in Poplog was based
mainly on Pop-11: the data-mining toolkit Clementine, developed by
ISL and then Sold to SPSS, who decided to convert it to C++/Java for
closer compatibility with all their other software. I believe some
of the flexibility/functionality was lost in the conversion.
Sometimes developing in an AI language then converting to another
language, such as C, C++ or Java, is faster and cheaper than doing
all the development in the target language.

For more on Clementine, see
http://www.spss.com/clementine/

That page claims:

One customer received a 600:1 first-year return, generating an
additional $1.8 billion in revenue, by using Clementine to reduce
non-compliance and erroneous payments, and minimize fraud and abuse.

Pop-11 has also been used (and in a few places is still being used)
to teach AI programming and computational cognitive science, but
there is considerable pressure to use more widely known languages,
such as Java, unfortunately.

Regarding FFI

Within Poplog, each of the languages Pop-11, Common Lisp, Prolog and
ML can be combined with any of the others because they share a
common virtual machine, the Poplog virtual machine, which is
compiled to machine code for the host platform.

Poplog's foreign function interface supports communication with C,
and Fortran, as illustrated in David Young's popvision toolkit:

http://www.cs.bham.ac.uk/research/pr...plog/popvision

Several of the help files illustrate uses of the external interface,
e.g.:

http://www.cs.bham.ac.uk/research/pr...n/help/arrpack
http://www.cs.bham.ac.uk/research/pr...on/help/lapack

The graphical tools in poplog build on the X window libraries


http://www.cs.bham.ac.uk/research/pr...og/figs/rclib/

Regarding efficiency, Pop-11 will typically run a lot faster than an
interpreted AI language, because everything is compiled to machine
code (using the incremental compiler that is part of the run time
system).

However some of the flexibility of the language, including use of
universal types, run-time type checking, and ease of run-time
debugging has a cost: it is not possible to optimise the machine
code as fully as in some other languages.

That is one of the reasons why the popvision library uses pop-11 in
combination with C and Fortran. Pop-11 gives the flexibility of
development and testing, along with full access to AI language
capabilities such as pattern matching, rule-based programming, etc.
while the externally linked programs provide fast number crunching in images.

There are many reasons for popularity of languages including
portability, efficiency, institutional politics, availability of
text books, etc.

Poplog/Pop-11 has suffered from the fact that the Windows
implementation does not include support for graphics. When
Poplog Clementine was sold on windows it required an expensive
additional library that provided access to the X window facilities.
Nowadays systems like vmware allow poplog to be run on windows
machines, but not with full integration into windows.

Jonathan Cunningham is developing a 'native' graphical interface to
the pop11/Poplog on windows.

I assume that will eventually be contributed to the open-poplog
project:

http://www.cs.bham.ac.uk/research/pr...penpoplog.html


Aaron
http://www.cs.bham.ac.uk/~axs/
  Reply With Quote


 


2 13th April 04:13
spam
External User
 
Posts: 1
Default New to Poplog



More than just multiple inheritance, also multi-methods, i.e. method
despatch based on the classes of multiple arguments. This is something
lacking in Smalltalk (often considered the original OO language,
although many of the ideas were already present in Simula), and also in
languages like C++, Java etc.

[ Digression: in C++, methods are called "member functions". This
terminology doesn't make sense when methods do not belong to a
single class, as is the case with despatch on a single argument,
since the method is not a function which is a "member" of any
single class. ]

The reason multi-methods are omitted from C++ is, almost undoubtedly[*],
one of efficiency: despatch on a single argument can be done using
"v-tables".

I see no justification for this limitation in Java. Steve Leach has
explained eloquently, in the objectclass documentation, how the method
despatch mechanisms [in objectclass] have only a very small overhead,
even compared to C++ (which had maximal efficiency as a design goal).

When multi-methods are appropriate, programming around their lack is as
ungainly as trying to program in an OO style in a non-OO language.
However, I do concede that you don't /often/ need them! :-)
[*] Somewhere at home I have a copy of "The Design and Evolution of
C++" by Bjarne Stroustrup, who invented the language, but my copy
is hiding, and I can't remember whether he discusses this.


Yes.

I foresee no reason why it could not be made available on the Free
Poplog website as well, if anyone wants to do that, when it becomes
available.

Jonathan
  Reply With Quote


 


Reply


Thread Tools
Display Modes




666