algorithm assembly language batch file buffer overflow burn-in cobol cpu cache common subexpression elimination compiler compiler optimization computer science computer virus constant folding control flow data execution prevention data compression debugger disassembler donald knuth error function fitness function floppy disk glsl genetic programming ibm pc compatible inline function internet interrupt just-in-time compilation mix machine learning metaprogramming object-oriented programming one instruction set computer opcode operating system p-code machine perl polymorphic code polymorphism programming language pseudocode quaject reverse engineering reward runtime self-replication shellcode structured programming subroutine terminology tiny c compiler unix variable