The digital battery's per-use pricing model may be our best hope for protecting artists' livelihoods, generating meaningful usage statistics, and ensuring consumer privacy.
The digital battery's per-use pricing model may be our best hope for protecting artists' livelihoods, generating meaningful usage statistics, and ensuring consumer privacy.
In 1995 my students and I developed Leda, a multiparadigm language based on the Pascal model. Leda allowed programmers to create abstractions in an object-oriented, functional, or logic programming style. More recently we have been interested in recreating this work, but this time using Java as the language basis. The...
The language G is an expression based language designed around the concept of the stream; where a stream is a sequence of values, perhaps infinite in length. There are no statements in G, only expressions. All expressions are evaluated on a demand driven basis, no computation takes place that does...
The digital battery's per-use pricing model may be our best hope for protecting artists' livelihoods, generating meaningful usage statistics, and ensuring consumer privacy.
Multiparadigm programming languages have been envisioned as a vehicle for constructing large and complex heterogeneous systems, such as a stock market exchange or a telecommunications network. General-purpose multiparadigm languages, as opposed to hybrid multiparadigm languages, embody several prevalent programming paradigms without being motivated by a single problem. One such language...
CLEDA is a new programming language descended from the multiparadigm, strongly typed, compiled programming language LEDA. In addition to the four paradigms supported by LEDA, which are imperative, functional, object-oriented, and relational, CLEDA supports the constraint logic programming paradigm. CLEDA is intended to be used to write applications that involve...
The lambda calculus has frequently been used as an intermediate representation for programming languages, particularly for functional programming language systems. We introduce two simple extensions to the lambda calculus that describe potentially parallel computations. These extensions permit us to use the lambda calculus as an intermediate form for languages that...
Multiparadigm programming is a term used to describe a style of software development that makes use of facilities originally designed in support of a number of different programming language paradigms. In this paper we illustrate our conception of multiparadigm programming, by describing how various data structures can be implemented in...
A generalized arithmetic package allows a programmer to think of numbers as abstract quantities, without regard to whether they are represented as integers, floating point values, fractions, complex numbers, or even polynomials. In this paper we describe two implementation techniques that can be used to produce a generalized arithmetic package...