Software Language Processing Suite at GitHub
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


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.


The page is maintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated: December 2012.
XHTML 1.0 CSS 2.1