4,098 research outputs found
Icon: A Interpreter-Based Approach
This paper introduces the Icon programming language in a simplified form using a lisp-like syntax to represent an interesting subset of the language. The paper also discusses the semantics and implementation of some of Icon\u27s advanced features with emphasis on generators and goal-directed evaluation. The organization of the paper resembles a chapter in the book ``Programming Languages: An Interpreter-Based Approach\u27\u27 by Samuel Kamin. This paper can serve as a supplement to that book, allowing comparative programming language instructors who use the Kamin text to efficiently teach the Icon programming languag
Model transformations in Converge
Model transformations are currently the focus of much interest and research due to the OMGās QVT initiative. Current proposals for model transformation languages
can be divided into two main camps: those taking a ādeclarativeā approach, and those opting for an āimperativeā approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language,
amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show
that we are able to gain some of the advantages of declarative approaches in an imperative setting
Model transformations in converge.
Model transformations are currently the focus of much interest and research due to the OMGās QVT initiative. Current proposals for model transformation languages
can be divided into two main camps: those taking a ādeclarativeā approach, and those opting for an āimperativeā approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language,
amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show
that we are able to gain some of the advantages of declarative approaches in an imperative setting
Model transformations in converge.
Model transformations are currently the focus of much interest and research due to the OMGās QVT initiative. Current proposals for model transformation languages
can be divided into two main camps: those taking a ādeclarativeā approach, and those opting for an āimperativeā approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language,
amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show that we are able to gain some of the advantages of declarative approaches in an imperative setting
Using icon-derived technologies to drive model transformations.
Model transformations are currently the object of much interest and research.
Current proposals for model transformation languages can be divided into two
main camps: those taking a ādeclarativeā approach, and those opting for an āimperativeā
approach. The Icon programming language is a SNOBOL derivative which
contains several unique constructs which make it particularly well suited to the
job of analyzing and transforming strings. In this paper we discuss model transformations,
analyze the relevant parts of Icon that lend themselves to transforming
strings, and then propose how some of Iconās unique features could be incorporated
into a model transformation approach that partially blurs the distinction between
ādeclarativeā and āimperativeā approaches
The Converge programming language.
This paper details the Converge programming language, a new dynamically typed imperative programming language capable of compile-time meta-programming, and with
an extendable syntax. Although Converge has been designed with the aim of implementing different model transformation approaches as embedded DSLās in mind, it is
also a General Purpose Language (GPL), albeit one with unusually powerful features. The motivation for a new approach to implementing model transformation approaches
is simple: existing languages, and their associated tool-chains, lead to long and costly implementation cycles for model transformation approaches. The justification for creating a new language, rather than altering an existing one, is far less obviousā it is reasonable to suggest that, given the vast number of programming languages
already in existence, one of them should present itself as a likely candidate for modification. There are two reasons why a new language is necessary to meet the aims of this
paper. Firstly, in order to meet its aims, Converge contains a blend of features unique amongst programming languages; some fundamental design choices have been necessary to make these features coalesce, and imposing such choices retrospectively on an existing language would almost certainly lead to untidy results and backwards compatibility issues. Secondly, my personal experience strongly suggests that the complexity of modern languages implementations (when such implementations are available) can make adding new features a significant challenge. In short, I assert that it is easier in the context of model transformations to start with a fresh canvass than to alter an existing language.
This paper comes in three main parts. The first part documents the basics of the Converge language itself;. The second part details Convergeās compile-time metaprogramming
and syntax extension facilities, including a section detailing suggestions for how some of Convergeās novel features could be added to similar languages. The
third part of this paper explains Convergeās syntax extension facility, and documents a user extension which allows simple UML-esque modelling languages to be embedded
within Converge. As well as being a practical demonstration of Convergeās features, this facility is used extensively throughout the remainder of the paper
Ludo: A Case Study for Graph Transformation Tools
In this paper we describe the Ludo case, one of the case studies of the AGTIVE 2007 Tool Contest (see [22]). After summarising the case description, we give an overview of the submitted solutions. In particular, we propose a number
of dimensions along which choices had to be made when solving the case, essentially setting up a solution space; we then plot the spectrum of solutions actually encountered into this solution space. In addition, there is a brief description of the special features of each of the submissions, to do justice to those aspects that are not distinguished in the general solution space
- ā¦