1. A nonvolatile semiconductor memory device having a memory cell array arranged with a plurality of memory cells capable of storing information as a result of a change in an electrical attribute and of erasing and programming information by electrically changing the electrical attribute, wherein the memory cell can store one data value to be selected from the same number of data values as a plurality of distribution ranges for programming which are not mutually overlapping, in accordance with that the electrical attribute belongs to one of the distribution ranges for programming, the nonvolatile semiconductor memory device comprising: an erasure means for erasing the memory cell so that the electrical attribute of the memory cell selected as a target of erasing may belong to a distribution range for erasing that does not overlap any of the distribution ranges for programming; and a programming means for programming the memory cell so that the electrical attribute of an erased memory cell being a target of programming may belong to any one of the distribution ranges for programming.