Нет общепринятого определения вируса. В академической среде термин был употреблён Фредом Коэном в его работе «Эксперименты с компьютерными вирусами», где он сам приписывает авторство термина Лену Эдлмэну.
Формально вирус определён Фредом Коэном со ссылкой на машину Тьюринга следующим образом: M: (SM, IM, OM: SM x IM > IM, NM: SM x IM > SM, DM: SM x IM > d) с заданным множеством состояний SM, множеством входных символов IM и отображений (OM, NM, DM), которая на основе своего текущего состояния s? SM и входного символа i? IM, считанного с полубесконечной ленты, определяет: выходной символ o? IM для записи на ленту, следующее состояние машины s'? SM и движения по ленте d? {-1,0,1}.
Для данной машины M, последовательность символов v: vi? IM может быть сочтена вирусом тогда и только тогда, когда обработка последовательности v в момент времени t, влечёт за собой то, что в один из следующих моментов времени t, последовательность v? (не пересекающаяся с v) существует на ленте, и эта последовательность v? была записана M в точке t?, лежащей между t и t?:
? CM? t? j:
SM (t) = SM0 ?
PM (t) = j ?
{ CM (t, j) … CM (t, j + |v| - 1)} = v ?
? v'? j'? t'? t" :
t < t" < t' ?
{j' … j' +|v'|}? {j … j + |v|} =? ?
{ CM (t', j') … CM (t', j' + |v'| - 1)} = v' ?
PM (t")? { j' … j' + |v'| - 1 }.
где: t? N число базовых операций «перемещения», осуществлённых машиной;
PM? N номер позиции на ленте машины в момент времени t;
SM0 — начальное состояние машины;
CM (t, c) — содержимое ячейки c в момент времени t.
Данное определение было дано в контексте вирусного множества VS = (M, V) — пары, состоящей из машины Тьюринга M и множества последовательностей символов V: v, v'? V. Из данного определения следует, что понятие вируса неразрывно связано с его интерпретацией в заданном контексте, или окружении.
Фредом Коэном было показано, что «любая самовоспроизводящаяся последовательность символов: одноэлементный VS, согласно которой существует бесконечное количество VS, и не-VS, для которых существуют машины, по отношению к которым все последовательности символов является вирусом, и машин, для которых ни одна из последовательностей символов не является вирусом, даёт возможность понять, когда любая конечная последовательность символов является вирусом для какой-либо машины». Он также приводит доказательство того, что в общем виде вопрос о том, является ли данная пара (M, X): Xi? IM вирусом, неразрешим (то есть не существует алгоритма, который мог бы достоверно определить все вирусы), теми же средствами, которыми доказывается неразрешимость проблемы остановки.
Другие исследователи доказали, что существуют такие типы вирусов (вирусы, содержащие копию программы, улавливающей вирусы), которые не могут быть безошибочно определены ни одним алгоритмом.