1. A method for compressing and decompressing an initial program executable by a microprocessor or interpretable by an interpreter of an integrated circuit device, comprising the following steps of: a) providing the initial program comprising a set of initial instructions having program links, said initial instructions having an opcode and an instruction field; b) reformatting the initial instructions of said initial program to obtain intermediate instructions of an intermediate program by function f; c) determining repetition patterns in said intermediate program having m bits and comprising m−q bits fixed at 0 or 1 and q generic characters, and defining, for each repetition pattern of a list of repetition patterns, a pair formed from said repetition pattern and an instruction compressed by function h; d) replacing the intermediate instructions with compressed instructions and modifying the program links to obtain a program compressed by function g; e) replacing the compressed instructions with the intermediate instructions by function g −1 to obtain the intermediate program; and f) reformatting the intermediate instructions by function f −1 to obtain the initial program.