comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm-host.bauhaus@maps.futureapps.de>
Subject: Re: Presentations on-line - Ada&SPARK for Education&Research
Date: Fri, 05 Mar 2010 09:03:08 +0100
Date: 2010-03-05T09:03:11+01:00	[thread overview]
Message-ID: <4b90babf$0$7625$9b4e6d93@newsspool1.arcor-online.net> (raw)
In-Reply-To: <hmjvj6$orr$1@asgard.cs.kuleuven.be>

On 3/2/10 10:22 PM, Dirk Craeynest wrote:
> -----------------------------------------------------------------------
>
>                    All presentations available on-line
>
>                    T e c h n o l o g y   U p d a t e :
>                         A d a   a n d   S P A R K
>            f o r   e d u c a t i o n   a n d   r e s e a r c h
>
>         State-of-the-art programming language technology with Ada
>              Formal specifications made practical with SPARK
>
>                            Seminar organized by
>             the Computer Science Department of the K.U.Leuven
>                      and the Ada-Belgium organization
>                with support from AdaCore and Altran Praxis
>
>                  Tuesday, February 23, 2010, 14:00-18:00
>                 K.U.Leuven, Department of Computer Science
>          Celestijnenlaan 200A, B-3001 Leuven (Heverlee), Belgium
>
> http://www.cs.kuleuven.be/~dirk/ada-belgium/events/10/100223-ab-adaspark.html
>       http://distrinet.cs.kuleuven.be/events/AdaEvent/abstracts.html

> - "Ada in Research and Education, an Experience Report"
>    Erhard Pl�dereder, University Stuttgart, Germany


I'm reading a few presentation pages that advertise  the strengths
of Ada. One sheet compares monitor functionalities as present
in Java and Ada.  Java needs much care not to break
a monitor.  Ada is shown not to have this problem.

True?  With some effort, it seems possible to break an Ada
monitor implemented as a protected object.

package Monitor is

    type SynchNode;
    type Linkage is access all synchnode;
    type data is access all integer;

    protected type synchnode is
       procedure Link (x : Linkage);
       procedure Expose (N : out Data);
    private
       Outgoing : aliased Integer := 0;
    end SynchNode;

end Monitor;

package body monitor is

    protected body synchnode is
       procedure link (X : Linkage) is
          View : Data; -- X's data
       begin
          X.Expose(View);
          View.all := View.all + 1;  -- <-- unprotected
       end link;

       procedure Expose (N : out Data) is
       begin
          N := Outgoing'unchecked_access;
       end expose;
    end SynchNode;

end Monitor;



  reply	other threads:[~2010-03-05  8:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-02 21:22 Presentations on-line - Ada&SPARK for Education&Research Dirk Craeynest
2010-03-05  8:03 ` Georg Bauhaus [this message]
2010-03-05  9:14   ` J-P. Rosen
2010-03-05 10:46     ` Georg Bauhaus
2010-03-06  8:43     ` Jerry van Dijk
2010-03-08  5:54       ` AdaMagica
2010-03-05  9:19   ` Dmitry A. Kazakov
2010-03-05 12:11   ` Peter Hermann
2010-03-06 12:40 ` Marco
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox