Programs that runs on "Program Files(x86)" use the WOW64 framework subsystem (aWindows 32-bit on Windows 64-bit is a set of drivers and APIs intented to run x32 applications over a x64 architecture system):
The WoW64 subsystem comprises a lightweight compatibility layer that has similar interfaces on all 64-bit versions of Windows. It aims to create a 32-bit environment that provides the interfaces required to run unmodified 32-bit Windows applications on a 64-bit system. Technically, WoW64 is implemented using three dynamic-link libraries (DLLs):
- Wow64.dll, the core interface to the Windows NT kernel that translates between 32-bit and 64-bit calls, including pointer and call stack manipulations
- Wow64win.dll, which provides the appropriate entry-points for 32-bit applications
- Wow64cpu.dll, which takes care of switching the processor from 32-bit to 64-bit mode
64 bits system need to "emulate" 32 bits applications, that is the reason why Windows need to "segregate" two program filesProgram Files folders are needed.