Tuesday, August 24, 2010

Sneak preview of Acumen 10

Acumen 10 features improvements to the syntax, semantics, expressivity, and user interface.  The picture below is a snapshot using an example illustrating two different models of a bouncing ball.


Here's the code example in plain text:


class BouncingSpringBall1 (x,x',x'')
  x'' [=] - 9.8 + (1/x^2)
end


class BouncingSpringBall2 (x,x',x'')
  x'' [=] - 9.8;
  if (x < 0) 
    x = -x; x' = -x'
  else
  end
end


class Main (mode, simulation)
  private state = "Init" end
  switch state
   case "Init"
     create BouncingSpringBall1 (2, 0, 0);
     create BouncingSpringBall2 (2, 0, 0);
     state = "Persist"
   case "Persist"
  end
end

New features in Acumen 10 include class declarations, dynamic object creation & deletion and an explicit imperative programming language for describing what happens during discrete mode changes.