![]() |
|
|
|
|
1
13th April 04:13
External User
Posts: 1
|
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/ |
|
|
|
|
|