CMU Artificial Intelligence Repository
Home INFO Search FAQs Repository Root

SEL2: Declarative set-processing language that generates WAM code

SEL (Subset-Equational Language) is a declarative set processing language. Its main features are subset and equational program clauses, pattern matching over sets, support for efficient iteration and point-wise/incremental computation over sets, the ability to define transitive closures through circular constraints, meta-programming and simple higher-order programming, and a modest user-interface including tracing. The language seems well-suited to a number of problems in graph theory, program analysis, and discrete mathematics. The SEL compiler is written in Quintus Prolog and the run-time system is written in C. It generates WAM-like code, extended to deal with set-matching, memoization, and the novel control structure of the language. The release comes with a user manual, bibliography of papers (including .dvi files), several sample programs, and source code. Example programs include a miniature Eliza, higher-order and meta-programming with apply and univ, permutations, quicksort, maxflow using min-cut, lazy evaluator for equations, shortest distance in a directed graph, strongly connected components, and a meta-interpreter for basic SEL in SEL.

Version: 2 Requires: Quintus Prolog, C. Copying: Please send mail to if you're using the system so they can inform you of upgrades and further developments. CD-ROM: Prime Time Freeware for AI, Issue 1-1 Contact: Bharat Jayaraman Associate Professor Department of Computer Science 226 Bell Hall State University of New York at Buffalo Buffalo, NY 14260 Tel: 716-645-3194 Fax: 716-645-3464 Keywords: Authors!Jayaraman, Declarative Programming, Dynamic Programming, Eliza, Meta-Programming, Permutations, Programming Languages!Logic, Prolog!Implementations, Quicksort, SEL2, SUNY/Buffalo, Set Pattern Matching, Sets, Subset Clauses, Transitive Closures References: ?
Last Web update on Mon Feb 13 10:34:43 1995