An offline partial evaluator for evolving algebras (original) (raw)

Why use evolving algebras for hardware and software engineering?

1995

In this paper I answer the question how evolving algebras can be used for the design and analysis of complex hardware and software systems. I present the salient features of this new method and illustrate them through several examples from my work on specification and verification of programming languages, compilers, protocols and architectures.

Logic programming: The evolving algebra approach

1994

It is with pleasure that I have accepted the invitation to report on the use of evolving algebras in the area of logic programming. Because of the time and space limits, I refer those interested in technical developments to the two Prolog and WAM papers by Dean Rosenzweig and myself [BoeRos94a, 94b]. All references are to [?] 2. The best I can do here is to sketch the development of ideas in my work on the subject since 1986. I hope the audience will forgive that this account is largely personal.

Semantics of Object-Oriented Data Models - The Evolving Algebra Approach

1990

The formal description of the semantics of object-oriented data models is still an open problem. Some characteristic features of object-oriented data models, such as methods and inheritance, involve investigating data and schema. Therefore they can not be handled straightforwardly with first order logic. As an alternative, we propose the evolving algebra approach to specify the formal semantics of object-oriented data models. Evolving algebras provide a framework for defining the operational semantics of programming languages based on dynamic structures. In this paper we show how evolving algebras can be used in particular to define the operational semantics of object creation, of overriding and dynamic binding, and of inheritance at the type level (type specialization) and at the instance level (object specialization).

An improved representation for evolving programs

Genetic Programming and Evolvable Machines, 2009

A representation has been developed that addresses some of the issues with other Genetic Program representations while maintaining their advantages. This combines the easy reproduction of the linear representation with the inheritable characteristics of the tree representation by using fixed-length blocks of genes representing single program statements. This means that each block of genes will always map to the same statement in the parent and child unless it is mutated, irrespective of changes to the surrounding blocks. This method is compared to the variable length gene blocks used by other representations with a clear improvement in the similarity between parent and child. In addition, a set of list evaluation and manipulation functions was evolved as an application of the new Genetic Program components. These functions have the common feature that they all need to be 100% correct to be useful. Traditional Genetic Programming problems have mainly been optimization or approximation problems. The list results are good but do highlight the problem of scalability in that more complex functions lead to a dramatic increase in the required evolution time.

The validation of a bidirectional serial/parallel shift register by Evolving Algebras?

2007

Abstract. We develop a new approach to perform hardware validation by the formal veri cation methodology and apply it to a bidirectional serial/parallel shift register. In such process, the formalism Evolving Algebras is used and its great simplicity in modelling the temporal evolution of real systems is stressed. KEYWORDS: hardware validation, formal veri cation, Evolving Algebras.

Automated Generation of EQ-Algebras through Genetic Algorithms

2021

This article introduces an approach to the automated generation of special algebras through genetic algorithms. These algorithms can be also used for a broader variety of applications in mathematics. We describe the results of research aiming at automated production of such algebras with the help of evolutionary techniques. Standard approach is not relevant due to the time complexity of the task, which is superexponential. Our research concerning the usage of genetic algorithms enabled the problem to be solvable in reasonable time and we were able to produce finite algebras with special properties called EQ-algebras. EQ-algebras form an alternate truth–value structure for new fuzzy logics. We present the algorithms and special versions of genetic operators suitable for this task. Then we performed experiments with application EQ-Creator are discussed with proper statistical analysis through ANOVA. The genetic approach enables to automatically generate algebras of sufficient extent w...

Evolving MultiAlgebras unify all usual sequential computation models

Arxiv preprint arXiv:1001.2160, 2010

It is well-known that Abstract State Machines (ASMs) can simulate "stepby-step" any type of machines (Turing machines, RAMs, etc.). We aim to overcome two facts: 1) simulation is not identification, 2) the ASMs simulating machines of some type do not constitute a natural class among all ASMs. We modify Gurevich's notion of ASM to that of EMA ("Evolving MultiAlgebra") by replacing the program (which is a syntactic object) by a semantic object: a functional which has to be very simply definable over the static part of the ASM. We prove that very natural classes of EMAs correspond via "literal identifications" to slight extensions of the usual machine models and also to grammar models. Though we modify these models, we keep their computation approach: only some contingencies are modified. Thus, EMAs appear as the mathematical model unifying all kinds of sequential computation paradigms.

A language for computational algebra

1981

This paper reports ongoing research at th e IBM Research Center on the development of a languag e with extensible parameterized types and generic operator s for computational algebra. The language provides a n abstract data type mechanism for defining algorithm s which work in as general a setting as possible. The language is based on the notions of domains and categories. Domains represent algebraic structures. Categorie s designate collections of domains having common operations with stated mathematical properties. Domain s and categories are computed objects which may b e dynamically assigned to variables, passed as arguments , and returned by functions. Although the language ha s been carefully tailored for the application of algebrai c computation, it actually provides a very general abstrac t data type mechanism. Our notion of a category to group domains with common properties appears novel amon g programming languages (cf. image functor of RUSSELL) and leads to a very powerful notion of abstract algorithm s missing from other work on data types known to th e authors. 1. Introduction. This paper describes a language wit h parameterized types and generic operators particularl y suited to computational algebra. A flexible framewor k is given for building algebraic structures and definin g algorithms which work in as general a setting a s possible. This section will be an overview of our mai n concepts: domains " and " categories In section 2, w e give more precise definitions and some examples. Section 3 contains our conclusions .

Genetic programming for finite algebras

Proceedings of the 10th …, 2008

We describe the application of genetic programming (GP) to a problem in pure mathematics, in the study of finite algebras. We document the production of human-competitive results in the discovery of particular algebraic terms, namely discriminator, Pixley, majority and Mal'cev terms, showing that GP can exceed the performance of every prior method of finding these terms in either time or size by several orders of magnitude. Our terms were produced using the ECJ and PushGP genetic programming systems in a variety of configurations. We compare the results of GP to those of exhaustive search, random search, and algebraic methods.

An object-oriented approach to algebra system design

Proceedings of the fifth ACM symposium on Symbolic and algebraic computation - SYMSAC '86, 1986

This paper describes a new computer algebra system design based on the object-oriented style of pmgramming and an implementation of this design, called Views, written in Smalltalk-80. The design is similar in goals to other 'new' generation computer algebra systems, by allowing the runtime creation of computational domains and providing a way to view these domains as members of categories such as 'group?,' 'ring' or 'field'. However, Views introduces several unique features. The most notable is the strong distinction made between a domain and its view as a member of a particular category. This distinction between the implementation of a domain and its adherence to a set of algebraic laws allows a great degree of flexibility when choosing the algebraic structures that are to be active during a computation. It also allows for a richer variety of interrelationships among categories than exhibited in other systems. 0 1986 ACM 0-89791-199-7/86/0700-0024 75t * We use the term view as a noun in two different ways. First as an element of a category and second as a method which returns an element of a category.

Evolving logic programs

2002

Logic programming has often been considered less than adequate for modelling the dynamics of knowledge changing over time. In this paper we describe a simple though quite powerful approach to modelling the updates of knowledge bases expressed by generalized logic programs, by means of a new language, hereby christened EVOLP (after EVOlving Logic Programs).

An Algebraic Framework for Compositional Program Analysis

The purpose of a program analysis is to compute an abstract meaning for a program which approximates its dynamic behaviour. A compositional program analysis accomplishes this task with a divide-and-conquer strategy: the meaning of a program is computed by dividing it into sub-programs, computing their meaning, and then combining the results. Compositional program analyses are desirable because they can yield scalable (and easily parallelizable) program analyses.

An offline partial evaluator for curry programs

Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming - WCFLP '05, 2005

Narrowing-driven partial evaluation is a powerful technique for the specialization of functional logic programs. In this paper, we describe the implementation of a narrowing-driven partial evaluator for Curry programs which follows the offline approach to ensuring termination. Although the new partial evaluator is less precise than previous (online) partial evaluators for Curry, it is much faster and, thus, allows the specialization of larger programs.

Controlled self-applicable on-line partial evaluation, using strategies

Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225)

On-line partial evaluators are hardly ever selfapplicable, because the complexity of deciding whether to residualize terms causes combinatorial explosion when self-application is attempted. Recently, T. Mogensen found a way to write a self-applicable online partial evaluator for -calculus. His method is to regard every -term as having both static and dynamic aspects; then, applications can always be done statically (using the static aspect of the operator). However, the absence of decision-making about residualization has a down side: his partial evaluator knows only how to fully reduce partially evaluated terms. The result is considerable code explosion. We show how this problem can be overcome, in part, by changing the type of the partial evaluator, and giving a new version of the Futamura projections to correspond to that new type. Speci cally, we have the partial evaluator take a third argument, called a strategy, which \advises" the partial evaluator whether to residualize. Strategies allow the programmer to control the tradeo between the size of a specialized term and the cost of subsequently applying it. We present a number of strategies and examples of each.

Obtaining Basic Algebra Formulas with Genetic Programming and Functional Rewriting

arXiv (Cornell University), 2020

In this paper we develop a set of genetic programming operators and an initialization population process based on concepts of functional programming rewriting for boosting inductive genetic programming. Such genetic operators are used with in a hybrid adaptive evolutionary algorithm that evolves operator rates at the same time it evolves the solution. Solutions are represented using recursive functions where genome is encoded as an ordered list of trees and phenotype is wri en in a simple functional programming language that uses rewriting as operational semantic (computational model). e fitness is the number of examples successfully deduced over the cardinal of the set of examples. Parents are selected following a tournament selection mechanism and the next population is obtained following a steady state strategy. e evolutionary process can use some previous functions (programs) induced as background knowledge. We compare the performance of our technique in a set of hard problems (for classical genetic programming). In particular, we take as test-bed the problem of obtaining equivalent algebraic expressions of some notable products (such as square of a binomial, and cube of a binomial), and the recursive formulas of sum of the first n and squares of the first n natural numbers. CCS Concepts: • eory of computation → Equational logic and rewriting; Inductive inference; •So ware and its engineering → Genetic programming;