Hancock is a C-based domain-specific language designed to make it easy to read, write, and maintain programs that manipulate large amounts of relatively uniform data to build signatures. The motivation for Hancock was facilitating fraud detection by understanding the normal behavior of AT&T customers. Because Hancock is embedded in C, it inherits all the functionality of C. Valid C programs are also valid Hancock programs, and Hancock programs can use libraries written for C. But Hancock is more than C. In addition to C constructs, Hancock provides domain-specific forms to facilitate large-scale data processing. For a given data-processing task, Hancock may be suitable if:
- The task requires a small number of linear passes over a relatively uniform data source.
- The task requires storing persistent information.