[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3397537.3397546acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

Can programmers escape the gentle tyranny of call/return?

Published: 04 August 2020 Publication History

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]
[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.
[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.
[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.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
Programming '20: Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming
March 2020
228 pages
ISBN:9781450375078
DOI:10.1145/3397537
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

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Call/Return
  2. Combinators
  3. Constraints
  4. Data Flow
  5. Means of Abstraction

Qualifiers

  • Research-article

Conference

<Programming> '20

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 47
    Total Downloads
  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media