Why DSL
Ryan J. Kung
ryankung(at)ieee.org
Conclusion
We perfer to use DSLs is addressing that in
model complete therory
and
definition of DSLs
, it is a more concrete and direct way for doing modeling ...
Why DSL
Ryan J. Kung
ryankung(at)ieee.org
Conclusion
We perfer to use DSLs is addressing that in
model complete therory
and
definition of DSLs
, it is a more concrete and direct way for doing modeling better, because
iffiff
a model
MM
is model complete, it is equalize to the
DSLDSL
of that Model.
DSL
There are two main schools of DSLs:
internalinternal
and
externalexternal
DSLs[1]. The
concrete syntaxconcrete syntax
defines the notation with wihich users can express programs.
A DSL or GPL may include follow ingredients[2]:
-
abstract syntaxabstract syntax
which is a data structure that can hold the semantically relevant information express by a program.
-
static semanticsstatic semantics
Which Of language are the set of constraints and/or type system rules to which programs have to conform.
-
ExcutionSemanticsExcutionSemantics
Which refers to the meaning of a program once it is execuded. It is realized using the
execution engineexecution engine
.
Modeling, and Model Complete
Modeling
There are two ways in which the term modeling can be understood:
descriptive
and
preciptive
. A descriptive model represent an existing system Thus a presciptive model is one that can be used to construct the target system. In DSL engineering, we always mean
prescriptive
models when we use the term model[3].
Model Complete
In model theory, a first-order theory is called model complete if every embedding of models is an elementary embedding. Equivalently, every first-order formula is equivalent to a universal formula[6].
A
companion
of a theory
TT
is a theory
T∗T∗
such that every model of
TT
can be embedded in a model of
T∗T∗
and vice versa.
A
model companion
of a theory
TT
is a companion of
TT
that is model complete.
RobinsonRobinson
proved that a theory has at most one model companion.
A model completion for a theory
TT
is a model companion
T∗T∗
such that for any model
MM
of
TT
, the theory of
T∗T∗
together with the diagram of
MM
is complete. Roughly speaking, this means every model of
TT
is embeddable in a model of
T∗T∗
in a unique way.
GPL and Turing Complete
We known that the
GPL
is always
Turing Complete
.
Turing Complete
is means that a GPL it can be used to simulate any single-taped Turing machine. Turing Complete is actualy a preciptive model of
Turing Machine
.
Domains and Model complete
When we said that a language
ll
covers a subset of
PP
, we can simply call this subset the
domaindomain
covered with
ll
. The subset of
PP
in that domain
PDPD
is equal to the subset of
PP
we can express with a language
ll
PlPl
. So, we cannot ask a question like: “Does the language adequately cover the domain?”,
since it always does, by definition
.[4] And the definition can be also interept as that “
DSL is always model complete, by definition
”
Completeness
A DSL might be eighter
incomplete-DSL
or
complete-DSL
, is determined by
Completeless
which is refers and only refers to the degree to which a language
LL
can express programs that contain all necessary information to execute them. An program express in an incomplete DSL requires additional specifications (such as configuation files or code written in a lower-level language) to make it executable.[5]
Referance
[1][2][3]DSL Engineering, Designing, Implementing and Using Domain-Specific Languages, Markus Voelter, dslbook.org, ch 2.1
[4]DSL Engineering, Designing, Implementing and Using Domain-Specific Languages, Markus Voelter, dslbook.org, ch 3.1
[5]DSL Engineering, Designing, Implementing and Using Domain-Specific Languages, Markus Voelter, dslbook.org, ch 4.5
[6] Chang, Chen Chung; Keisler, H. Jerome (1990) [1973], Model Theory, Studies in Logic and the Foundations of Mathematics (3rd ed.), Elsevier, ISBN 978-0-444-88054-3