4,098 research outputs found

    Icon: A Interpreter-Based Approach

    Get PDF
    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

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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

    Get PDF
    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
    • ā€¦
    corecore