Abstract
We undertake a study of imperative computation. Beginning with a philosophical analysis of the distinction between imperative and functional language features, we define a (pure) imperative language as one whose constructs are (inherently) referentially opaque. We then give a definition of a computation language by identifying desirable properties for such a language.
We present a new pure imperative computation language, Assignment Calculus AC. The main idea behind AC is based on the insight of T. Janssen that Montague’s modal operators of intension and extension, developed for the study of natural language semantics, are also useful for the semantics of programming language features such as assignments and pointers. AC consists of only four basic constructs, assignment ‘X: = t’, sequence ‘t;u’, procedure formation ‘¡t’ and procedure invocation ‘!t’. Two interpretations are given for AC: an operational semantics and a term-rewriting system; these interpretations turn out to be equivalent.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Backus, J.: Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs. Commun. ACM 21(8), 613–641 (1978)
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. North Holland (1984)
Bender, M.: Assignment Calculus: A Pure Imperative Reasoning Language. PhD thesis, McMaster University (2010)
Carnap, R.: Meaning and Necessity. University of Chicago (1947)
Church, A.: A formulation of the simple theory of types. Journal of Symbolic Logic 5(2), 56–68 (1940)
Church, A.: The Calculi of Lambda Conversion. Princeton (1941)
Church, A.: A formulation of the logic of sense and denotation. In: Henle, P. (ed.) Structure, Method and Meaning: Essays in Honor of Henry M. Sheffer, pp. 3–24. Liberal Arts Press (1951)
Field, A.J., Harrison, P.G.: Functional Programming. Addison-Wesley (July 1988)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theor. Comput. Sci. 103(2), 235–271 (1992)
Frege, G.: Über Sinn und Bedeutung. Zeitschrift für Philosophie und philosophische Kritik 100, 25–50 (1892)
Hudak, P., Hughes, J., Jones, S.P., Wadler, P.: A history of Haskell: being lazy with class. In: HOPL III: Proc. 3rd ACM SIGPLAN Conf. on History of Prog. Languages, pp. 12-1–12-55. ACM, New York (2007)
Hung, H.-K.: Compositional Semantics and Program Correctness for Procedures with Parameters. PhD thesis, SUNY-Buffalo (1990)
Hung, H.-K., Zucker, J.: Semantics of pointers, referencing and dereferencing with intensional logic. In: Proc. 6th Annual IEEE Symposium on Logic in Computer Science, pp. 127–136 (1991)
Janssen, T.M.V.: Foundations and Applications of Montague Grammar: Part 1: Philosophy, Framework, Computer Science. Centrum voor Wiskunde en Informatica, Amsterdam (1986)
Janssen, T.M.V., van Emde Boas, P.: On the Proper Treatment or Referencing, Dereferencing and Assignment. In: Salomaa, A., Steinby, M. (eds.) ICALP 1977. LNCS, vol. 52, pp. 282–300. Springer, Heidelberg (1977)
Kripke, S.A.: A completeness theorem in modal logic. Journal of Symbolic Logic 24, 1–14 (1959)
Montague, R.: Universal grammar. Theoria 36, 373–398 (1970)
Montague, R.: The proper treatment of quantification in ordinary English. In: Hintikka, K.J.J., Moravcsik, J.M.E., Suppes, P. (eds.) Approaches to Natural Language, pp. 221–242. Reidel (1973)
Quine, W.V.: Word and Object. MIT Press, Cambridge (1960)
Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS, pp. 55–74. IEEE Computer Society (2002)
Scott, D.S.: Outline of a mathematical theory of computation. Tech. Monograph PRG–2, Oxford University Computing Laboratory (1970)
Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. In: Fox, J. (ed.) Proc. Symp. on Computers and Automata, Brooklyn, N.Y., vol. XXI, pp. 19–46. Polytechnic Press (April 1971)
Turing, A.: On computable numbers, with an application to the Entscheidungsproblem. Proc. London Math. Soc. 2(42), 230–265 (1936)
Winskel, G.: The formal semantics of programming languages: an introduction. MIT Press, Cambridge (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bender, M., Zucker, J. (2013). Assignment Calculus: A Pure Imperative Language. In: Artemov, S., Nerode, A. (eds) Logical Foundations of Computer Science. LFCS 2013. Lecture Notes in Computer Science, vol 7734. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35722-0_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-35722-0_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35721-3
Online ISBN: 978-3-642-35722-0
eBook Packages: Computer ScienceComputer Science (R0)