“Squeak: a language for communicating with mice” by Pike and Cardelli

  • ©Robert Pike and Luca Cardelli




    Squeak: a language for communicating with mice



    Graphical user interfaces are difficult to implement because of the essential concurrency among multiple interaction devices, such as mice, buttons, and keyboards. Squeak is a user interface implementation language that exploits this concurrency rather than hiding it, helping the programmer to express interactions using multiple devices. We present the motivation, design and semantics of squeak. The language is based on concurrent programming constructs but can be compiled into a conventional sequential language; our implementation generates C code. We discuss how squeak programs can be integrated into a graphics system written in a conventional language to implement large but regular user interfaces, and close with a description of the formal semantics.


    1. Berry, G., ‘~the ESTEREL synchronous programming language and its mathematical semantics,” Proc. of the VSF/SERC workshop on concurrency, CMU, 1984.
    2. van den Bos, J., Plasrneijer, M.J. and Hartel, P.H., “Input-Output Tools: A Language Facility for Interactive and Real-Time Systems,” IEEE Trans. Soft. Eng., SE-9(3), pp. 247-259, 1983.
    3. Buxton, W., Lamb, M. R., Sherman, D. and Smith, K.C., “A User Interface Management System,” I~EI~X Conf. Proc., June 1983, pg. 177.
    4. Hoare, C.A.R., “Communicating Sequential Processes,” Comm. ACM 21(8), pp. 666-678, 1978.
    5. , Kernighan, B.W. and Ritchie, D.M., The C Programming Language, Prentice-Hall 1978.
    6. Milner, R., “A Calculus of Communicating Systems,” Lecture Notes in Computer Science, nr.92, Springer- Verlag, 1980.
    7. Milner, R., “Four combinators for concurrency,” ACM SIGACT-SIGOPS Syrup. on Princ. of Distributed Computing, Ottawa, Canada, 1982.
    8. Pike, R., ‘~the Blit: A Multiplexed Graphics Terminal,” AT&T Bell Labs Tech. J., 63(8), part 2, pp. 1607-1631
    9. Plotkin, G.D., “A Structural Approach to Operational Semantics,” Internal Report DAIMI FN-19, Computer Science Department, Aarhus University, September 1981.
    10. Thomas, J.J. and Hamlin, G., “Graphical Input Interaction Technique Workshop Summary,” Computer Graphics, January 1983, pp. 5-30.

ACM Digital Library Publication: