Vadim Zaytsev aka @grammarware

GrammarLab: Foundations for a Grammar Laboratory GrammarLab




Currently there are several projects available to continue the life of GrammarLab, with key publications related to them:

GA: Grammar Analytics [SMR2004] [IWPC2000] [SLE2013]
There are many measurements that can be taken on a grammar, metrics that can be used to analyse them, assess them, visualise them, even compare them. In this extension, you start with a clean grammar, perform calculations based on its contents and present them in a way that makes sense to the user. Advanced execution of this project will involve some form of fact extraction and smell detection.
GI: Grammar Inference [SAC2003] [ASN2005] [CSMR2005] [CSMR2005] [SAC2006] [ICGI2006] [SC2008] [IETS2008] [SCP2014] [UvA2014]
Grammars are not always written by humans: they can be inferred by an algorithm: completely or partially, in a form of an automaton or directly of grammar production rules. Research shows that flat out inference of grammars based on just samples is slow and unreliable, but it works realistically well if inference is done partially or based on trees or token models. There is no current component of GrammarLab that does this.
GN: Grammar Notation [CACM1977] [VU2010] [SAC2012] [LDTA2012]
Grammars are written in a variety of notations, and translations from one to another are frequently needed when a grammar engineer finds a suitable grammar in one notation but wants to use it with a toolkit that requires another. Advanced execution of this project will involve notation analysis and feature modelling.
GM: Grammar Mutation [BX2012] [SQM2014] [SCP2014]
More often than not, changes to a grammar can be expressed in an abstract policy or convention: lowercase nonterminal names, lack of left recursion, etc. Automatically inferred large scale adjustments like these are called grammar mutations and are implemented in a component called SLEIR. Advanced execution of this project will involve empirical evaluation based on improving quality of some extracted grammars of the Grammar Zoo.
GR: Grammar Recovery [CSMR2000] [IEEES2001] [SPE2001] [SLE2008] [SQJ2011] [SAC2012] [LDTA2012] [SCP2014]
Grammars found in books and other non-executable sources could be a nice source of information, if they did not contain so many errors. There are heuristics that help extract a proper grammar from a lexically unreliable source, implemented in a Python component called Grammar Hunter. Advanced execution of this project will involve empirical evaluation based on turning some fetched grammars of the Grammar Zoo into extracted ones.
GT: Grammar Testing [FASE2001] [ICTSS2006] [SLE2011] [UvA2014]
Grammars can be used as guides to generate test data (each test case is a program) representing a language. Such functionality was implemented a couple of times outside GrammarLab in Java+ANTLR, source code is available. Advanced execution of this project will involve generation of negative test cases.
GX: Grammar Transformations [FME2001] [LDTA2001] [LDTA2002] [ATEM2004] [SQJ2011]
Unlike grammar mutations where changes are inferred based on the grammar, there are some transformations that are needed to be specified manually and precisely. Typical uses of these include expressing differences between two conceptually different implementations of the same language, or expressing changes between language versions. GrammarLab includes a suite of such transformation operators called XBGF, a previous implementation of most of them is available in Prolog as well.




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