Assignment: Autism Spectrum Disorder (ASD)
Assignment: Autism Spectrum Disorder (ASD)
Choose between autism spectrum disorder (ASD) and attention deficit hyperactivity disorder (ADHD) and discuss the proposed causes, symptoms, and treatment.
Just need 125 words
In the following we present general guidelines to be consid- ered for both textual and graphical DSLs with main focus is on the former. The guidelines are discussed sometimes using examples from well-known programming languages or math- ematics, because these languages are known best. Depend- ing on the concrete language and the domain these guidelines have to be weighted differently as there might be different purposes, complexity, and number of users of the resulting language. For example, for a rather simple configuration language used in only one project a timely realization is usu- ally more important than the optimization of its usability. Therefore, guidelines must be sometimes ignored, altered, or enforced. Especially quality-assurance guidelines can result in an increased amount of work.
While we generally focus in our work on DSLs that are specifically dedicated to modeling aspects of (software) sys- tems, we believe that these guidelines generally hold for any DSL that embeds a certain degree of complexity.
1.1 Literature on Language Design For programming languages, design guidelines have been
intensively discussed since the early 70s. Hoare  intro- duced simplicity, security, fast translation, efficient object code, and readability as general criteria for the design of good languages. Furthermore, Wirth  discussed sev- eral guidelines for the design of languages and correspond- ing compilers. The rationale behind most of the guidelines and hints of both articles can be accepted as still valid to- day, but the technical constraints have changed dramati- cally since the 70s. First of all, computer power has in- creased significantly. Therefore, speed and space problems have become less important. Furthermore, due to sophis- ticated tools (e.g., parser generators) the implementation of accompanying tools is often not a necessary part of the language development any more. Of course, both articles
concentrate on programming languages and do not consider the greater variety of domain specific languages.
More recently, authors have also discussed the design of domain specific modeling languages. General principles for modeling language design were introduced in . These include simplicity, uniqueness, consistency, and scalability, on which we will rely later. However, the authors did not discuss how these higher level principles can be achieved. In  certain aspects of the DSL development are explained and some guidelines are introduced. More practical guide- lines for implementing DSLs are given in . These focus on how to identify the necessary language constructs to gen- erate full code from models. The authors explain how to provide tool support with the MetaEdit+ environment.  explains 12 lessons learned from DSL experiments that can help to improve a DSL. Although more detailed discussions on explicit guidelines are missing, these lessons embed doc- umented empirical evidence – a documentation that many other discussions, including ours do not have. In  the authors introduce a toolset which supports the definition of DSLs by checking their consistency with respect to sev- eral objectives. Language designers can select properties of their DSL to be developed and the system automatically derives other design decisions in order to gain a consistent language definition. However, the introduced criteria cover only a subset of the decisions to be made and hence, cannot serve as the only criteria for good language design. Quite the contrary, to our experience many design guidelines can- not be translated in automatic measures and thus cannot be checked by a tool.
1.2 Categories of DSL Design Guidelines The various design guidelines we will discuss below, can
be organized into several categories. Essentially, these guide- lines describe techniques that are useful at different activities of the language development process, which range from the domain analysis to questions of how to realize the DSL to the development of an abstract and a concrete syntax including the definition of context conditions. An alignment of guide- lines with the language development activities and the de- veloped artifacts has the advantage that a language designer can concentrate on the respective subset of the guidelines at each activity. This should help identifying and realizing the desired guidelines. Therefore, we decided for a development phase oriented classification and identified the following cat- egories:
Language Purpose discusses design guidelines for the early activities of the language development process.
Language Realization introduces guidelines which discuss how to implement the language.
Language Content contains guidelines which focus on the elements of a language.
Concrete Syntax concentrates on design guidelines for the readable (external) representation of a language.
Abstract Syntax concentrates on design guidelines for the internal representation of a language.
For each of these categories we will discuss the design guidelines we found useful. Please be aware that the subse- quently discussed guidelines sometimes are in conflict with
each other and the language developer sometimes has to bal- ance them accordingly. Additionally, semantics is explicitly not listed as a separate step as it should be part of the entire development process and therefore has an influence on all of the categories above.
2. DSL DESIGN GUIDELINES
2.1 Language Purpose Language design is not only influenced by the question of
what it needs to describe, but equally important what to do with the language. Therefore, one of the first activities in language design is to analyze the aim of the language.