Results 1 
4 of
4
Program Calculation Properties of Continuous Algebras
, 1991
"... Defining data types as initial algebras, or dually as final coalgebras, is beneficial, if not indispensible, for an algebraic calculus for program construction, in view of the nice equational properties that then become available. It is not hard to render finite lists as an initial algebra and, ..."
Abstract

Cited by 19 (0 self)
 Add to MetaCart
Defining data types as initial algebras, or dually as final coalgebras, is beneficial, if not indispensible, for an algebraic calculus for program construction, in view of the nice equational properties that then become available. It is not hard to render finite lists as an initial algebra and, dually, infinite lists as a final coalgebra. However, this would mean that there are two distinct data types for lists, and then a program that is applicable to both finite and infinite lists is not possible, and arbitrary recursive definitions are not allowed. We prove the existence of algebras that are both initial in one category of algebras and final in the closely related category of coalgebras, and for which arbitrary (continuous) fixed point definitions ("recursion") do have a solution. Thus there is a single data type that comprises both the finite and the infinite lists. The price to be paid, however, is that partiality (of functions and values) is unavoidable.
From Standard To NonStandard Semantics By Semantics Modifiers
, 2001
"... An approach for systematically modifying the semantics of programming languages by semantics modifiers is described. Semantics modifiers are a class of programs that allow the development of general and reusable "semantics components". Language independence is achieved through the interpretive ap ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
An approach for systematically modifying the semantics of programming languages by semantics modifiers is described. Semantics modifiers are a class of programs that allow the development of general and reusable "semantics components". Language independence is achieved through the interpretive approach: an interpreter serves as a mediator between the new language and the language for which the nonstandard semantics was implemented. Inverse computation, equivalence transformation and neighborhood analysis are shown to be semantics modifiers. Experiments with these modifiers show the computational feasibility of this approach. Seven modifier projections are given which allow the e#cient implementation of nonstandard interpreters and nonstandard compilers by program specialization or other powerful program transformation methods.
Bindingtime analysis for a JVM core language
, 1999
"... instruction Corresponding JVM instructions arrayload aaload or iaload arraystore aastore or iastore binop fi iadd, isub, imul, idiv or irem const k iconst !i?, bipush k, sipush k, ldc i, ldc w i or aconst null goto l goto ffi or goto w ffi if r l if acmpeq ffi, if acmpne ffi, if icmpeq ffi, i ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
instruction Corresponding JVM instructions arrayload aaload or iaload arraystore aastore or iastore binop fi iadd, isub, imul, idiv or irem const k iconst !i?, bipush k, sipush k, ldc i, ldc w i or aconst null goto l goto ffi or goto w ffi if r l if acmpeq ffi, if acmpne ffi, if icmpeq ffi, if icmpge ffi, if icmpgt ffi, if icmple ffi, if icmplt ffi or if icmpne ffi load j aload j 0 or iload j 0 newarray t anewarray i or newarray t 0 return areturn or ireturn store j astore j 0 or istore j 0 The argument i to each of the concrete JVM instructions ldc, ldc w and anewarray is an index into the constant pool of the class file. The constant pool of a Java class file holds (large) program constants and symbolic references to classes, interfaces, fields and methods. The argument ffi to each the concrete JVM instructions goto, goto w, if acmpeq, if acmpne, if icmpeq, if icmpge, if icmpgt, if icmple, if icmplt, and if icmpne is an instruction offset (rather than a target la...