1. A processor-implemented method of transforming a first declarative description of a processor of packets into a second declarative description of the processor of the packets, comprising: inputting the first declarative description of the processor of the packets of a communication protocol, the first declarative description including a first plurality of rules that includes a plurality of actions for manipulating a plurality of fields of the packets, each rule including at least one of the actions, and at least one of the rules including a plurality of the actions and a guard condition for enabling and disabling at least one action in the plurality; transforming the first declarative description into the second declarative description of the processor of the packets of the communication protocol, the second declarative description including a second plurality of rules for manipulating the fields of the packets, each rule in the second plurality corresponding to an action of a rule in the first plurality, and each action of each rule in the first plurality corresponding to a rule in the second plurality, the rule in the second plurality including the action of the rule in the first plurality; and outputting the second declarative description of the processor of the packets of the communication protocol.