小编Arn*_*zza的帖子

SPARK中的程序验证-计数数组中的元素

我写了一个非常简单的程序,但未能证明它的功能正确。它使用项目列表,每个项目都有一个字段指示它是免费还是已使用:

   type t_item is record
      used  : boolean := false; 
      value : integer   := 0;
   end record;

   type t_item_list is array (1 .. MAX_ITEM) of t_item;
   items       : t_item_list;
Run Code Online (Sandbox Code Playgroud)

还有一个计数器,指示使用的元素数:

  used_items  : integer   := 0;
Run Code Online (Sandbox Code Playgroud)

append_item程序检查used_items柜台看看,如果列表已满。如果不是,则将第一个空闲条目标记为已使用,并且used_items计数器增加:

   procedure append_item (value : in  integer; success : out boolean)
   is
   begin

      if used_items = MAX_ITEM then
         success := false;
         return;
      end if;

      for i in items'range loop
         if not items(i).used then
            items(i).value := value;
            items(i).used  := true; …
Run Code Online (Sandbox Code Playgroud)

ada spark-ada

4
推荐指数
2
解决办法
120
查看次数

标签 统计

ada ×1

spark-ada ×1