The Converge programming language.

Technical report


Tratt, L. 2005. The Converge programming language. King's College London, Department of Computer Science.. https://doi.org/TR-05-01
TypeTechnical report
TitleThe Converge programming language.
AuthorsTratt, L.
Abstract

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.

PublisherKing's College London, Department of Computer Science.
Publication process dates
Deposited27 May 2010
Output statusPublished
Digital Object Identifier (DOI)https://doi.org/TR-05-01
LanguageEnglish
Institution nameKing's College London
Department nameDepartment of Computer science
File
Permalink -

https://repository.mdx.ac.uk/item/82ww6

Download files

  • 25
    total views
  • 19
    total downloads
  • 0
    views this month
  • 1
    downloads this month

Export as