A multi-core processor system includes a context area, which contains an array of stack core processing elements, a storage area that contains expensive shared resources (e.g., object cache, stack cache, and interpretation resources), and an execution area, which contains complex execution units such as an FPU and a multiply unit. The execution resources of the execution area, and the storage resources of the storage area, are shared among all the stack cores through one or more interconnection networks. Each stack core contains only frequently used resources, such as fetch, decode, context management, an internal execution unit for integer operations (except multiply and divide), and a branch unit. By separating the complex and infrequently used units (e.g., FPU or multiply/divide unit) from the simple and frequently used units in a stack core, all the complex execution resources are shared among all the stack cores, improving efficiency and processor performance.