Abstract

We present an experimental concurrent programming language LPEP which supports performance evaluation programming. An LPEP program is a collection of modules which are executed concurrently. The structure of an LPEP program is similar to the structure of a Continuous Time Markov Chain (CTMC) model expressed in the PRISM language (of the PRISM probabilistic model checker). However, LPEP is a programming language, not a model checker. Activities are abstracted in a PRISM CTMC model by their rates. In the language LPEP an activity is the evaluation of a function (expressed in a functional sub-language of LPEP ) in a certain state of a module. Each LPEP module contains a number of variables (which describe the possible states of the module) and a list of commands that can specify activities. LPEP supports variables of both primitive types (booleans and integers) and non-primitive types, e.g., lists. For the purpose of performance evaluation the programmer must bound the ranges of variables. Any value of a non-primitive type is handled according to its complexity (rather than its value). For example, the complexity of a list could be the length of the list, which must also be bounded. It is also the responsibility of the programmer to design each LPEP function by induction on an appropriate complexity measure which always decreases upon a recursive call. Performance evaluation is supported in LPEP by constructing a CTMC model from an LPEP program, and by analyzing the CTMC model using the PRISM tool.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call