My Pop-11 / Poplog page
Pop-11 is a great but rather unknown language, used for example in Artificial Intelligence research and education.
From What is Poplog?
Poplog is a integrated toolkit providing a highly extendable collection of languages and tools for teaching, research and development. By default it includes incremental compilers for three powerful AI programming languages
* Pop-11--the core language -- used to implement itself and the others;
* Common Lisp; and
* Prolog;
as well as
* Standard ML, a widely used functional language.
For more about Pop-11 and Poplog, see The Free Poplog portal, especially TEACH PRIMER -- An overview of Pop-11
2009-08-31: I blogged about Pop-11 and Poplog in The Pop-11 programming language and Poplog environment which includes more references.
My Pop-11/Poplog programs
Here are some of my Pop-11 programs and utilities.
- compile_test.p: Demonstration how to:
- compile a Pop-11 program to a saved (.psv) image,
- compile to an executable program.
(This was tested on Linux.)
- concord.p: Reads a file and show the number of occurrence of the words (sorted in order of occurrence). Requires GOSPL (see below).
- euler_project.p: My Pop-11 solutions of the first 16 Euler Project problems. Some solutions requires newmemo.p, and GOSPL (see below).
Here are some solutions of Project Euler problems in separate files (the later one is not included in euler_project.p)
- init.p: My init.p file.
- join.p: join(string, separator), e.g.
join('hello,world','|') results in h|e|l|l|o|,| |w|o|r|l|d. This is used for example in read_test.p.
- lisp_in_pop11_test.p: Simple demonstration how to run (Poplog's) Lisp code in Pop-11.
- mygram.p: Generates some swedish sentences given a simple grammar and lexicon.
- n_puzzle.p: n-puzzle, e.g. 8-puzzle and 15-puzzle using the library SOLVEMS.
- newmemo.p: Memo function (from Robin Popplestone's Pop-11 book)
- pop11_in_lisp_test.lsp: Simple demonstration how to run Pop-11 code in (Poplog's) Lisp.
- pop11_in_prolog_test.pl: Simple demonstration how to run Pop-11 code in (Poplog's) Prolog.
- primes.p: Generation of prime numbers using a dynamic ("lazy") list.
- prolog_in_pop11_test.p: Simple demonstration how to run (Poplog's) Prolog code in Pop-11.
- read_test.p: Read a word list and test each words against regular expressions of consecutive characters, e.g. ".*a.*.b.*c.*" (in Pop-11 'a@.@*b@.@*c@.@*'), ".*b.*c.*d.*", ".*c.*d.*e.*", etc. Requires join.p.
- read_test_strmatches.p: Read a word list and test each words against a string pattern of consecutive characters. Same as read_test.p, but uses the strmatches function (not in the standard Poplog distribution). This version is much slower than using regular expression.
- solver_banana_problem.p: (GPS) Banana problem using SOLVER library (schema and problem from Norvig "Paradigms of Artificial Intelligence Programming").
- solver_blocks_world.p: (GPS) Blocks world problem using SOLVER library (schema and problem from TEACH SOLVER).
- solver_maze_problem.p: (GPS) Maze problem using SOLVER library (schema and problem from Norvig "Paradigms of Artificial Intelligence Programming").
- solver_school_problem.p: (GPS) School problem using SOLVER library (schema and problem from Norvig "Paradigms of Artificial Intelligence Programming").
- timing_test.p: Two timing functions which only run the procedure once (as opposed to the builtin
timing which runs many times). One definition is a syntax word, the other is a procedure proper. Includes a simple test.
- tparse_test_swe.p: Test of parsing swedish sentences given a simple grammar and lexicon. Uses the TPARSE library.
Note: Some of the above program requires functions from the GOSPL (Global Open Source Poplog Library) library, such as split, split_with. The library is available from www.cs.bham.ac.uk/research/projects/poplog/, or more specific here: gospl_1_2_0.tar.gz
Created by Hakan Kjellerstrand (hakank@bonetmail.com)
Back to my home page