The impact of software engineering research on modern progamming languages

@article{Ryder2005TheIO,
  title={The impact of software engineering research on modern progamming languages},
  author={B. Ryder and M. Soffa and M. Burnett},
  journal={ACM Trans. Softw. Eng. Methodol.},
  year={2005},
  volume={14},
  pages={431-477}
}
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… Expand
Language design and analyzability: a retrospective
TLDR
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. Expand
The Reaction of Open-Source Projects to New Language Features: An Empirical Study of C# Generics
TLDR
Through an empirical study of the generics feature in open-source projects, it is found that although they have the same claimed benefits in different programming languages, generics is more readily used in C# than in Java and that the benefits of generics are manifested more clearly in C # programs. Expand
An Overview of ALIA4J - An Execution Model for Advanced-Dispatching Languages
TLDR
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. Expand
A project approach to the theory of programming languages
TLDR
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. Expand
Elimination of redundant polymorphism queries in object-oriented design patterns
TLDR
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. Expand
Corpus-based empirical research in software engineering
TLDR
This thesis suggests a method of corpus (re-)engineering and applies it to an existing collection of Java projects and performs two extensive empirical studies, where it performs a broad and diverse range of analyses on the language for privacy preferences (P3P) and on object-oriented application programming interfaces (APIs). Expand
An Evaluation Framework and Comparative Analysis of the Widely Used First Programming Languages
TLDR
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. Expand
Liberating Composition from Language Dictatorship through First-class Composition
The software engineering discipline faces many challenges; one of the important challenges is managing the complexity of software [5]. We are building increasingly large and complex software systems,Expand
A formal mechanism for analysis and re-implementation of legacy programs
TLDR
This paper presents a formal mechanism for analysis and re-implementation of legacy (mainly data-processing) application systems and is based on a software tool that will be able to extract useful information from their source code. Expand
A structured language for manipulating process models
TLDR
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. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 204 REFERENCES
End-user software engineering with assertions in the spreadsheet paradigm
TLDR
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. Expand
Abstraction and Specification in Program Development
"Abstraction and Specification in Program Development" offers professionals in program design and software engineering a methodology that will enable them to construct programs that are reliable andExpand
Aspect-Oriented Programming
TLDR
An analysis of why certain design decisions have been so difficult to clearly capture in actual code is presented, and the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects. Expand
Structured programming
TLDR
The first monograph has suggested that in analysing a problem and groping towards a solution, a programmer should take advantage of abstract concepts such as sets, sequences, and mappings; and judiciously postpone decisions on representation until he is constructing the more detailed code of the program. Expand
The coming-of-age of software architecture research
  • M. Shaw
  • Computer Science
  • Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001
  • 2001
TLDR
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. Expand
An introduction to the construction and verification of Alphard programs
TLDR
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. Expand
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 identifyingExpand
A study on exception detection and handling using aspect-oriented programming
  • Martin Lippert, C. Lopes
  • Computer Science
  • Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium
  • 2000
TLDR
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. Expand
Hints on programming language design.
TLDR
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. Expand
History of programming languages---II
In 1978, the ACM Special Interest Group on Programming Languages (SIGPLAN) sponsored a Conference on the History of Programming Languages (HOPL). Papers were prepared and presentations made at aExpand
...
1
2
3
4
5
...