FP является следующей лучшей парадигмой, которая является наверняка. Теперь то, какой язык мог быть следующим шагом, Который является сложными вещами, но я верю, могло быть Haskell, F#, Clojure, Ocaml или Erlang. Или мог быть Python с большим количеством конструкций FP и лучшей поддержки параллелизма/производительности, или также Perl 6 с попугаем выглядит очень интересным.
Есть три основных способа поиска вирусов. Вы можете сканировать файлы, чтобы узнать, есть ли в них код известных вирусов. Вы можете сканировать файлы, чтобы увидеть, будет ли код работать с вирусами. Вы можете подождать, пока программа сделает то, чего она не должна делать, и пометить программу как зараженную.
Вы должны сканировать файлы при их первом создании, а после этого делать это по расписанию. Вам нужно будет установить драйвер ядра, чтобы следить за действиями программ и останавливать их от вредоносных действий.
Многие антишпионские программы работают точно так же. Например, Spybot S&D может отслеживать изменения реестра, которые могут быть установкой шпионского ПО.
Они используют сигнатуры или определения того, как выглядит вирус, и сравнивают их с файлами, которые он сканирует.
См. эту статью от SciAm для хорошего объяснения.
Существуют разные типы обнаружения вирусов. Некоторые из различных методов, которые они используют:
1) Посмотрите на двоичный состав файла на предмет совпадения или частичного совпадения в базе данных известных вирусов и троянов (наиболее распространенный метод)
2) Посмотрите, что делает программа, и посмотрите, сможет ли она когда-нибудь делает что-нибудь похожее на вирусы / трояны
3) Анализирует программный код (иногда дизассемблирует программный код) и ищет вредоносные объекты. Это часто бывает очень сложно, и обычно это делают только продвинутые программы обнаружения.