A feature model of actor, agent, functional, object, and procedural programming languages

The number of programming languages is large and steadily increasing. However, little structured information and empirical evidence is available to help software engineers assess the suitability of a language for a particular development project or software architecture. We argue that these shortage...

Full description

Saved in:
Bibliographic Details
Published in:Science of computer programming Vol. 98; pp. 120 - 139
Main Authors: Jordan, Howell, Botterweck, Goetz, Noll, John, Butterfield, Andrew, Collier, Rem
Format: Journal Article
Language:English
Published: Elsevier B.V 01.02.2015
Subjects:
ISSN:0167-6423, 1872-7964
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:The number of programming languages is large and steadily increasing. However, little structured information and empirical evidence is available to help software engineers assess the suitability of a language for a particular development project or software architecture. We argue that these shortages are partly due to a lack of high-level, objective programming language feature assessment criteria: existing advice to practitioners is often based on ill-defined notions of ‘paradigms’ [3, p. xiii] and ‘orientation’, while researchers lack a shared common basis for generalisation and synthesis of empirical results. This paper presents a feature model constructed from the programmer's perspective, which can be used to precisely compare general-purpose programming languages in the actor-oriented, agent-oriented, functional, object-oriented, and procedural categories. The feature model is derived from the existing literature on general concepts of programming, and validated with concrete mappings of well-known languages in each of these categories. The model is intended to act as a tool for both practitioners and researchers, to facilitate both further high-level comparative studies of programming languages, and detailed investigations of feature usage and efficacy in specific development contexts. •A survey of existing programming language comparisons and comparison techniques.•Definitions of actor, agent, functional, object, and procedural programming concepts.•A feature model of general-purpose programming languages.•Mappings from five languages (C, Erlang, Haskell, Jason, and Java) to this model.
ISSN:0167-6423
1872-7964
DOI:10.1016/j.scico.2014.02.009