1. An encoder for encoding a machine language based input file into a machine language based output file that is compressed wherein the number of bits required to represent the output file is less than the number of bits of the input file, the encoder comprising: logic for reading data from the input file; logic to parse the input file into a series of data items, the data items having an order and collectively corresponding to the input file; logic to compare the series of data items against a dictionary comprising at least mappings between terminal sequence pointers and representations of data items wherein each mapping has an associated length, the associated length for a mapping being the length of the data item pointed to by its terminal sequence pointer wherein the terminal sequence pointers are represented by a number of bits that is independent of the particular data items in the input file, wherein the dictionary is usable to provide a mapping between a terminal sequence pointer and its corresponding representation of data item independent of mapping of other data items; logic to add to the output file an output file element that is a terminal sequence pointer for data items that map to entries in the dynamic dictionary, each output file including at least one terminal sequence pointer; logic to add to the output file an output file element that is a symbol sequence comprising one or more symbols for data items that are to be represented directly in the output file; and logic to create an element mapping for the output file to indicate, for each output file element, whether the output file element corresponds to a terminal sequence pointer or a symbol sequence; logic for generating and using a stream selector, said stream selector identifying the dictionary that the sequence was encoded from, wherein the logic for using the stream selector is configured to store separately and sequentially the file elements in different streams according to the stream selector logic for storing said stream selector separately and sequentially from said stream selector's pointer data, wherein the dictionary comprises a specific terminal sequence dictionary or a plurality sequence dictionaries.