@MastersThesis{Brown_STEP.2003,
  author   = {Rhodes H. F. Brown},
  title    = {
  	{STEP}: A Framework for the Efficient Encoding of General Trace Data},
  school   = {McGill University},
  year     = {2003},
  address  = {Montr{\'e}al, Qu{\'e}bec, Canada},
  url      = {http://www.sable.mcgill.ca/step/},
  abstract = {
    Program tracing is a common technique employed by software and hardware
    developers who are interested in characterizing the dynamic behavior of 
    complex software systems. However, despite the popularity of trace-driven
    analyses, there are surprisingly few options for encoding trace data in a
    standard format.

    In the past, many developers have resorted to creating their own ad-hoc
    trace encoding solutions, tailored specifically to the data they are
    considering. Such efforts are usually redundant, and in many cases lead to
    an obscure and poorly documented trace format which ultimately limits the
    reuse and sharing of potentially valuable information.

    The STEP system was created to address this problem by providing a standard
    method for encoding general program trace data in a flexible and compact
    format. The system consists of a trace data definition language along with
    a compiler for the language and an encoding architecture that implements a
    number of common trace compaction techniques. The system simplifies the
    development and interoperability of trace clients by encapsulating the
    encoding process and presenting the data as an abstract object stream.

    This thesis presents a detailed description of the STEP system and evaluates
    its utility by applying it to a variety of trace data from Java programs.
    Initial results indicate that compressed STEP encodings are often
    substantially more compact than similarly compressed naive formats.
  },
}

