Pedro B. Vasconcelos

Learn More
This paper presents a type-based analysis for inferring size-and cost-equations for recursive, higher-order and polymorphic functional programs without requiring user annotations or unusual syntax. Our type reconstruction algorithm is capable of inferring cost equations for a subset of recursive programs whose costs can be expressed using primitive(More)
Fire is an important agent of disturbance in tropical savannas, but relatively few studies have analyzed how soil-and-litter dwelling arthropods respond to fire disturbance despite the critical role these organisms play in nutrient cycling and other biogeochemical processes. Following the incursion of a fire into a woodland savanna ecological reserve in(More)
This paper describes the first successful attempt, of which we are aware, to define an automatic, type-based static analysis of resource bounds for lazy functional programs. Our analysis uses the automatic amortisation approach developed by Hofmann and Jost, which was previously restricted to eager evaluation. In this paper, we extend this work to a lazy(More)
The structure of Cerrado vegetation (sensu stricto) along roadsides was compared with that of protected areas (reserves). The superior stratum of reserves had 2.7 times more individuals and 1.4 times more species than on roadsides, while in the intermediate stratum there were 1.7 times more individuals and 25 % more species in reserves. Additionally,(More)
This paper presents a novel type-and-effect analysis for predicting upper-bounds on memory allocation costs for co-recursive definitions in a simple lazily-evaluated functional language. We show the soundness of this system against an instrumented variant of Launch-bury's semantics for lazy evaluation which serves as a formal cost model. Our soundness proof(More)
Software engineering involves matching abstract software requirements to concrete implementations. Programming at a high-level of abstraction improves confidence in the correctness of functional requirements and reduces the cost of constructing software, but loses confidence in the correctness of behavioural requirements. This is especially serious for(More)