Home Home Uni Bielefeld BiBiServ Practical Computer Science Technische Fakultaet Home Applications Education Advanced Compiler HMM Literature Team

Combinator optimization

The combinator optimization performs the yield size analysis described in Implementing ADP in the functional and the imperative programming paradigm and replaces all occurrences of the general ~~~ combinator by appropriate variations. See ADPCombinators.lhs for a complete list of all combinators used.

Note that this is a preliminary version of the optimization. Areas that are subject to restrictions are:

  • Limited choice of terminal symbols and filters.
  • Some minor problems with the syntactic analysis. See the example grammars for correct input form.
  • Errors detected after the syntactic analysis phase will not be shown. The page simply won't load again or an "Internal Server Error" will be displayed. In these cases, press the "Back"-button of your browser to try again.

Input grammar:


Automatic table design
Test with example:

Optimized grammar:

Valid terminal symbols and filters

Terminal symbol  Language  Yield size  
empty L(empty)={}(0,0)
achar L(achar)=A(1,1)
astring L(astring)=A*(0,)
char c L(char c)={c}, c A(1,1)
string sL(string s)={s}, s A*(|s|,|s|)
minsize l
maxsize u   
size l u