Can programmers escape the gentle tyranny of call/return?
Pages 163 - 172
Abstract
Although the call/return architectural style has served as the foundation of much of computing since its existence, it no longer matches a large proportion, probably the majority, of the programs or systems created today.
However, our programming languages, be they imperative, functional or object-oriented, support call/return variants as their primary or only abstraction mechanism. This mismatch between system structure and our means of expressing those systems can be overcome, but only with massive ("aircraft carrier") engineering effort that is beyond most casual developers.
In order to overcome this fundamental architectural mismatch and make software constructions easier for professionals and accessible for novices, we need to support other architectural styles on an equal footing with call/return in our programming languages.
This paper presents one approach to multi-architectural programming as well as progress with this approach.
References
[1]
2002. Resolved: Objects Have Failed. ACM. http://www.dreamsongs.com/ ObjectsHaveFailedNarrative.html
[2]
Jonathan Aldrich, Craig Chambers, and David Notkin. 2002. ArchJava: Connecting Software Architecture to Implementation. In Proceedings of the 24th International Conference on Software Engineering (ICSE ’02). Association for Computing Machinery, New York, NY, USA, 187–197.
[3]
Apple Inc. 2015. What Are Cocoa Bindings? https://developer.apple.com/ library/mac/documentation/Cocoa/Conceptual/CocoaBindings/Concepts/ WhatAreBindings.html
[4]
Andrew P. Black. 2013. Object-oriented programming: Some history, and challenges for the next fifty years. Information and Computation 231 (2013), 3 – 20. Fundamentals of Computation Theory.
[5]
Andrew P. Black, Jie Huang, Rainer Koster, Jonathan Walpole, and Calton Pu. [n. d.]. Infopipes: An abstraction for multimedia streaming. Multimedia Systems 8, 5 ([n. d.]), 406–419.
[6]
Stéphane Chatty. 2008. Programs = Data + Algorithms + Architecture: Consequences for Interactive Software Engineering. In Engineering Interactive Systems, Jan Gulliksen, Morton Borup Harning, Philippe Palanque, Gerrit C. Veer, and Janet Wesson (Eds.). Springer-Verlag, Berlin, Heidelberg, 356–373.
[7]
David Wilkie David Garlan, Robert Monroe. 1997. ACME: An Architecture Description Interchange Language. Technical Report. Carnegie Mellon University.
[8]
Edsger W. Dijkstra. [n. d.]. Letters to the Editor: Go to Statement Considered Harmful. Communication of the ACM 11, 3 ([n. d.]), 147–148.
[9]
1145/362929.362947
[10]
Stuart Feldman. 2004. A Conversation with Alan Kay. Queue 2, 9 (Dec. 2004), 20–30.
[11]
Richard P. Feynman. [n. d.]. Feynman Lectures on Computation. Addison-Wesley, Boston, MA, USA.
[12]
Roy Thomas Fielding. 2000. Architectural Styles and the Design of Network-based Software Architectures. Ph.D. Dissertation. University of California, Irvine.
[13]
David Garlan, Robert Allen, and John Ockerbloom. 1995. Architectural Mismatch: Why Reuse Is So Hard. IEEE Softw. 12, 6 (Nov. 1995), 17–26.
[14]
Adele Goldberg and David Robson. 1983. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
[15]
Glenn E. Krasner and Stephen T. Pope. 1988. A Cookbook for Using the Model-View Controller User Interface Paradigm in Smalltalk-80. J. Object Oriented Program. 1, 3 (Aug. 1988), 26–49.
[16]
Trygve M. H. Reenskaug. 1979. Thing-Model-View-Editor – an Example from a planningsystem. http://heim.ifi.uio.no/ trygver/1979/mvc-1/1979-05-MVC.pdf. http://heim.ifi.uio.no/~trygver/1979/mvc-1/1979-05-MVC.pdf
[17]
Rapide Design Team. 1997. Guide to the Rapide 1.0 Language Reference Manuals. Technical Report. Stanford University.
[18]
Mary Shaw and David Garlan. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall.
[19]
Marcel Weiher. 2010. Objective-Smalltalk:. http://objective.st
[20]
Marcel Weiher. 2017. iOS and macOS Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift. Addison-Wesley Professional.
[21]
Marcel Weiher and Craig Dowie. 2014. In-Process REST at the BBC. Springer New York, New York, NY, 193–209.
[22]
Marcel Weiher and Robert Hirschfeld. 2013. Polymorphic Identifiers: Uniform Resource Access in Objective-Smalltalk. In Proceedings of the 9th Symposium on Dynamic Languages (DLS ’13). Association for Computing Machinery, New York, NY, USA, 61–72.
[23]
Marcel Weiher and Robert Hirschfeld. 2016. Constraints as Polymorphic Connectors. In Proceedings of the 15th International Conference on Modularity (MODULARITY 2016). Association for Computing Machinery, New York, NY, USA, 134–145.
[24]
Marcel Weiher and Robert Hirschfeld. 2019. Standard Object out: Streaming Objects with Polymorphic Write Streams. In Proceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages (DLS 2019). Association for Computing Machinery, New York, NY, USA, 104–116.
[25]
3359619.3359748
[26]
Marcel Weiher and Robert Hirschfeld. 2019. Storage Combinators. In Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2019). Association for Computing Machinery, New York, NY, USA, 111–127.
[27]
3359591.3359729
[28]
David J. Wheeler. 1952. The Use of Sub-routines in Programmes. In Proceedings of the 1952 ACM National Meeting (Pittsburgh) (ACM ’52). ACM, New York, NY, USA, 235–236.
Index Terms
- Can programmers escape the gentle tyranny of call/return?
Recommendations
Constraint-Based Object-Oriented Programming
Constraint programming (CP) is a young but rapidly developing technology that supports the modeling and solution of a wide range of planning, scheduling, search, and optimization problems. The integration of CP concepts into languages from other ...
Comments
Please enable JavaScript to view thecomments powered by Disqus.Information & Contributors
Information
Published In
March 2020
228 pages
ISBN:9781450375078
DOI:10.1145/3397537
- General Chair:
- Ademar Aguiar,
- Program Chairs:
- Shigeru Chiba,
- Elisa Gonzalez Boix
Copyright © 2020 ACM.
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].
In-Cooperation
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 04 August 2020
Check for updates
Author Tags
Qualifiers
- Research-article
Conference
<Programming> '20
<Programming> '20: 4th International Conference on the Art, Science, and Engineering of Programming
March 23 - 26, 2020
Porto, Portugal
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 47Total Downloads
- Downloads (Last 12 months)6
- Downloads (Last 6 weeks)0
Reflects downloads up to 01 Mar 2025
Other Metrics
Citations
Cited By
View allView Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in