/rfa

library for Research based on Finite Automata

Primary LanguageC++OtherNOASSERTION

Directories:

lib/ contains a library for Research work using Finite Automata (RFA)
     for:
     (1) pattern matching,
     (2) ranking / language counting for formatted encryption
     (3) generating random elements in a language


Build instructions:
	cd lib
	make

Testing:
	make tests

The resulting library is:
	lib/bin/rank.a

(cleaning: make cleanall)

Examples:
	lib/test/fa/src/dfa_tests.cc
          shows how DFA/NFA are constructed and how pattern matching is done
        lib/test/fa/scripts/dfa_tests.sh  testing script to invoke dfa_tests
        
	lib/test/fa_rank/src/fa_rank_tests.cc
          shows how ranking based on is done
	lib/test/fa_rank/scripts/fa_rank_tests.sh test script for fa_rank_tests

        examples/cfg
           this directory contains several examples of ranking/unranking using
           CFG grammars, including the examples used in
(1) Daniel Luchaup, Thomas Shrimpton, Thomas Ristenpart, Somesh Jha
    "Formatted Encryption beyond Regular Languages"
    21st ACM Conference on Computer and Communications Security (ACM CCS 2014)
            See end of examples/cfg/README for more info.