Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Mayer Goldberg is active.

Publication


Featured researches published by Mayer Goldberg.


Lecture Notes in Computer Science | 2002

A symmetric approach to compilation and decompilation

Mads Sig Ager; Olivier Danvy; Mayer Goldberg

Just as an interpreter for a source language can be turned into a compiler from the source language to a target language, we observe that an interpreter for a target language can be turned into a compiler from the target language to a source language. In both cases, the key issue is the choice of whether to perform an evaluation or to emit code that represents this evaluation.We substantiate this observation with two source interpreters and two target interpreters. We first consider a source language of arithmetic expressions and a target language for a stack machine, and then the λ-calculus and the SECD-machine language. In each case, we prove that the target-to-source compiler is a left inverse of the source-to-target compiler, i.e., that it is a decompiler.In the context of partial evaluation, the binding-time shift of going from a source interpreter to a compiler is classically referred to as a Futamura projection. By symmetry, it seems logical to refer to the binding-time shift of going from a target interpreter to a compiler as a Futamura embedding.


Information Processing Letters | 2000

Gödelization in the lambda calculus

Mayer Goldberg

Abstract Godelization is a meta-linguistic encoding of terms in a language. While it is impossible to define an operator in the lambda calculus which encodes all closed lambda expressions, it is possible to construct restricted versions of such an encoding operator modulo normalization. In this paper, we propose such an encoding operator for proper combinators.


Information Processing Letters | 2004

A construction of one-point bases in extended lambda calculi

Mayer Goldberg

We present a general schema for constructing infinitely-many one-point bases for λK-calculi extended by finitely-many constants. The constants are usually present in programming languages, and may involve reduction rules other than β-reduction. The construction can be implemented in a functional subset of LISP/Scheme, giving one-point bases for applicative-order calculi extended by constants from the underlying programming language.


practical aspects of declarative languages | 2012

A declarative approach for software modeling

Mayer Goldberg; Guy Wiener

In this paper we describe a method for encoding software models as Prolog programs, and how to use these programs to support incremental development. Requirements, alternative designs, and implementation patterns are encoded as predicates in the program, and define a search routine, the solutions of which are possible implementations of the requirements. Under default operation, this routine validates that a given parsed code is compatible with one of these solutions. Additionally, the same search routine can be executed by special interpreters that provide traceability and code generation as well. Code generation may be complete or partial, allowing the user to combine hand-written and generated code. By customizing the interpreter, the user can generate an outline of the design or a tasks list, instead of code. We demonstrate these techniques using Java and SQL, but our approach is applicable to other programming languages and paradigms as well.


Higher-order and Symbolic Computation \/ Lisp and Symbolic Computation | 2005

A Variadic Extension of Curry's Fixed-Point Combinator

Mayer Goldberg

We present a systematic construction of a variadic, applicative-order, multiple fixed-point combinator in Scheme. The resulting Scheme procedure is a variadic extension of the n-ary version of Currys fixed-point combinator. It can be used to create mutually-recursive procedures, and expand letrec-expressions.


Journal of Functional Programming | 2000

An adequate and efficient left-associated binary numeral system in the λ-calculus

Mayer Goldberg

This paper introduces a sequence of λ-expressions modeling the binary expansion of integers. We derive expressions computing the test for zero, the successor function, and the predecessor function, thereby showing the sequence to be an adequate numeral system, i.e. one in which all recursive functions are lambda-definable. These functions can be computed efficiently; To this end, we introduce a notion of complexity that is independent of the order of evaluation.


software science technology and engineering | 2010

Round-Trip Modeling Using OPM/PL

Mayer Goldberg; Guy Wiener

In this work we present OPM/PL, a suite of modeling tools based on the Object-Process Methodology (OPM) and implemented in Prolog. OPM/PL includes tools for model authoring, querying and visualization, as well as code parsing and code generation. OPM/PL aims at integrating the information from the source code, models and requirements of a software project into a single database with a uniform format. This approach extends the role of a modeling tool to include a representation of the code and its relations to the model. The OPM/PL database contains both model elements and information from code parsing. This combined representation allows developers to flesh out a model from existing code, and update the code according changes in the model. Thus, OPM/PL provides a system for round-trip modeling.


International Journal of Mathematical Education in Science and Technology | 2006

Computing logarithms digit-by-digit

Mayer Goldberg

In this work, we present an algorithm for computing logarithms of positive real numbers, that bears structural resemblance to the elementary school algorithm of long division. Using this algorithm, we can compute successive digits of a logarithm using a 4-operation pocket calculator. The algorithm makes no use of Taylor series or calculus, but rather exploits properties of the radix-d representation of a logarithm in base d. As such, the algorithm is accessible to anyone familiar with the elementary properties of exponents and logarithms.In this work, we present an algorithm for computing logarithms of positive real numbers, that bears structural resemblance to the elementary school algorithm of long division. Using this algorithm, we can compute successive digits of a logarithm using a 4-operation pocket calculator. The algorithm makes no use of Taylor series or calculus, but rather exploits properties of the radix-d representation of a logarithm in base d. As such, the algorithm is accessible to anyone familiar with the elementary properties of exponents and logarithms.


Logical Methods in Computer Science | 2015

Ellipses and Lambda Definability

Mayer Goldberg

Ellipses are a meta-linguistic notation for denoting terms the size of which are specified by a meta-variable that ranges over the natural numbers. In this work, we present a systematic approach for encoding such meta-expressions in the \^I-calculus, without ellipses: Terms that are parameterized by meta-variables are replaced with corresponding \^I-abstractions over actual variables. We call such \^I-terms arity-generic. Concrete terms, for particular choices of the parameterizing variable are obtained by applying an arity-generic \^I-term to the corresponding numeral, obviating the need to use ellipses. For example, to find the multiple fixed points of n equations, n different \^I-terms are needed, every one of which is indexed by two meta-variables, and defined using three levels of ellipses. A single arity-generic \^I-abstraction that takes two Church numerals, one for the number of fixed-point equations, and one for their arity, replaces all these multiple fixed-point combinators. We show how to define arity-generic generalizations of two historical fixed-point combinators, the first by Curry, and the second by Turing, for defining multiple fixed points. These historical fixed-point combinators are related by a construction due to B\~Ahm: We show that likewise, their arity-generic generalizations are related by an arity-generic generalization of B\~Ahms construction. We further demonstrate this approach to arity-generic \^I-definability with additional \^I-terms that create, project, extend, reverse, and map over ordered n-tuples, as well as an arity-generic generator for one-point bases.


International Journal of Mathematical Education in Science and Technology | 2012

Computing functions by approximating the input

Mayer Goldberg

In computing real-valued functions, it is ordinarily assumed that the input to the function is known, and it is the output that we need to approximate. In this work, we take the opposite approach: we show how to compute the values of some transcendental functions by approximating the input to these functions, and obtaining exact answers for their output. Our approach assumes only the most rudimentary knowledge of algebra and trigonometry, and makes no use of calculus.

Collaboration


Dive into the Mayer Goldberg's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge