PADS is a domain-specific language designed to improve the productivity of transforming data from its raw (original) format into a format useful for analysis and decision making. A PADS description is an unambiguous, compact, machine-readable specification of the data format, but also one that is understandable by humans seeking to understand structure of the data and maintain the specification for re-use.
PADS was inspired by the type systems of modern functional programming languages. Its descriptions are declarative descriptions composed of data types, describing what the data looks like rather than how to transform it.
PADS provides primitive data types that describe atomic data elements. Integers and unsigned values of various sizes, strings, dates, and other primitives comprise the primitive type set for PADS today. We expect to augment this set as needed for primitive types common in FDR data, such as individual Boolean values and floating-point numbers. Base types in PADS are parameterizable by specifying properties such as number of characters in a numeric representation, or the termination character for strings. PADS also provides complex data types such as switched types that are dependent on data values elsewhere in an FDR record and recursive types that can for example describe tree-structured data.