We study program states that are described as tuples i e product state spaces We show how to add ... more We study program states that are described as tuples i e product state spaces We show how to add program variables and assignment notation to simply typed lambda calculus in order to describe functions relations and predicate transformers on such spaces in a concise way We de ne an ope rator on program statements that describes the independent execution of statements on disjoint state spaces where program statements are modeled as predicate transformers We study the algebraic properties of this product operator in particular the basic monotonicity and distributivity properties that the operator has We also consider how to extend the state space by ad ding new state components and show how this is modeled using the product operator TUCS Research Group Programming Methodology Research Group
The n-queens problem is to place n queens (where n > 0) on an n -by-n chessboard so that no qu... more The n-queens problem is to place n queens (where n > 0) on an n -by-n chessboard so that no queen is threatened by another one. According to the rules of chess, this is equivalent to the requirement that no two queens be on the same row or the same column or on a common diagonal. For some values of n this is possible but for some values (for example, for n =2) there is no solution. In this chapter we show how one solution for a particular value of n is found with a depth-first search. The program derivation illustrates both recursion and loop introduction in a nontrivial setting. It also illustrates how to handle data structures like sequences in a program derivation.
Abstract: In this paper, a way of teaching high-school mathematics using a semiformal representat... more Abstract: In this paper, a way of teaching high-school mathematics using a semiformal representation called structured derivation is presented. Using structured derivation every step of the derived solution to an exercise in presented with facts justifying the step. With ...
Abstract. In this paper we discuss the topics that should be included in basic computing educatio... more Abstract. In this paper we discuss the topics that should be included in basic computing education and the levels of education at which they should be introduced. We present the resource centre IMPEd, which aims at improving education in mathematics and ...
We extend the Action-Oberon language for executing action systems with type-bound actions. Type-b... more We extend the Action-Oberon language for executing action systems with type-bound actions. Type-bound actions combine the concepts of type-bound procedures (methods) and actions, bringing object orientation to action systems. Type-bound actions are created at runtime along with the objects of their bound types. They permit the encapsulation of data and code in objects. Allowing an action to have more than one participant gives us a mechanism for expressing n-ary communication between objects. By showing how type-bound actions can logically be reduced to plain actions, we give our extension a firm foundation in the Refinement Calculus.
We study program states that are described as tuples, i.e., product state spaces. Modeling progra... more We study program states that are described as tuples, i.e., product state spaces. Modeling programs as predicate transformers, we define a product operator on program statements that describes the independent execution of statements on disjoint state spaces. The algebraic properties of this product operator are studied, in particular the basic monotonicity and distributivity properties that the operator has, and their applications. We also consider how to extend the state space by adding new state components, and show how this is modeled using the product operator. Finally, we show how products are useful to formulate data refinement, both as a general concept and as a technique for replacing local state components of program blocks.
In this paper we study the problem of semantic substitutability of objects. First we give semanti... more In this paper we study the problem of semantic substitutability of objects. First we give semantics of classes, objects and inheritance in the presence of dynamic binding. For this purpose we extend Cook and Palsberg's denotational semantics of stateless classes and inheritance by adding state. We build our theory on the basis of the refinement calculus, which is a logic
... University of Helsinki Pentti Hietala, University of Tampere Reino Kurki-Suonio, Tampere Univ... more ... University of Helsinki Pentti Hietala, University of Tampere Reino Kurki-Suonio, Tampere University of Technology Heikki Mannila, University of Helsinki Anssi Rantanen, University of Helsinki Kati-Jouko Raiha, University of Helsinki Airi Salminen, University of J yvaskyla. ...
We study program states that are described as tuples i e product state spaces We show how to add ... more We study program states that are described as tuples i e product state spaces We show how to add program variables and assignment notation to simply typed lambda calculus in order to describe functions relations and predicate transformers on such spaces in a concise way We de ne an ope rator on program statements that describes the independent execution of statements on disjoint state spaces where program statements are modeled as predicate transformers We study the algebraic properties of this product operator in particular the basic monotonicity and distributivity properties that the operator has We also consider how to extend the state space by ad ding new state components and show how this is modeled using the product operator TUCS Research Group Programming Methodology Research Group
The n-queens problem is to place n queens (where n > 0) on an n -by-n chessboard so that no qu... more The n-queens problem is to place n queens (where n > 0) on an n -by-n chessboard so that no queen is threatened by another one. According to the rules of chess, this is equivalent to the requirement that no two queens be on the same row or the same column or on a common diagonal. For some values of n this is possible but for some values (for example, for n =2) there is no solution. In this chapter we show how one solution for a particular value of n is found with a depth-first search. The program derivation illustrates both recursion and loop introduction in a nontrivial setting. It also illustrates how to handle data structures like sequences in a program derivation.
Abstract: In this paper, a way of teaching high-school mathematics using a semiformal representat... more Abstract: In this paper, a way of teaching high-school mathematics using a semiformal representation called structured derivation is presented. Using structured derivation every step of the derived solution to an exercise in presented with facts justifying the step. With ...
Abstract. In this paper we discuss the topics that should be included in basic computing educatio... more Abstract. In this paper we discuss the topics that should be included in basic computing education and the levels of education at which they should be introduced. We present the resource centre IMPEd, which aims at improving education in mathematics and ...
We extend the Action-Oberon language for executing action systems with type-bound actions. Type-b... more We extend the Action-Oberon language for executing action systems with type-bound actions. Type-bound actions combine the concepts of type-bound procedures (methods) and actions, bringing object orientation to action systems. Type-bound actions are created at runtime along with the objects of their bound types. They permit the encapsulation of data and code in objects. Allowing an action to have more than one participant gives us a mechanism for expressing n-ary communication between objects. By showing how type-bound actions can logically be reduced to plain actions, we give our extension a firm foundation in the Refinement Calculus.
We study program states that are described as tuples, i.e., product state spaces. Modeling progra... more We study program states that are described as tuples, i.e., product state spaces. Modeling programs as predicate transformers, we define a product operator on program statements that describes the independent execution of statements on disjoint state spaces. The algebraic properties of this product operator are studied, in particular the basic monotonicity and distributivity properties that the operator has, and their applications. We also consider how to extend the state space by adding new state components, and show how this is modeled using the product operator. Finally, we show how products are useful to formulate data refinement, both as a general concept and as a technique for replacing local state components of program blocks.
In this paper we study the problem of semantic substitutability of objects. First we give semanti... more In this paper we study the problem of semantic substitutability of objects. First we give semantics of classes, objects and inheritance in the presence of dynamic binding. For this purpose we extend Cook and Palsberg's denotational semantics of stateless classes and inheritance by adding state. We build our theory on the basis of the refinement calculus, which is a logic
... University of Helsinki Pentti Hietala, University of Tampere Reino Kurki-Suonio, Tampere Univ... more ... University of Helsinki Pentti Hietala, University of Tampere Reino Kurki-Suonio, Tampere University of Technology Heikki Mannila, University of Helsinki Anssi Rantanen, University of Helsinki Kati-Jouko Raiha, University of Helsinki Airi Salminen, University of J yvaskyla. ...
Uploads
Papers by Ralph-johan Back