By Anneke Kleppe
Software program practitioners are quickly gaining knowledge of the massive price of Domain-Specific Languages (DSLs) in fixing difficulties inside sincerely definable challenge domain names. builders are utilising DSLs to enhance productiveness and caliber in quite a lot of components, comparable to finance, wrestle simulation, macro scripting, photograph iteration, and extra. yet in the past, there were few functional assets that specify how DSLs paintings and the way to build them for optimum use. software program Language Engineering fills that desire. Written via professional DSL advisor Anneke Kleppe, this is often the 1st finished advisor to profitable DSL layout. Kleppe systematically introduces and explains each aspect of a good language specification, together with its description of recommendations, how these suggestions are denoted, and what these options suggest when it comes to the matter area. Kleppe rigorously illuminates sturdy layout method, displaying tips to maximize the pliability of the languages you create. She additionally demonstrates strong innovations for developing new DSLs that cooperate good with general-purpose languages and leverage their energy. thoroughly tool-independent, this e-book can function the first source for readers utilizing Microsoft DSL instruments, the Eclipse Modeling Framework, openArchitectureWare, or the other DSL toolset. It comprises a number of examples, an illustrative operating case examine, and insights and heritage details drawn from Kleppe’s modern paintings as a DSL researcher. particular themes coated contain researching the kinds of difficulties that DSLs can remedy, and whilst to take advantage of them evaluating DSLs with general-purpose languages, frameworks, APIs, and different methods figuring out the jobs and instruments on hand to language clients and engineers developing every one section of a DSL specification Modeling either concrete and summary syntax realizing and describing language semantics Defining textual and visible languages in keeping with object-oriented metamodeling and graph differences utilizing metamodels and linked instruments to generate grammars Integrating object-oriented modeling with graph thought development code turbines for brand spanking new languages helping multilanguage versions and courses This ebook presents software program engineers with the entire advice they should create DSLs that remedy genuine difficulties extra quickly, and with higher-quality code.
Read or Download Software Language Engineering: Creating Domain-Specific Languages Using Metamodels PDF
Best systems analysis & design books
Biometric systems: technology, design, and performance evaluation
This booklet presents practitioners with an outline of the foundations & tools had to construct trustworthy biometric platforms. It covers three major subject matters: key biometric applied sciences, trying out & administration concerns, & the criminal and process concerns of biometric platforms for private verification/identification.
Software Language Engineering: Creating Domain-Specific Languages Using Metamodels
Software program practitioners are quickly learning the massive worth of Domain-Specific Languages (DSLs) in fixing difficulties inside basically definable challenge domain names. builders are using DSLs to enhance productiveness and caliber in a variety of components, reminiscent of finance, wrestle simulation, macro scripting, photo new release, and extra.
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineering
This publication is the distillation of over 25 years of labor by means of one of many world's most famous desktop scientists. A specification is a written description of what a process is meant to do, plus a manner of checking to ensure that it really works. Specifying a method is helping us realize it. it is a stable concept to appreciate a approach earlier than construction it, so it is a solid inspiration to jot down a specification of a procedure earlier than imposing it.
Éste es un excelente texto para el curso de diseño de bases de datos. El libro integra los angeles teoría de los angeles base de datos, de modo práctico, con su diseño y aplicación. El texto está diseñado específicamente para el estudiante moderno de l. a. base de datos, quien requiere conocer los angeles teoría y el diseño, así como las aplicaciones en el campo profesional.
- Structured programming using processes
- Expert Systems for Engineering Design
- Maven: A Developer's Notebook
- Specification and Development of Interactive Systems: Focus on Streams, Interfaces, and Refinement
- An introduction to queueing theory and matrix-analytic methods
Extra info for Software Language Engineering: Creating Domain-Specific Languages Using Metamodels
Definition 3-3 (Abstraction Level) The abstraction level of a concept present in a software language is the amount of detail required to either represent (for data) or execute (for processes) this concept in terms of computer hardware. Loosely speaking, abstraction level is the distance between a concept and the computer hardware. The more effort you need to represent the concept in terms of hardware, the more abstract it is. For instance, the concept memory location is very close to the computer hardware and therefore at a very low level of abstraction.
An example rule is A -> xyzB. 4. In regular grammars (type 3), all production rules have either the form A -> wB or A -> Bw, where A and B are nonterminals, and w is a (possibly empty) string of terminals. It has been proven that each type i of languages properly includes all type (i+1) languages. This means, for instance, that any context-free language also falls in the context- sensitive category. BNF grammars, including the preceding example, are contextfree grammars. In graph grammars, each side of a rule consists of a graph: a connected set of elements.
Tool development for domain-specific languages is at least as complex as for generalpurpose languages. When the potential number of users of these tools is small, one has to weigh the advances of using a DSL against the effort of creating that DSL. One might say that for economic reasons, it is a bad thing to have DSLs. On the other hand, there will always be a demand for languages that will be used for a relatively small period of time by a small group of people. For instance, in large, long-running projects, small (scripting) languages are often built to automate specific, recurring tasks in that project.