Compiled computer programs are essentially sequences of CPU instructions. As we learned, code compiled for a desktop computer won't run on a smartphone, because these machines have CPUs of different architectures. Still, a compiled program may not be usable on two computers that share the same CPU architecture. That's because programs must communicate with the computer's operating system to run.

