The impact of software engineering research on modern programming languages

  title={The impact of software engineering research on modern programming languages},
  author={Barbara G. Ryder and Mary Lou Soffa and Margaret M. Burnett},
  journal={ACM Transactions on Software Engineering and Methodology (TOSEM)},
  pages={431 - 477}
  • B. Ryder, M. Soffa, M. Burnett
  • Published 1 October 2005
  • Computer Science
  • ACM Transactions on Software Engineering and Methodology (TOSEM)
Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this relationship by focusing on several major features of current programming languages: data and procedural abstraction, types, concurrency, exceptions, and visual programming mechanisms. The influences are determined by tracing references in publications in both fields… 

Figures from this paper

Language design and analyzability: a retrospective
The relationship between language features and the ability of static analysis to precisely determine control flow and data flow in programs is explored, thus enabling program optimization, transformation and understanding.
An Evaluation Framework and Comparative Analysis of the Widely Used First Programming Languages
A framework to evaluate the existing imperative, and object oriented languages for their suitability as an appropriate FPL is proposed and a customizable scoring function is devised to compute a quantitative suitability score for a language, which reflects its conformance to the proposed framework.
A project approach to the theory of programming languages
One approach to teaching a Theory of Programming Languages course in the context of a student body who are intelligent and capable, but limited in background with respect to language experience is seen.
An Overview of ALIA4J - An Execution Model for Advanced-Dispatching Languages
This paper presents the ALIA4J approach to bring such re-use to language families with advanced dispatching mechanisms like pointcut-advice or predicate dispatching, and shows that a significant amount of them can be re-used across language families.
Elimination of redundant polymorphism queries in object-oriented design patterns
This thesis presents an investigation of two new techniques for eliminating redundancy inherent in uses of dynamic polymorphism operations such as virtual dispatches and type tests in Jikes RVM and an improved evaluation methodology is derived for characterizing the performance of adaptive just-in-time compilation strategies.
Liberating Composition from Language Dictatorship through First-class Composition
There is substantial benefit in offering languages where abstractions and composition techniques are not hard-wired; rather they should be easy to introduce on demand by software engineers as new types of compositions are identified.
A structured language for manipulating process models
  • Henry H. Bi
  • Computer Science, Business
    Bus. Process. Manag. J.
  • 2010
A novel, human-understandable process manipulation language (PML) for specifying operations (e.g., insertion, deletion, merging, and split) on process models that can be standardized and facilitated and automated through using a structured language like PML.
Toward harnessing a Java high-level language virtual machine for supporting software testing
This research argues that HLL VMs provide a reasonable basis for building an integrated software testing environment and devised two software testing features that build on the characteristics of a Java virtual machine (JVM) to automate weak mutation.
How practitioners perceive the relevance of software engineering research
A survey at Microsoft where 3,000 industry practitioners were invited to rate the relevance of research ideas contained in 571 ICSE, ESEC/FSE and FSE papers that were published over a five year period suggests that practitioners are positive towards studies done by the software engineering research community.


End-user software engineering with assertions in the spreadsheet paradigm
An approach for supporting assertions in end-user software, focusing on the spreadsheet paradigm is described, and results show that the end users were able to use the assertions to reason about their spreadsheets, and that doing so was tied to both greater correctness and greater efficiency.
A comparison of programming languages for software engineering
Four programming languages (Fortran, Cobol, Jovial and the proposed DoD standard) are compared in the light of modern ideas of good software engineering practice. The comparison begins by identifying
The coming-of-age of software architecture research
  • M. Shaw
  • Computer Science
    Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001
  • 2001
This retrospective on a decade-plus of software architectureResearch examines the maturation of the software architecture research area by tracing the types of research questions and techniques used at various stages and how results build up over time.
An introduction to the construction and verification of Alphard programs
This paper introduces Alphard by developing and verifying a data structure definition and a program that uses it and shows how each language construct contributes to the development of the abstraction and discusses the way the language design and the verification methodology were tailored to each other.
A study on exception detection and handling using aspect-oriented programming
  • Martin LippertC. Lopes
  • Computer Science
    Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium
  • 2000
This study took an existing framework written in Java/sup TM/, the JWAM framework, and partially reengineered its exception detection and handling aspects using AspectJ, an aspect oriented programming extension to Java, and found it supported implementations that drastically reduced the portion of the code related to exception Detection and handling.
Hints on programming language design.
The view that a programming language is a tool which should assist the programmer in the most difficult aspects of his art, namely program design, documentation, and debugging is presented.
History of programming languages---II
This book is the culmination of work on a 1993 conference (HOPL-II) whose development started in 1990 and was a follow-on to the first HOPL, held 15 years earlier (1978), and is a classic in the history of programming literature.
What you see is what you test: a methodology for testing form-based visual programs
A testing methodology for form-based visual programs is presented that is validation driven and incremental, and an interface to the methodology is provided that does not require an understanding of testing theory.
Scaling Up Visual Programming Languages
The scaling up problem is how to expand applicability without sacrificing the goals of better logic expression and understanding, and nine major subproblems are discussed and emerging solutions from existing VPL systems are described.
Programming language concepts
This revision of a popular, text/reference guide analyzes and evaluates the important concepts found in current programming languages based on how the language supports software development and improves the reader's ability to appreciate and evaluate programming languages.