Stunnix CXX-Obfus is a code obfuscator for C and C++ source code. It converts source code into highly a mangled form, making it extremely difficult for competitors or customers to study, analyze, reuse, and re-work, while fully retaining functionality of the original code. It has many options to control all aspects of code hiding, and has full support for all syntax constructs. It is designed for multi-file projects with mixed C and C++ source and arbitrary heavy use of the C preprocessor. It includes advanced tools to exclude API symbols from mangling.
Ccide reads C, C++, BASIC, or bash source code containing embedded decision tables from stdin, expands the tables, copies the remaining statements, and forms a compilable C or C++ source module, executable bash script, or interpretable BASIC program. Erratic side effects are avoided by evaluating all condition expressions at exactly the same time, and by performing all evaluations and actions in the original sequence.
lhs2TeX is a literate programming tool. It is implemented as a preprocessor that generates LaTeX code from literate Haskell sources. It allows for and provides different styles for the formatting of code. You can easily select between representing operators with mathematical symbols or with ASCII approximations, as well as deciding whether or not to highlight keywords. The formatting of your own defined tokens may be adjusted. Preprocessor-style conditionals are supported, and Haskell can be used to generate parts of the document.
Easy Generator Generator (EGG) is a development tool for fast and easy realization of XML to plain-text tranformations. It is similar to XSLT, Velocity, or JSP but emphasises source code generation in a model-driven generative developmen process. It comes with an iterative development process for creating templates that lets you build transformations quickly and easily.
"jscpp" is an ANSI C preprocessor and language parser that can analyze and instrument C code. Currently, its most prominent application is to add tracing to existing C programs simply by recompiling and linking it with the "jscc" compiler frontend. The standard tracing shows when a function is entered or left along with the parameters passed or return values. It is also possible to trace each source line and watch read/write access to simple variables. Tracing is achieved by instrumenting the source code before calling the system compiler. The program is modular and can be easily extended to other kinds of source code modifications.
The MetaC programming language is a 100% backward compatible extension to the C language that adds reflections and the ability to analyze and modify C source code at compile time. It has been specially designed to search for arbitrary code structures and instantiate new source code. Typical applications for MetaC based meta-programs are development tasks concerning embedded and real-time software. Examples are API abstraction and retargeting to a new API (ever been locked to a vendor-specific API?), application specific debugging and profiling on an embedded target, and WCET measurements.
Sunifdef is a command line tool for eliminating superfluous preprocessor clutter from C and C++ source files. It is a more powerful successor to the FreeBSD 'unifdef' tool. Sunifdef is most useful to developers of constantly evolving products with large code bases, where preprocessor conditionals are used to configure the feature sets, APIs or implementations of different releases. In these environments, the code base steadily accumulates #ifdef-pollution as transient configuration options become obselete. Sunifdef can largely automate the recurrent task of purging redundant #if logic from the code.
Pyspice is an easily extendable SPICE pre-processor written in Python to reduce simulation times with little loss in accuracy. It was inspired by John Sheahan's spicepp and developed as a modular and extensible method of pre-processing netlists. Primarily, it has been used to reduce netlists from the output of layout extraction tools. It combines parallel MOSFETs and capacitors, and optionally drops small capacitors. Planned improvements include a hierarchical namespace (e.g. .subckt/.ends and .alter blocks), more devices, and .include/.model support. Unlike other pre-processors, comments and blank lines are preserved in their relative positions. This keeps the output netlist readable for subsequent editing or processing.
PySTDF is a Python module which makes it easy to work with STDF (Teradyne's Standard Test Data Format). STDF is a commonly-used file format in semiconductor tests. Automated test equipment (ATE) from such vendors as Teradyne, Verigy, LTX, Credence, and others supports this format. PySTDF provides event-based stream parsing of STDF version 4, indexers that help structure the data into a more useful tabular form, and the ability to generate missing summary records or new types of derivative records. The parser architecture is very flexible and can easily be extended to support STDF version 3 and custom record types.