JBoss Drools Core Developer - Working on BRMS design and implementation.
Language and Compilers researcher
fmeyer @ GUJ || #drools irc.codehaus.org
DSL DSLs are generally very high level languages tailored to speciﬁc tasks. They are designed to make their users particularly effective in a speciﬁc domain. DSLs include a wide range of applications, many of which you might not consider languages. DSLs include data for mats, conﬁguration ﬁle for mats, network protocols, text processing languages, protein patter ns, gene sequences, space probe control languages, and domain-speciﬁc programming languages.
DSLs allow solutions to be expressed in the idiom and at the level of abstraction of the problem domain. Consequently, domain experts themselves can understand, validate, modify, and often even develop DSL programs.
DSLs enhance quality, productivity, reliability, maintainability, portability and reusability.
DSLs allow validation at the domain level. As long as the language constructs are safe any sentence written with them can be considered safe.
The specification of a programming language will include a set of rules, often expressed syntactically, specifying the set of possible character sequences that can form a token or lexeme.
***A lexeme is an abstract unit of morphological analysis in linguistics, A token is a categorized block of text, usually consisting of indivisible characters known as lexemes. A lexical analyser processes lexemes to categorize them according to function, giving them meaning. This assignment of meaning is known as tokenization . A token can look like anything: English, gibberish symbols, anything; it just needs to be a useful part of the structured text.
Java programming language: sum=3+2; lexeme token type sum IDENT = ASSIGN_OP 3 NUMBER + ADD_OP 2 NUMBER ; SEMICOLON
Parsing parsing (more formally syntactic analysis) is the process of analyzing a sequence of tokens to determine its grammatical structure with respect to a given formal grammar.
Parsing transforms input text into a data structure (AST) x = y - z * 3
Parser is the component of a compiler that carries out this task.
Relationship Between Characters, Tokens, and ASTs