Efficiently using multicore architectures demands an increasing degree of fluency in parallel programming. Current programming tools and techniques are unable to bridge the wide gap between the power of modern computer architectures and the ability of programmers to efficiently harness that power. This thesis shows how the codesign of language, compiler optimizations, and runtime support can enable efficient and correct parallel programming. It does so by providing solutions that facilitate concurrency in each of the dominant programming models. It first describes ASPEN, a language and runtime that addresses the challenges faced by programmers of network services. A SPEN employs a distributed programming model and a novel thread allocator w...