124 research outputs found
Microbenchmarks in Java and C#
Abstract: Sometimes one wants to measure the speed of software, for instance, to measure whether a new way to solve a problem is faster than the old one. Making such time measurements and microbenchmarks requires considerable care, especially on managed platforms like the Java Virtual Machine and Microsoftâs Common Language Infrastructure (.NET), or else the results may be arbitrary and misleading. Here we give some advice on running microbenchmarks, in particular for managed platforms. Most examples are in Java but the advice applies to any language executed on a managed platform, including Scala, C # and F#. We consider primarily single-threaded non-concurrent applications. 1 The challenge of managed platforms Measuring the execution time of a piece of software is an experimental activity, involving the software and a computer system, itself consisting of much (systems) software and some hardware. Whereas biological experiments, such as measuring bacterial growth, are influenced by natural variation and many unknown circumstances, software performance measurements may seem straightforward: in principle, everything is man-made and under the experimenterâs control. In practice, software performance measurements are influenced by so many factors, and modern computer systems are growing so complex, that software experiments increasingly resemble biological experiments
Early Nordic compilers and autocodes
Abstract. The early development of compilers for high-level program-ming languages, and of so-called autocoding systems, is well documented at the international level but not as regards the Nordic countries. The goal of this paper is to provide a survey of compiler and autocode development in the Nordic countries in the early years, roughly 1953 to 1965, and to relate it to international developments. We also touch on some of the historical societal context
Online partial evaluation of sheet-defined functions
We present a spreadsheet implementation, extended with sheet-defined
functions, that allows users to define functions using only standard
spreadsheet concepts such as cells, formulas and references, requiring no new
syntax. This implements an idea proposed by Peyton-Jones and others.
As the main contribution of this paper, we then show how to add an online
partial evaluator for such sheet-defined functions. The result is a
higher-order functional language that is dynamically typed, in keeping with
spreadsheet traditions, and an interactive platform for function definition and
function specialization.
We describe an implementation of these ideas, present some performance data
from microbenchmarks, and outline desirable improvements and extensions.Comment: In Proceedings Festschrift for Dave Schmidt, arXiv:1309.455
- âŚ