Analyzing, Optimizing and Teaching C/C++ Software and Its Development
GaZAR stands for C and C++ software development and analysis in the 21st century. Even today C and C++ are still the programming languages of choice when it comes to implementing resource and performance critical applications, libraries, and infrastructures. Therefore, it is of essential importance to do the best possible job when developing these systems.
GaZAR comprises a team of experts in the fields of (secure) software engineering, programming languages, compilers, and program analysis. GaZAR offers consulting, trainings, and tools on the development of C and C++ software projects. With our help you can realize your software projects more effective and more secure and thus more cost-efficient in the long run.
Tools are an integral building block for the effective implementation of C and C++ software projects. GaZAR allows you to integrate state-of-the-art compiler-based tools into your development processes. In addition, we offer the development of custom tools that exactly match your requirements and provide optimal development support. GaZAR, among others, relies on effective program analysis: we employ static and dynamic program analysis to analyze your projects to find bugs, programming errors, and software vulnerabilities. We also use those techniques for performance improvements. An example?: “Your project disallows the usage of the dynamic_cast operator as it turns out to be prohibitively expensive for your software project?”: No problem, we will develop a static link-time optimization that determines the runtime type in constant type to allow for a design that is easy to use and to maintain.
To implement automated analysis and refactoring tools we use the LLVM/Clang compiler-tool-chain. This tool-chain, for instance, allows the development of powerful tools such as clang-format, clang-tidy, or the Clang Static Analyzer. LLVM/Clang also provides the basis for the PhASAR framework (https://phasar.org/) our tool for static and dynamic program analysis. The employment of open-source technologies allows us to access software components that are maintained and improved by hundreds of developers, and also causes no additional license costs.