Moore's law has ended for clock speed, but continues for transistor density, motivating the search for new ways to use more transistors to compute more in parallel. GPUs have provided one approach but must be programmed in specialist parallel programming styles. Programming would be easier if we could execute normal-looking programs with parallelization done automatically. Functional programming has been proposed as a basis for this due to its lack of state enabling execution in different orders. Previous work (Fitchett et al., 2025) showed how to do this for a basic lambda calculus language but is not practical for real world programming as many everyday constructs would have to be built up via slow recursive definitions. It is more common to extend lambda calculus into larger languages with additional primitives to do common tasks such as arrays and stacks. We do this here and implement and test our design using LogiSim Evolution.
Ritchie et al. (Thu,) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: