Language design and analyzability: a retrospective

  • Authors:
  • Barbara G. Ryder;Ben Wiedermann

  • Affiliations:
  • Department of Computer Science, Virginia Tech, Blacksburg, VA;Department of Computer Science, Virginia Tech, Blacksburg, VA

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

There is tension between programming language design for modularity and flexibility of programming and the amenability of the resulting programs to static analysis. At the start of Software Practice and Experience in 1971, most languages in commercial use were procedural (e.g., FORTRAN, ALGOL, PL/I) and on the whole were easier to analyze than languages of today such as JavaScript and Python. Modern languages include dynamic features, which enhance prototyping of approaches, often resulting in programs that are difficult for software tools or humans to understand. Starting with this perspective, we explore the relationship between language features and the ability of static analysis to precisely determine control flow and data flow in programs, thus enabling program optimization, transformation and understanding.