• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Strongly Typed Rewriting For Coupled Software Transformation (2006)

by A Cunha, J Visser
Venue:In RULE 2006
Add To MetaCart

Tools

Sorted by:
Results 1 - 7 of 7

Specifying strategies for exercises

by Bastiaan Heeren, Johan Jeuring, Arthur Van Leeuwen, Alex Gerdes, Bastiaan Heeren, Johan Jeuring, Arthur Van Leeuwen, Alex Gerdes - Suzuki & F. Wiedijk, eds, ‘AISC/Calculemus/MKM 2008’, LNAI 5144, SpringerVerlag , 2008
"... Abstract. The feedback given by e-learning tools that support incrementally solving problems in mathematics, logic, physics, etc. is limited, or laborious to specify. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically ..."
Abstract - Cited by 12 (8 self) - Add to MetaCart
Abstract. The feedback given by e-learning tools that support incrementally solving problems in mathematics, logic, physics, etc. is limited, or laborious to specify. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically calculate feedback when users make erroneous steps in a calculation. Although we need the power of a full programming language to specify strategies, we carefully distinguish between context-free and non-contextfree sublanguages of our strategy language. This separation is the key to automatically calculating all kinds of desirable feedback. 1

Coupled Schema Transformation and Data Conversion For XML and SQL

by Pablo Berdaguer, Alcino Cunha, Hugo Pacheco, Joost Visser - In PADL 2007, volume 4354 of LNCS , 2007
"... Abstract. A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. We have implemented a system for performing two-level transformations on XML schemas and their corresponding doc ..."
Abstract - Cited by 10 (4 self) - Add to MetaCart
Abstract. A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. We have implemented a system for performing two-level transformations on XML schemas and their corresponding documents, and on SQL schemas and the databases that they describe. The core of the system consists of a combinator library for composing type-changing rewrite rules that preserve structural information and referential constraints. We discuss the implementation of the system’s core library, and of its SQL and XML front-ends in the functional language Haskell. We show how the system can be used to tackle various two-level transformation scenarios, such as XML schema evolution coupled with document migration, and hierarchical-relational data mappings that convert between XML documents and SQL databases. Key words: Haskell, Transformation, SQL, XML 1

Recognizing Strategies

by Bastiaan Heeren, Johan Jeuring, Bastiaan Heeren, Johan Jeuring , 2008
"... ..."
Abstract - Cited by 7 (6 self) - Add to MetaCart
Abstract not found

Specifying Rewrite Strategies for Interactive Exercises

by Bastiaan Heeren, Johan Jeuring, Alex Gerdes
"... Abstract. Strategies specify how a wide range of exercises can be solved incrementally, such as bringing a logic proposition to disjunctive normal form, reducing a matrix, or calculating with fractions. In this paper we introduce a language for specifying strategies for solving exercises. This langu ..."
Abstract - Cited by 6 (6 self) - Add to MetaCart
Abstract. Strategies specify how a wide range of exercises can be solved incrementally, such as bringing a logic proposition to disjunctive normal form, reducing a matrix, or calculating with fractions. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically calculate feedback, for example when a user makes an erroneous step in a calculation. We can automatically generate worked-out examples, track the progress of a student by inspecting submitted intermediate answers, and report back suggestions in case the student deviates from the strategy. Thus it becomes less labor-intensive and less ad-hoc to specify new exercise domains and exercises within that domain. A strategy describes valid sequences of rewrite rules, which turns tracking intermediate steps into a parsing problem. This is a promising view at interactive exercises because it allows us to take advantage of many years of experience in parsing sentences of context-free languages, and transfer this knowledge and technology to the domain of stepwise solving exercises. In this paper we work out the similarities between parsing and solving exercises incrementally, we discuss generating feedback on strategies, and the implementation of a strategy recognizer.

Generic point-free lenses

by Hugo Pacheco, Alcino Cunha - In International Conference on Mathematics of Program Construction (MPC), Québec City, QC , 2010
"... Abstract. Lenses are one the most popular approaches to define bidirectional transformations between data models. A bidirectional transformation with view-update, denoted a lens, encompasses the definition of a forward transformation projecting concrete models into abstract views, together with a ba ..."
Abstract - Cited by 3 (0 self) - Add to MetaCart
Abstract. Lenses are one the most popular approaches to define bidirectional transformations between data models. A bidirectional transformation with view-update, denoted a lens, encompasses the definition of a forward transformation projecting concrete models into abstract views, together with a backward transformation instructing how to translate an abstract view to an update over concrete models. In this paper we show that most of the standard point-free combinators can be lifted to lenses with suitable backward semantics, allowing us to use the point-free style to define powerful bidirectional transformations by composition. We also demonstrate how to define generic lenses over arbitrary inductive data types by lifting standard recursion patterns, like folds or unfolds. To exemplify the power of this approach, we “lensify ” some standard functions over naturals and lists, which are tricky to define directly “by-hand ” using explicit recursion.

Algebraic Specialization of Generic Functions for Recursive Types

by Alcino Cunha, Hugo Pacheco
"... Defining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of them allow the user to specify the behavior just for the interesting bits of the structure, and provide traversal combinators to “scrap the boilerplate”. The expressive power of these libraries usually comes at the cost of efficiency, since runtime checks are used to detect where to apply the type-specific behavior. In previous work we have developed an effective rewrite system for specialization and optimization of generic programs. In this paper we extend it to also cover recursive data types. The key idea is to specialize traversal combinators using well-known recursion patterns, such as folds or paramorphisms. These are ruled by a rich set of algebraic laws that enable aggressive optimizations. We present a type-safe encoding of this rewrite system in Haskell, based on recent language extensions such as type-indexed type families. Keywords:

generators; F.4.2 [Mathematical Logic and Formal Languages]:

by Johan Jeuring, Andres Löh, Bram Schuur , 2012
"... program transformation We present type-and-transform systems, an approach to type-safe, semantics-preserving, automatic program transformation. A typeand-transform system maps a source program using one type to a target program using another type. The core of the system, propagation, is derived dire ..."
Abstract - Add to MetaCart
program transformation We present type-and-transform systems, an approach to type-safe, semantics-preserving, automatic program transformation. A typeand-transform system maps a source program using one type to a target program using another type. The core of the system, propagation, is derived directly from the object language type system. The transformation itself is defined with simple typed rewrite rules. In this paper, we describe the theory of type-and-transform systems and give an implementation. We illustrate the concept with several realistic examples from the literature, and we establish the correctness properties of type-and-transform systems. 1.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University