Software Language Processing Suite
Mission
The project facilitates exposition and comparison of approaches and
techniques on language processing in a way that is relevant for CS
students, teachers, scientists, engineers and practitioners.
Pages
-
Project page at GitHub
(legacy project page at SourceForge)
-
List of recent commits and
statistics on them
(legacy subversion repository)
-
XBGF Language Manual
-
SLPS Grammar Zoo (Ada, C, C++, C#, Java, Modula, …)
-
SLPS Grammar Tank (BNF, EBNF, FL, TESCOL, …)
-
TestMatch project (comparing languages based on parsing generated test data)
-
Java grammars link repository
-
FAQ (legacy)
-
Other projects of @grammarware
Structure
topics
- fl
-
The Factorial Language that is used in the SLPS for prototyping various tools
and approaches. Every subdirectory there is a different implementation of FL:
Java, Haskell, Prolog, etc.
- convergence
-
Grammar convergence tool (Language Convergence Infrastructure)
and grammar convergence scenarios: Factorial Language, Java Language Specification, etc.
- extraction
-
Grammar extractors: getting grammar knowledge in a form of BGF from
ANTLR, DCG, Ecore, HTML, BNF dialects, source code, SDF, TXL, Rascal, XML Schema, …
- recovery
-
Grammar recovery attempts that go beyond simple extraction: Grammar Recovery Kit, Grammar Hunter, ISO C#, VU Browsable Grammars, etc.
- grammars
-
Extracted grammars that form the SLPS Zoo, SLPS Tank.
Of many grammars located here, the most interesting ones are those of
Ada, C, C++, C# and Java.
- storage
-
Formats for storing language documentation and grammar syntax definitions:
Language Document Format, BNF-like Grammar Format and similar topics. Work on metasyntax in progress.
- investigation
-
Grammar analysis, metrics, visualisations, normalisations.
- export
-
The reverse of extraction: mappers from BGF to elsewhere:
pretty-printers, hypertext enablers, generators of Rascal and TXL, etc.
- transformation
-
Grammar transformation and language document transformation, complete with test sets.
- testing
-
Combinatorial test data generation framework and input data for and around the
TestMatch project.
- exercises
-
Lab exercises for the course Programming Paradigms and Formal Semantics.
- parsing
-
Parsing-related materials for the same course (in Haskell).
- semantics
-
Semantics-related materials for the same course (in Prolog).
- documents
-
Language documents. Work in progress.
- NielsonN07
-
Some encodings of semantics derived from Nielson and Nielson, 2007 (and prior versions).
In particular, the denotational semantics of While language.
- apimigration
-
API migration. Work in progress.
- java
-
Legacy.
shared
- xsd
-
XML Schema definitions for various DSLs used in SLPS: BTF, BGF, XBGF, LDF, XLDF, LCF, etc.
- xsl
-
eXtensible Stylesheet Language transformations for mappers and extractors.
Mostly populated with BGF-to-elsewhere mappings, but also Ecore-to-BGF, TXL-to-BGF and LDF-to-elsewhere ones are found here.
- prolog
-
Prolog sources for some extractors and for the XBGF engine (as well as any other future Prolog sources).
- python
-
Python sources for many different SLPS tools, of which the most interesting ones are perhaps LCI and XLDF.
- tools
-
Shell scripts that wrap SLPS tools in a user-friendly way. People who use SLPS frequently are advised to
add this directory to their system PATH.
- generators
-
Shell wrappers for BGF-to-XBGF generators.
- wrappers
-
Shell wrappers for running parsers and evaluators in order to generalize
their interface for the LCI. These wrappers are rarely, if ever, executed by a human.
- edd
-
EBNF Dialect Definitions. Work in progress.
download
Automated installers for third party software which is needed for SLPS stuff to work.
ANTLR, FOP, JastAdd, MSV, ElementTree, GDK, PyParsing, etc.