skip to main content
10.1145/1370256.1370270acmotherconferencesArticle/Chapter ViewAbstractPublication PagesuccsConference Proceedingsconference-collections
research-article

Concurrent software engineering: preparing for paradigm shift

Published: 12 May 2008 Publication History

Abstract

Software systems bridge the gap between information processing needs and available computer hardware. As system requirements grow in complexity and hardware evolves, the gap does not necessarily widen, but it certainly changes. Although today's applications require concurrency and today's hardware provides concurrency, programming languages remain predominantly sequential. Concurrent programming is considered too difficult and too risky to be practiced by "ordinary programmers". However, software engineering is moving towards a paradigm shift, following which concurrency will play a more fundamental role in programming languages. We discuss some of the implications of the shift towards process-oriented programming. We outline some of the features of our own process-oriented language. Finally, we review the potential impact on software engineering and on software development processes.

References

[1]
Ada. Ada 95 reference manual. Revised International Standard ISO/IEC 8652:1995, 1995. www.adahome.com/rm95. Accessed 2008/03/12.
[2]
Joe Armstrong. A history of Erlang. In HOPL III: Proceedings of the Third ACM SIGPLAN Conference on the History of Programming Languages, pages 6.1--6.26, New York, NY, USA, 2007. ACM Press.
[3]
Fred R. M. Barnes and Peter H. Welch. Occam-π : blending the best of CSP and the π-calculus. www.cs.kent.ac.uk/projects/ofa/kroc. Accessed 2008/03/13.
[4]
Nick Benton, Luca Cardelli, and Cédric Fournet. Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems, 26(5):769--804, September 2004.
[5]
Andrew P. Black, Jie Huang, Rainer Koster, Jonathan Walpole, and Calton Pu. Infopipes: An abstraction for multimedia streaming. Multimedia Systems, 8:406--419, 2002.
[6]
Hans-J. Boehm. Threads cannot be implemented as a library. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 261--268. ACM Press, 2005.
[7]
Per Brinch Hansen. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering, 1(2):199--207, June 1975.
[8]
Per Brinch Hansen. Joyce---a programming language for distributed systems. Software---Practice and Experience, 17(1):29--50, January 1987.
[9]
Per Brinch Hansen. The Search for Simplicity---Essays in Parallel Programming. IEEE Computer Society Press, 1996.
[10]
Mark Brunelli. Question & Answer: Smalltalk with object-oriented programming pioneer Kay. searchsoa.techtarget.com/news/interview/0,289202,-sid26_gci962762,00.html. Accessed 2008/03/25.
[11]
R. H. Campbell and A. N. Habermann. The specification of process synchronization by path expressions. In G. Goos and J. Hartmanis, editors, Lecture Notes in Computer Science, volume 16, pages 89--102. Springer, 1974.
[12]
Larry Constantine and Ed Yourdon. Structured Design. Prentice Hall, 1979.
[13]
E. W. Dijkstra. Cooperating sequential processes. Technical Report Technical Report EWD-123, Technological University, Eindhoven, The Netherlands, 1965. Reprinted in {17}.
[14]
Reedy Feggins. Designing component-based architectures with Rational Rose RealTime. http://www.ibm.com/developerworks/rational/library/-797.html. Accessed 2008/03/25.
[15]
Robert W. Floyd. The paradigms of programming. Communications of the ACM, 22(8):455--460, 1979. Turing Award acceptance speech.
[16]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[17]
F. Genuys, editor. Programming Languages (NATO Advanced Study Institute). Academic Press, 1968.
[18]
A. Goldberg and D. Robson. Smalltalk-80, The Language and its Implementation. Addison-Wesley, 1983, Reprinted with corrections 1985.
[19]
Peter Grogono and Brian Shearing. MEC Reference Manual. Technical Report TR E-06, Department of Computer Science and Software Engineering, Concordia University, February 2008.
[20]
Raphael Güntensperger and Jürg Gutknecht. Active C#. In 2nd International Workshop .NET Technologies'2004, pages 47--59, May 2004.
[21]
C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666--677, August 1978.
[22]
Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 1999.
[23]
Galen C. Hunt and James R. Larus. Singularity: rethinking the software stack. SIGOPS Operating System Review, 41(2):37--49, 2007.
[24]
M. A. Jackson. Information systems: Modelling, sequencing and transformation. In R. M. McKeag and A. M. MacNaughten, editors, On the Construction of Programs. Cambridge University Press, 1980.
[25]
Willard Khorfage and Arthur P. Goldberg. Hermes language experiences. Software---Practice and Experience, 25(4):389--402, April 1995.
[26]
Thomas Kuhn. The Structure of Scientific Revolutions. University of Chicago Press, 1962. Third Edition published in 1996.
[27]
Nurudeen Lameed. Implementing concurrency in a processs-based language. Master's thesis, Department of Computer Science and Software Engineering, Concordia University, Montreal, March 2008.
[28]
Doug Lea, Pete Soper, and Miles Sabin. The Java Isolation API: Introduction, applications and inspiration. bitser.net/isolate-interest/slides.pdf. Accessed 2007/06/14.
[29]
Edward A. Lee. The problem with threads. IEEE Computer, 39(5):33--42, May 2006.
[30]
Barbara Liskov. Primitives for distributed computing. In SOSP '79: Proceedings of the Seventh ACM Symposium on Operating Systems Principles, pages 33--42, New York, NY, USA, 1979. ACM.
[31]
Jeff Magee and Jeff Kramer. Concurency; State Models and Java Programs. Wiley, second edition, 2006.
[32]
S. Matsuoka and A. Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming language. In Research Directions in Concurrent Object-Oriented Programming, pages 107--150. MIT Press, 1993.
[33]
D. May. Occam. ACM SIGPLAN Notices, 18(4):69--79, April 1983
[34]
Giuseppe Milicia and Vladimiro Sassone. The inheritance anomaly: ten years after. In SAC '04: Proceedings of the 2004 ACM Symposium on Applied Computing, pages 1267--1274, New York, NY, USA, 2004. ACM.
[35]
Robin Milner. A Calculus of Communicating Systems. Springer, 1980.
[36]
Robin Milner. Communicating and Mobile Systems: The π Calculus. Cambridge University Press, 1999.
[37]
K. Nygaard and O-J. Dahl. The development of the SIMULA language. In R. Wexelblat, editor, History of Programming Languages, pages 439--493. Academic Press, 1981.
[38]
Bran Selic. What's new in UML 2.0? IBM White Paper, April 2005. Available at ftp://ftp.software.ibm.com/software/rational/web/whitepapers/intro2uml2.pdf. Accessed 2008/03/25.
[39]
Pete Soper. JSR 121: Application Isolation API Specification. Java Specification Requests. http://jcp.org/aboutJava/communityprocess/final/-jsr121/index.html. Accessed 2008/03/15.
[40]
Robert Strom. HERMES: A Language for Distributed Computing. Prentice Hall, 1991.
[41]
Herb Sutter and James Larus. Software and the concurrency revolution. ACM Queue, 3(7):54--62, September 2005.
[42]
Peter van Roy and Seif Haridi. Concepts, Techniques, and Models of Computer Programming. MIT Press, 2001.

Cited By

View all
  • (2021)CPN.Net: An Automated Colored Petri Nets Model Extraction From .Net Based Source Code2021 1st International Conference on Artificial Intelligence and Data Analytics (CAIDA)10.1109/CAIDA51941.2021.9425201(245-250)Online publication date: 6-Apr-2021
  • (2016)Patterns and commonalities in rapid system development methodologiesInternational Journal of Business Information Systems10.5555/2961009.296101422:3(343-361)Online publication date: 1-Jan-2016
  • (2015)Competencies for paradigm shift “survival”Proceedings of the 2015 IEEE Frontiers in Education Conference (FIE)10.1109/FIE.2015.7344255(1-6)Online publication date: 21-Oct-2015
  • Show More Cited By

Index Terms

  1. Concurrent software engineering: preparing for paradigm shift

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    C3S2E '08: Proceedings of the 2008 C3S2E conference
    May 2008
    240 pages
    ISBN:9781605581019
    DOI:10.1145/1370256
    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 ACM 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]

    Sponsors

    • BytePress
    • Concordia University: Concordia University

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 12 May 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. concurrency
    2. evolvability
    3. paradigm shift
    4. programming languages
    5. software development

    Qualifiers

    • Research-article

    Conference

    C3S2E '08
    Sponsor:
    • Concordia University

    Acceptance Rates

    Overall Acceptance Rate 12 of 42 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 02 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)CPN.Net: An Automated Colored Petri Nets Model Extraction From .Net Based Source Code2021 1st International Conference on Artificial Intelligence and Data Analytics (CAIDA)10.1109/CAIDA51941.2021.9425201(245-250)Online publication date: 6-Apr-2021
    • (2016)Patterns and commonalities in rapid system development methodologiesInternational Journal of Business Information Systems10.5555/2961009.296101422:3(343-361)Online publication date: 1-Jan-2016
    • (2015)Competencies for paradigm shift “survival”Proceedings of the 2015 IEEE Frontiers in Education Conference (FIE)10.1109/FIE.2015.7344255(1-6)Online publication date: 21-Oct-2015
    • (2014)Using Category Theory and Data Flow Analysis for Modeling and Verifying Properties of Communications in the Process-Oriented Language ErasmusProceedings of the 2014 International C* Conference on Computer Science & Software Engineering10.1145/2641483.2641529(1-4)Online publication date: 3-Aug-2014
    • (2014)Why inheritance anomaly is not worth solvingProceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLE10.1145/2633301.2633307(1-12)Online publication date: 28-Jul-2014
    • (2013)Static analysis of concurrent programs by adapted vector clockProceedings of the International C* Conference on Computer Science and Software Engineering10.1145/2494444.2494476(58-66)Online publication date: 10-Jul-2013
    • (2013)Implementing generalized alternative construct for erasmus languageProceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering10.1145/2465449.2465464(101-110)Online publication date: 17-Jun-2013
    • (2010)A fair protocol for non-deterministic message passingProceedings of the Third C* Conference on Computer Science and Software Engineering10.1145/1822327.1822334(53-58)Online publication date: 19-May-2010

    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