JetBrains MPS
Encyclopedia
JetBrains MPS is a metaprogramming system which is being developed by JetBrains
JetBrains
JetBrains is a Czech software development company with offices in Prague, Czech Republic; Saint Petersburg, Russia; Boston, USA and Munich, Germany...

. It implements language-oriented programming
Language-oriented programming
Language oriented programming is a style of computer programming in which, rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific languages for the problem first, and solves the problem in those languages...

. MPS is an environment for language definition, a Language Workbench, and integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 (IDE) for such languages.

Composable languages

Developers from different domains can benefit from domain specific language extensions in general purpose programming languages. For example, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 developers working with financial applications might benefit from built-in support of monetary values. Unfortunately, traditional text based languages are subject to text ambiguity problems which makes such extensions problematic.

MPS supports composable language definitions. This means that languages can be extended, and embedded, and these extensions can be used, and will work, in the same program in MPS. For example, if Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 is extended with a better syntax for collection and then again extended with a better syntax for dates, these extensions will work well together.

MPS solves grammar ambiguity problem by working with Abstract Syntax Tree
Abstract syntax tree
In computer science, an abstract syntax tree , or just syntax tree, is a tree representation of the abstract syntactic structure of source code written in a programming language. Each node of the tree denotes a construct occurring in the source code. The syntax is 'abstract' in the sense that it...

 directly. In order to edit such a tree, a text-like projectional editor is used.

Reusable language infrastructure

MPS provides reusable language infrastructure which is configured with language definition languages. Also MPS provides many IDE services automatically: editor, code completion, find usages etc.

Existing languages

  • Base Language - 99% Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

     reimplemented with MPS. There are a lot of extensions of this language
    • collections language
    • dates language
    • closures language
    • regular expressions language
  • Language definition languages - these language are implemented with themselves, i.e. bootstrapped
    • structure language
    • editor language
    • constraints language
    • typesystem language
    • generator language

Software developed using MPS

In October 2009, JetBrains has released YouTrack
YouTrack
YouTrack is a commercial World Wide Web-based bug tracker and issue tracking system developed by JetBrains. It focuses on query-based issue search with auto-completion, manipulating issues in batches, customizing the set of issue attributes and creating custom workflows, and implements a...

 bug tracking system - the first commercial software product developed with MPS.

In April 2010, a Realaxy ActionScript Editor
Realaxy ActionScript Editor
Realaxy ActionScript Editor is a commercial ActionScript IDE by Realaxy based on the JetBrains MPS meta programming system.- Development history :...

beta was released being the first commercial IDE based on the MPS platform.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK