Lars Ræder Clausen

Learn More
A program executing on a low-end embedded system, such as a smart-card, faces scarce memory resources and fixed execution time constraints. We demonstrate that factorization of common instruction sequences in Java bytecode allows the memory footprint to be reduced, on average, to 85% of its original size, with a minimal execution time penalty. While(More)
Run-time code generation is a well-known technique for improving the efficiency of programs by exploiting dynamic information. Unfortunately, the difficulty of constructing run-time code-generators has hampered their widespread use. We describe Jumbo, a tool for easily creating run-time code generators for Java. Jumbo is a compiler for a two-level version(More)
In web archiving, avoiding unnecessary downloads of unchanged pages can significantly reduce the load on both the archiving system and the server being archived. However, the indicators available for determining whether a page is changed are frequently either missing or wrong, causing pages changes to missed. In this paper, we investigate the quality of the(More)
Saving the internal data of an application in an external form is called <i>marshalling</i>. A generic marshaller is difficult to optimize because the format of the data that will be marshalled is unknown at the time the marshaller is implemented. On the other hand, efficient marshallers can be written for specific kinds of data. In this paper we use(More)
Current definitions of “software component” are based on abstract data types — collections of functions together with local data. This paper addresses two ways in which this definition is inadequate: it fails to allow for lightweight components — those for which a function call is too inefficient or semantically inappropriate — and it fails to allow for(More)
Most software component technologies fail to account for lightweight components (those for which a function call is too ineecient or semantically inappropriate) or generative components (those in which the component embodies a method of constructing code rather than actual code). Macro-based systems such as the C++ Standard Template Library are exceptions.(More)
Object transformation for preservation purposes is currently a hit-ormiss affair, where errors in transformation may go unnoticed for years since manual quality assurance is too resource-intensive for large collections of digital objects. We propose an approach of semi-automatic quality assurance (QA), where numerous separate automatic checks of “aspects”(More)
Current \software component" technologies | with one exception | fail to account for lightweight components | those for which a function call is too ineecient or semantically inappropriate | and for generative components | those in which the component embodies a method of constructing code rather than actual code. The exception is the C++ Standard Template(More)
The Netarkivet web archiving system is creating to fulfill our obligation as national archives to collect and preserve Danish internet material. It uses the Internet Archive’s Heritrix crawler to harvest data, but surrounding that is a in-house developed system to automate harvests and archive the results. This article presents a rough sketch of the overall(More)