Abstract
With the increased demand for so-called “smart” systems, which are required to interact with the physical world in ever more complex ways, we are witnessing a corresponding growth in the complexity of the software that is at the core of such systems. Keeping pace with this rise in complexity is proving to be a challenge for current mainstream programming technologies, whose origins are typically rooted in increasingly outdated computing paradigms that can be traced to some of the earliest applications of computers (e.g., solving numerical problems). This paper first examines some of the salient shortcomings of current mainstream programming technologies; shortcomings that render them unsuitable for addressing modern software applications. This is followed by a discussion of emerging and necessary trends in computer language development, which point to a brand new generation of languages, called design languages. The primary technical requirements for these new languages are identified, and certain pragmatic and socio-economic issues associated with their introduction into industrial practice are reviewed. The paper concludes with a high-level summary of crucial research topics required to realize the full potential of these languages.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
See, for example, the “Smart Anything Everywhere” initiative that is part of the European Commission’s Horizon 2020 Programme (https://smartanythingeverywhere.eu).
- 2.
Author’s emphasis.
- 3.
Mathematical approaches to software are often more focused on reaching qualitative conclusions that abstract out the quantitative aspects. However, in engineering the quantitative is often a fundamental concern.
- 4.
- 5.
- 6.
In contrast to pseudo-concurrency, which can be controlled.
- 7.
While architectural description languages do exist, they are either informal or not formally coupled to the mainstream language programs that realize them.
- 8.
This form is preferred to the more common “domain-specific language” because it more clearly identifies how the language is intended to be used and also avoids possible misinterpretations that the older term might carry in some circles.
- 9.
- 10.
- 11.
- 12.
- 13.
This can be deduced from the widely used term “syntactic sugar”, which implies that syntax is merely a superfluous adornment that is not needed by “macho” programmers.
- 14.
- 15.
This is not to say that the extension mechanism need necessarily be based on the UML profile mechanism, which is possibly not the best technical solution to language extensibility.
- 16.
- 17.
References
Dijkstra, E.: My recollections of operating system design, E.W. Dijkstra Archive at the University of Texas (2001). https://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1303.PDF
Dijkstra, E., Why American Computing Science seems incurable, E.W. Dijkstra Archive at the University of Texas (1995). https://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1209.PDF
Lee, E.A.: Embedded software. In: Zelkowitz, M. (ed.) Advances in Computers, vol. 56. Elsevier Science (2002)
Brooks, F.: No silver bullet – essence and accident in software engineering. IEEE Comput. 20(4), 91–94 (1987)
Lee, L.: The Day the Phones Stopped, Plume (1992)
McConnell, S.: Code Complete: A Practical Handbook of Software Construction, 2nd edn. Microsoft Press (2004)
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987)
Weigert, T., Weil, F.: Practical experience in using model-driven engineering to develop trustworthy systems. In: Proceedings of IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (SUTC 2006), pp. 208–217. IEEE Computer Society (2006)
Corcoran, D.: The good, the bad and the ugly: experiences with model driven development in large scale projects at Ericsson. In: Kühne, T., Selic, B., Gervais, M.-P., Terrier, F. (eds.) ECMFA 2010. LNCS, vol. 6138, p. 2. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-13595-8_2
Hutchinson, J., Rouncefield, M., Whittle, J.: Model-driven engineering practices in industry. In: Taylor, R., et al. (eds.) Proceedings of the 33rd International Conference on Software Engineering (ICSE 2011), pp. 633–642. Association for Computing Machinery (ACM) (2011)
Moody, D., van Hillegersberg, J.: Evaluating the visual syntax of uml: an analysis of the cognitive effectiveness of the uml family of diagrams. In: Gašević, D., Lämmel, R., Van Wyk, E. (eds.) SLE 2008. LNCS, vol. 5452, pp. 16–34. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00434-6_3
Object Management Group (OMG): Semantics of an Executable Subset for Executable UML Models, OMG document formal/17-07-02, OMG (2017)
International Telecommunications Union (ITU): Z.101: Specification and Description Language – Basic SDL-2010, ITU Recommendation Z.101, ITU (2010)
SAE International, Architecture Analysis and Design Language (AADL): Specification AS5506B (2012). https://www.sae.org/standards/content/as5506b/
Mathworks, Inc., Simulink (2018). https://www.mathworks.com/products/simulink.html
Object Management Group (OMG), UML Profile for MARTE, OMG document formal/11-06-02 (2011). https://www.omg.org/spec/MARTE/1.1/PDF
Selic, B.: What will it take? a view on adoption of model-based methods in practice. J. Syst. Model. 11(4), 513–526 (2012)
LNCS Homepage. http://www.springer.com/lncs. Accessed 21 Nov 2016
Acknowledgement
The author would like to thank Dr. Manfred Broy for helpful suggestions on how the text could be improved.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Selić, B. (2018). Design Languages: A Necessary New Generation of Computer Languages. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Modeling. ISoLA 2018. Lecture Notes in Computer Science(), vol 11244. Springer, Cham. https://doi.org/10.1007/978-3-030-03418-4_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-03418-4_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03417-7
Online ISBN: 978-3-030-03418-4
eBook Packages: Computer ScienceComputer Science (R0)