Abstract
This work presents a language extension to A+ that allows developers to conveniently handle external objects in A+ code. It discusses a set of object-oriented concepts and investigates their implications for the A+ language. For these new language elements, new symbols are added, and each of them represents basic operations (member access, member modification, type casting, and indexing) on objects. For each new operation the underlying mechanism is presented, and simple examples are provided showing their usage. Using these new operations, various .NET classes can be accessed and used from A+ programs without writing any additional code.
The presented language extension in this paper is runtime agnostic and it could enable the interoperation of A+ not only with the .NET framework but with other object-oriented runtimes, too. Additionally this extension adds the basic mechanisms for implementing full object-oriented support for the A+ language in the future.
Csaba Bátori was with the Department of Software Engineering at the time of the language extension work.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Project hosted at: https://github.com/elecro/aplusdotnet.
References
Brown, R.G.: Object oriented APL: an introduction and overview. In: Proceedings of the International Conference on APL-Berlin-2000 Conference, APL 2000, pp. 47–54. ACM, New York (2000). https://doi.org/10.1145/570475.570482
Clayton, L., Eklof, M.D., McDonnell, E.: ISO/IEC 13751:2000(E): Programming Language APL. Extended, International Standards Organization, June 2000
Dyalog Ltd.: Dyalog APL. http://www.dyalog.com/. Accessed 15 June 2021
ECMA International: ECMA-334 - C# Language Specification, 5th edn., December 2017. https://www.ecma-international.org/wp-content/uploads/ECMA-334_5th_edition_december_2017.pdf. Accessed 15 June 2021
Gál, P., Kiss, Á.: Implementation of an A+ interpreter for .NET. In: Proceedings of the 7th International Conference on Software Paradigm Trends (ICSOFT 2012), Rome, Italy, pp. 297–302. SciTePress, 24–27 July 2012. https://doi.org/10.5220/0004129202970302
Gál, P., Kiss, Á.: A comparison of maintainability metrics of two A+ interpreters. In: Proceedings of the 8th International Joint Conference on Software Technologies - ICSOFT-EA, (ICSOFT 2013), pp. 292–297. INSTICC, SciTePress (2013). https://doi.org/10.5220/0004597702920297
Girardot, J.J., Sako, S.: An object oriented extension to APL. In: Proceedings of the International Conference on APL: APL in Transition, APL 1987, pp. 128–137. ACM, New York (1987). https://doi.org/10.1145/28315.28330
Kromberg, M.J.: Arrays of objects. In: Proceedings of the 2007 Symposium on Dynamic Languages, DLS 2007, pp. 20–28. Association for Computing Machinery, New York (2007). https://doi.org/10.1145/1297081.1297087
Bernardin, L., Chin, P., DeMarco, P., et al.: Maple Programming Guide. Maplesoft (2011)
MathWorks: Matlab Object-Oriented Programming (2021). https://www.mathworks.com/help/pdf_doc/matlab/matlab_oop.pdf. Accessed 15 June 2021
Morgan Stanley: A+ Language Reference (1995–2008). http://www.aplusdev.org/Documentation/. Accessed 15 June 2021
Register, A.H.: A Guide to MATLAB Object-Oriented Programming. Scitech Pub Inc. (2007). https://doi.org/10.5555/1202571
Acknowledgements
This research was supported by grant NKFIH-1279-2/2020 of the Ministry for Innovation and Technology, Hungary.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Gál, P., Bátori, C., Kiss, Á. (2021). Extending A+ with Object-Oriented Elements. In: Gervasi, O., et al. Computational Science and Its Applications – ICCSA 2021. ICCSA 2021. Lecture Notes in Computer Science(), vol 12957. Springer, Cham. https://doi.org/10.1007/978-3-030-87013-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-87013-3_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-87012-6
Online ISBN: 978-3-030-87013-3
eBook Packages: Computer ScienceComputer Science (R0)