FRCTL is a lightweight, modular code generation framework designed to promote the transfer and reuse of common transformation logic between projects. Through heavy utilization of graph theory and recursion, FRCTL takes tasks that traditionally require large amounts of highly specific logic and accomplishes them in a generic fashion that requires less code by orders of magnitude. FRCTL takes full advantage of hyper-modern programming techniques to take the headache out of code generation, encouraging developers to adopt maintainable practices and quickly deliver flexible, reusable generation pipelines.
FRCTL’s software architecture mirrors that of the data structures on which it operates, encouraging developers to view code generation through the modern lens of tree traversal and graph transforms. While allowing for a wide range of strategies, FRCTL gently pushes developers toward modern, maintainable practices.
FRCTL can be used in a multitude of ways. As an ad-hoc solution for rapid prototyping, FRCTL can be called directly from the command line as an executable. For a transparent approach (ideal for large projects) that is hidden from developers, FRCTL can be integrated into compilation pipelines via Make or CMake. As a “happy medium” between the two, FRCTL provides a script-based approach via Python that allows developers to create deterministic, highly traceable code generation pipelines that can be transferred between projects.
Cross-Language Syntax Trees
Although FRCTL is primarily intended for C and C++, it represents code in a serializable format that can represent any programming language. This allows for rapid generation of cross-language interfaces. FRCTL can generate Python interfaces for C and C++ functions and data structures out-of-the-box, requiring no prior knowledge of Python/C++ language bindings.