Parser for conjunctive context sensitive grammers

Unrestricted, conjunctive context sensitive grammar parser

LuZc can parse a wide range of languages. Specifically unrestricted grammars, with a superfluous conjunctive operator for syntactic sugar. The complimentary operator is planned for a later version. Not only does it do this, but through state memoization it is guaranteed to terminate. The nesting classes of languages/grammars can be summarized and explained by describing the types of production rules permitted.

Unrestricted grammars contain Non-contracting(often ambiguously referred to as context-sensitive) grammars which in turn contain Context-free grammars, which contain Regular grammars which are what the majority of general parsers aim to work on.


Parallel execution

Through the usage of OpenMP 4.0 most of the main loops are executed in SIMD as well as using every core/thread available to the system. There is a daemon process which takes a scripted list of commands to be processed. The program is currently being (gradually)migrated to use MPI and OpenCL instead, to allow for GPU offloading across a cluster. Compilation, particularly involving heavy optimization and continuous releases is a computation-heavy task which justifies this approach.


Language agnosticism

Some other compiler-compilers work by taking as input a description of the language, output source code for a parser which would then need to be compiled with other source code files to produce a usable program. LuZc will take a language description file, internally convert it into a modular data structure, perform some optimizations on it and directly parse, operating on the created data structure.