%in Durban+277-882-255-28 abortion pills for sale in Durban
Language Workbench Language Wheel
1. Language Wheel
identifierbuilt-in concepts
if
language
“front-end” workbench
predefined concepts
custom concepts
expression statement
idea define languages using a wizard-like interface
for class …
type system
web-based
by Mikhail Barash, March 2018
flavor affects all aspects of a language
50+ concepts
several type systems can be defined for a language
Language Wheel Xtext MPS validations, type system, code generation, …
1
…
strive to separate language concepts and “technical concepts”
“illustrative”
influenced by XtextMPS Cedalion Nemerle
only 1 active though
2. Language Wheel abstract & concrete syntax
by Mikhail Barash, March 2018
2
represented as a “card”
concept encapsulates both abstract and concrete syntax similar to Xtext
no clear separation between language aspects
less abstract way to define a language
helps achieving “illustrative” way to define a language
concept features projection
feature name type concept
projection textual
only minimally required information about a child
no cardinality, …
translation to target language
illustrative
type system “constraints” on features
grammar rule
and features
formatting
if ( 2+2>5 ) then { … rather than if ( condition ) { …
…
3. Language Wheel concept card
by Mikhail Barash, March 2018
3
int x ;
name
undeclared ident
type: integer (fixed)
name: ident;
private int x;
IntegerField
abstract syntax
= list of features
projection
translation to target language
name
x = 2*3+y;
assignee
existing ident
type: type2
to be computed
assignee: ident; value: expr;
x = 2*3+y;
AssignmentStatement
value
expr
type: type1
should be same as type2
ident expr
à la Xtend template expressions edited in projectional style MyLanguage
concepts
predefined projections for
predefined concepts available