A computer virus is a piece of code hiding in a program that can automatically copy itself or embed a mutation of itself in other programs Cannot spread on their own Often require a host program to live in Infected program: a host program with virus Uninfected program (healthy program): a program cleared of all viruses Disinfected program: a program once infected but now cleared of viruses Specific to particular types of file systems, file formats, and operating systems Particular types of architecture, CPU, languages, macros, scripts, debuggers, and every other form of programming or system environment .