Programs encounter increasingly complex and fragile mappings to computing platforms, resulting in performance characteristics that are often mysterious to students, practitioners, and even researchers. We discuss some steps toward an experimental methodology that demands and provides a deep understanding of complete systems, the necessary instrumentation and tools to support such a methodology, and a curriculum that teaches the methodology and tools as a fundamental part of the discipline. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features General Terms Languages Keywords Programming languages curriculum
Doug Lea, David F. Bacon, David Grove