Skip to main content

An approach to fair applicative multiprogramming

  • Conference paper
  • First Online:
Semantics of Concurrent Computation

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 70))

Abstract

This paper presents a brief formal semantics of constructors for ordered sequences (cons) and for unordered multisets (frons) followed by a detailed operational semantics for both. A multiset is a generalization of a list structure which lacks order a priori; its order is determined by the a posteriori migration of computationally convergent elements to the front. The introductory material includes an example which demonstrates that a multiset of yet-unconverged values and a timing primitive may be used to implement the scheduler for an operating system in an applicative style. The operational semantics, given in PASCAL-like code, is described in two detailed steps: first a uniprocessor implementation of the cons/frons constructors and the first/rest probes, followed by an extension to a multiprocessor implementation. The center of either implementation is the EUREKA structure transformation, which brings convergent elements to the fore while preserving order of shared structures. The multiprocessor version is designed to run on an arbitrary number of processors with only one semaphore but makes heavy use of the sting memory store primitive. Stinging is a conditional store operation which is carried out independently of its dispatching processor so that shared nodes may be somewhat altered without interfering with other processors. An appendix presents the extension of this code to a ‚fair“ implementation of multisets.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. D.P. Friedman and D.S. Wise. CONS should not evaluate its arguments. In Automata, Languages and Programming, S. Michaelson and R. Milner (eds.), Edinburgh, Edinburgh University Press (1976), 257–284.

    Google Scholar 

  2. D.P. Friedman and D.S. Wise. Applicative multiprogramming. Technical Rept. No. 72, Computer Science Dept., Indiana University (December, 1978).

    Google Scholar 

  3. D.P. Friedman and D.S. Wise. A conditional, interlock-free store instruction. Preliminary version in M.P. Pursley and J.B. Cruz, Jr. (eds.), Proc. 16th Allerton Conf. on Communication, Control, and Computing, Univ. of Ill., Urbana (1978), 578–584.

    Google Scholar 

  4. P. Henderson and J.H. Morris, Jr. A lazy evaluator. Proc. 3rd ACM Symp. on Principles of Programming Languages (1976), 95–103.

    Google Scholar 

  5. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Comm. ACM 21, 7 (July, 1978), 558–565.

    Article  Google Scholar 

  6. J. McCarthy. A basis for a mathematical theory of computation. In Computer Programming and Formal Systems, P. Braffort and D. Hirschberg (eds.), Amsterdam, North-Holland (1963), 33–70.

    Google Scholar 

  7. Z. Manna. Mathematical Theory of Computation, New York, McGraw-Hill (1974), 418.

    Google Scholar 

  8. J. Vuillemin. Correct and optimal implementation of recursion in a simple programming language. J. Comp. Sys. Sci. 9, 3 (June, 1974), 332–354.

    Google Scholar 

  9. C. Wadsworth. Semantics and Pragmatics of Lambda-calculus, Ph.D. dissertation, Oxford (1971).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gilles Kahn

Rights and permissions

Reprints and permissions

Copyright information

© 1979 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Friedman, D.P., Wise, D.S. (1979). An approach to fair applicative multiprogramming. In: Kahn, G. (eds) Semantics of Concurrent Computation. Lecture Notes in Computer Science, vol 70. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0022471

Download citation

  • DOI: https://doi.org/10.1007/BFb0022471

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-09511-8

  • Online ISBN: 978-3-540-35163-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics