Predicting resource consumption of higher-order workflows

We present a type and effect system for static analysis of programs written in a simplified version of iTasks. iTasks is a workflow specification language embedded in Clean, a general-purpose functional programming language. Given costs for basic tasks, our analysis calculates an upper bound of the total cost of a workflow. The analysis has to deal with the domain-specific features of iTasks, in particular parallel and sequential composition of tasks, as well as the general-purpose features of Clean, in particular let-polymorphism, higher-order functions, recursion and lazy evaluation. Costs are vectors of natural numbers where every element represents some resource, either consumable or reusable.

[1]  Paolo Traverso,et al.  Automated Planning: Theory & Practice , 2004 .

[2]  Jurriaan Hage,et al.  Security type error diagnosis for higher-order, polymorphic languages , 2013, PEPM '13.

[3]  Tobias Gedell,et al.  Polymorphism, Subtyping, Whole Program Analysis and Accurate Data Types in Usage Analysis , 2006, APLAS.

[4]  Jurriaan Hage,et al.  A generic usage analysis with subeffect qualifiers , 2007, ICFP '07.

[5]  Stefan Edelkamp,et al.  Automated Planning: Theory and Practice , 2007, Künstliche Intell..

[6]  Marko C. J. D. van Eekelen,et al.  A Hoare Logic for Energy Consumption Analysis , 2013, FOPARA.

[7]  Jurriaan Hage,et al.  Type-based Exception Analysis for Non-strict Higher-order Functional Languages with Imprecise Exception Semantics , 2015, PEPM.

[8]  Marinus J. Plasmeijer,et al.  Tonic: An Infrastructure to Graphically Represent the Definition and Behaviour of Tasks , 2014, Trends in Functional Programming.

[9]  Flemming Nielson,et al.  Polymorphic Subtyping for Effect Analysis: The Static Semantics , 1996, LOMAPS.

[10]  Simon Peyton Jones,et al.  Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell , 2005 .

[11]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[12]  Mark von Rosing,et al.  Business Process Model and Notation - BPMN , 2015, The Complete Business Process Handbook, Vol. I.

[13]  Flemming Nielson,et al.  Polymorphic Subtyping for Effect Analysis: The Dynamic Semantics , 1996, LOMAPS.

[14]  Christian Haack,et al.  Type error slicing in implicitly typed higher-order languages , 2003, Sci. Comput. Program..

[15]  Flemming Nielson,et al.  Polymorphic Subtyping for Effect Analysis: The Algorithm , 1996, LOMAPS.

[16]  Bas Lijnse,et al.  iTasks for a change: type-safe run-time change in dynamically evolving workflows , 2011, PEPM '11.

[17]  Kevin Hammond,et al.  Inferring Cost Equations for Recursive, Polymorphic and Higher-Order Functional Programs , 2003, IFL.

[18]  Martin Hofmann,et al.  Static determination of quantitative resource usage for higher-order programs , 2010, POPL '10.