Lars Kristiansen

Learn More
Two restricted imperative programming languages are considered: One is a slight modification of a loop language studied intensively in the literature, the other is a stack programming language over an arbitrary but fixed alphabet, supporting a suitable loop concept over stacks. The paper presents a purely syntactical method for analysing the impact of(More)
We present a new method for inferring complexity properties for imperative programs with bounded loops. The properties handled are: polynomial (or linear) boundedness of computed values, as a function of the input; and similarly for the running time. It is well known that complexity properties are undecidable for a Turing-complete programming language. Much(More)
We present a method for certifying that the values computed by an imperative program will be bounded by polynomials in the program's inputs. To this end, we introduce <i>mwp</i>-matrices and define a semantic relation &models; C : <i>M</i>, where C is a program and <i>M</i> is an <i>mwp</i>-matrix. It follows straightforwardly from our definitions that(More)
We investigate an imperative and a functional programming language. The computational power of fragments of these languages induce two hierarchies of complexity classes. Our first main theorem says that these hierarchies match, level by level, a complexity-theoretic alternating space-time hierarchy known from the literature. Our second main theorems says(More)
A key problem in implicit computational complexity is to analyse the impact on program run times of nesting restricted control structures, such as for-do statements in imperative languages. This problem has two aspects. One is whether there are methods of extracting information from the syntax of such programs that give insight as to why some nesting of(More)