1. A communication device communicating in conformance with a prescribed communication standard, the communication device comprising: a first virtual program that includes a protocol stack defined by the prescribed communication standard and configured to be executed via the protocol stack; wherein the first virtual program further comprises (1) only a program configured to execute a function of receiving data from outside or a function of sending the data to the outside which is a first function of the communication device, and does not comprise a program configured to execute a function of processing the data after receiving the data from the outside or a function of processing the data before transmitting the data to the outside which is a second function of the communication device, and (2) a parameter that is used for transmitting and receiving the data; a second virtual program that does not include any protocol stack; wherein the second virtual program further comprises (1) only a program configured to execute the second function of the communication device not using any protocol stack which is a function of processing the data after receiving the data from outside or processing the data before transmitting the data to the outside and does not comprise a program configured to execute a function of receiving data from outside or a function of sending the data to the outside which is the first function of the communication device, and (2) a parameter that is used for processing the data; a storage storing configured to non-temporarily store the first virtual program and the second virtual program; a volatile memory configured to temporarily store the first virtual program and the second virtual program non-temporarily stored in the storage when the first virtual program and the second virtual program are executed; a circuitry configured: to read one of the first and second virtual programs from the storage; to store the one of the first and second virtual programs into the volatile memory; to execute the one of the first and second virtual programs; to verify free area of the volatile memory after completion of the execution of the one of the first and second virtual programs; to delete the one of the first and second virtual programs from the volatile memory when it is verified that there is no free area of the volatile memory to store another of the first and second virtual programs; to read the other of the first and second virtual programs from the storage; to store the other of the first and second virtual programs into the volatile memory; and to execute the other of the first and second virtual programs, thereby, to switch the first and second virtual programs to be executed and to successively execute the first and second virtual programs.