TY - JOUR
T1 - A feature model of actor, agent, functional, object, and procedural programming languages
AU - Jordan, Howell
AU - Botterweck, Goetz
AU - Noll, John
AU - Butterfield, Andrew
AU - Collier, Rem
N1 - Publisher Copyright:
© 2014 Elsevier B.V. All rights reserved.
PY - 2015/2/1
Y1 - 2015/2/1
N2 - 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.
AB - 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.
KW - Agent-oriented programming
KW - Functional programming
KW - Object-oriented programming
KW - Programming language constructs
KW - Programming languages
UR - http://www.scopus.com/inward/record.url?scp=84919463865&partnerID=8YFLogxK
U2 - 10.1016/j.scico.2014.02.009
DO - 10.1016/j.scico.2014.02.009
M3 - Article
AN - SCOPUS:84919463865
SN - 0167-6423
VL - 98
SP - 120
EP - 139
JO - Science of Computer Programming
JF - Science of Computer Programming
IS - P2
ER -