909 results on '"DOMAIN-specific programming languages"'
Search Results
2. Low-Code Programming Models: Low-code has the potential to empower more people to automate tasks by creating computer programs.
- Author
-
HIRZEL, MARTIN
- Subjects
- *
COMPUTER programming , *VISUAL programming languages (Computer science) , *ARTIFICIAL intelligence , *DOMAIN-specific programming languages , *SOFTWARE architecture , *COMPUTER software development , *SOFTWARE development tools - Abstract
This article offers clarity of the concept of low-code programming by exploring visual programming languages, programming by demonstration, and programming by natural language. Artificial intelligence, domain-specific languages, and model-view-controller pattern in low-code programming are also discussed.
- Published
- 2023
- Full Text
- View/download PDF
3. Expressing and Exploiting Subgoal Structure in Classical Planning Using Sketches.
- Author
-
Drexler, Dominik, Seipp, Jendrik, and Geffner, Hector
- Subjects
DECOMPOSITION method ,POLYNOMIAL time algorithms ,BOOLEAN functions ,COMPUTATIONAL complexity ,DOMAIN-specific programming languages - Abstract
Width-based planning methods deal with conjunctive goals by decomposing problems into subproblems of low width. Algorithms like SIW thus fail when the goal is not easily serializable in this way or when some of the subproblems have a high width. In this work, we address these limitations by using a simple but powerful language for expressing finer problem decompositions introduced recently by Bonet and Geffner, called policy sketches. A policy sketch R over a set of Boolean and numerical features is a set of sketch rules C → E that express how the values of these features are supposed to change. Like general policies, policy sketches are domain general, but unlike policies, the changes captured by sketch rules do not need to be achieved in a single step. We show that many planning domains that cannot be solved by SIW are provably solvable in low polynomial time with the SIW
R algorithm, the version of SIW that employs user-provided policy sketches. Policy sketches are thus shown to be a powerful language for expressing domain-specific knowledge in a simple and compact way and a convenient alternative to languages such as HTNs or temporal logics. Furthermore, they make it easy to express general problem decompositions and prove key properties of them like their width and complexity. [ABSTRACT FROM AUTHOR]- Published
- 2024
- Full Text
- View/download PDF
4. Achieving High Performance the Functional Way: Expressing High-Performance Optimizations as Rewrite Strategies.
- Author
-
Hagedorn, Bastian, Lenfers, Johannes, Koehler, Thomas, Xueying Qin, Gorlatch, Sergei, and Steuwer, Michel
- Subjects
- *
OPL (Computer program language) , *PROGRAMMING languages , *DOMAIN-specific programming languages , *COMPUTER programming , *ELECTRONIC data processing , *COMPUTER software development - Abstract
Optimizing programs to run efficiently on modern parallel hardware is hard but crucial for many applications. The predominantly used imperative languages force the programmer to intertwine the code describing functionality and optimizations. This results in a portability nightmare that is particularly problematic given the accelerating trend toward specialized hardware devices to further increase efficiency. Many emerging domain-specific languages (DSLs) used in performance-demanding domains such as deep learning attempt to simplify or even fully automate the optimization process. Using a high-level--often functional--language, programmers focus on describing functionality in a declarative way. In some systems such as Halide or TVM, a separate schedule specifies how the program should be optimized. Unfortunately, these schedules are not written in well-defined programming languages. Instead, they are implemented as a set of ad hoc predefined APIs that the compiler writers have exposed. In this paper, we show how to employ functional programming techniques to solve this challenge with elegance. We present two functional languages that work together--each addressing a separate concern. RISE is a functional language for expressing computations using well-known data-parallel patterns. ELEVATE is a functional language for describing optimization strategies. A high-level RISE program is transformed into a low-level form using optimization strategies written in ELEVATE. From the rewritten low-level program, high-performance parallel code is automatically generated. In contrast to existing high-performance domain-specific systems with scheduling APIs, in our approach programmers are not restricted to a set of built-in operations and optimizations but freely define their own computational patterns in RISE and optimization strategies in ELEVATE in a composable and reusable way. We show how our holistic functional approach achieves competitive performance with the state-of-the-art imperative systems such as Halide and TVM. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
5. For a More Transparent Governance of Open Source: Seeking the best governance models for FOSS projects. .
- Author
-
Cánovas Izquierdo, Javier Luis and Cabot, Jordi
- Subjects
- *
OPEN source software , *INTERNET governance , *COMPUTER programming , *DOMAIN-specific programming languages , *OPEN data movement - Abstract
This article reports on how to improve transparent governance of Free and Open Source Software (FOSS). The article presents the current state of FOSS governance using data from Github and builds a roadmap for transparency detailing workflow and decision-making. Topics include the establishment of a governance file located in the root folder of any open source project, the use of a domain-specific language, and the sharing of predefined templates to aid in widespread incorporation of transparency.
- Published
- 2023
- Full Text
- View/download PDF
6. Modelling Value-Oriented Legal Reasoning in LogiKEy.
- Author
-
Benzmüller, Christoph, Fuenmayor, David, and Lomfeld, Bertram
- Subjects
- *
REASONING , *DOMAIN-specific programming languages , *KNOWLEDGE representation (Information theory) , *PLURALISM , *PHILOSOPHY - Abstract
The logico-pluralist LogiKEy knowledge engineering methodology and framework is applied to the modelling of a theory of legal balancing, in which legal knowledge (cases and laws) is encoded by utilising context-dependent value preferences. The theory obtained is then used to formalise, automatically evaluate, and reconstruct illustrative property law cases (involving the appropriation of wild animals) within the Isabelle/HOL proof assistant system, illustrating how LogiKEy can harness interactive and automated theorem-proving technology to provide a testbed for the development and formal verification of legal domain-specific languages and theories. Modelling value-oriented legal reasoning in that framework, we establish novel bridges between the latest research in knowledge representation and reasoning in non-classical logics, automated theorem proving, and applications in legal reasoning. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
7. SMSE: A serverless platform for multimedia cloud systems.
- Author
-
Denninnart, Chavit and Amini Salehi, Mohsen
- Subjects
MULTIMEDIA systems ,DOMAIN-specific programming languages ,INFORMATION technology industry ,CONTAINERIZATION ,CHARACTERISTIC functions ,CLOUD computing - Abstract
Summary: Along with the rise of domain‐specific computing (ASICs hardware) and domain‐specific programming languages, we envision that the next step is the emergence of domain‐specific cloud platforms. Considering multimedia streaming as one of the most trendy applications in the IT industry, the goal of this study is to develop serverless multimedia streaming engine (SMSE), the first domain‐specific serverless platform for multimedia streaming. SMSE democratizes multimedia service development via enabling content providers (or even end‐users) to rapidly develop their desired functionalities on their multimedia contents. Upon developing SMSE, the next goal of this study is to deal with its efficiency challenges and develop a function container provisioning method that can efficiently utilize cloud resources and improve the users' quality of service. In particular, we develop a dynamic method that provisions durable or ephemeral containers depending on the spatiotemporal and data‐dependency characteristics of the functions. Evaluating the prototype implementation of SMSE under real‐world settings demonstrates its capability to reduce both the containerization overhead, and the makespan time of serving multimedia processing functions (by up to 30%) in compare to the function provision methods that are being used in the general‐purpose serverless cloud systems. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
8. Putting a Teaspoon of Programming into Other Subjects: Using teaspoon languages to integrate programming across myriad academic disciplines.
- Author
-
Guzdial, Mark, Dodoo, Emma, Naimpour, Bahare, Nelson-Fromm, Tamara, and Padiyath, Aadarsh
- Subjects
- *
DOMAIN-specific programming languages , *COMPUTER programming education , *HISTORY education in secondary schools - Abstract
The article looks at the introduction of computer programming into high school classes other than mathematics or computer science classes, focusing on the authors' project of creating Task-Specific Programming (TSP) languages, also called teaspoon languages, that teachers and students in classes such as history can learn quickly and then use for tasks related to their subject. They note that TSP languages are a type of domain-specific programming languages (DSLs).
- Published
- 2023
- Full Text
- View/download PDF
9. Packet processing and data plane program verification: A survey with tools, techniques, and challenges.
- Author
-
Akarte, Harishchandra A. and Yadav, Dharmendra K.
- Subjects
- *
DATA packeting , *SOFTWARE-defined networking , *DOMAIN-specific programming languages , *ELECTRONIC data processing - Abstract
Summary: In today's era of fast‐growing network‐enabled devices combined, it increases the complexity of the network. This leads to the massive data packet transfer on the network via the data plane in a software‐defined networking environment. The programmable packet processing in a data plane may introduce indirect bugs that are hard to catch manually. To avoid catastrophic after‐effects, such programs need to be formally verified. Researchers have proposed various tools and techniques to verify the data plane program using the P4 language. Most of the researchers have used the concept of assertion and symbolic execution to provide P4 verification approaches. As symbolic execution does not scale up well, researchers have proposed different techniques, which include the use of constraints, slicing of the program, parallelization, data plane verification, program verification, and so on. The tools have experimented with different choices for compiler optimization. In this article, we perform a pervasive survey on various verification tools and techniques based on data plane programming using domain‐specific language like P4 from the inception of the concept. We have compared the packet processing tools developed as per the requirement of time with their ideology and the impact of change. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
10. DreamCoder: growing generalizable, interpretable knowledge with wake–sleep Bayesian program learning.
- Author
-
Ellis, Kevin, Wong, Lionel, Nye, Maxwell, Sablé-Meyer, Mathias, Cary, Luc, Anaya Pozo, Lore, Hewitt, Luke, Solar-Lezama, Armando, and Tenenbaum, Joshua B.
- Subjects
- *
DOMAIN-specific programming languages , *MACHINE learning , *COULOMB'S law , *VECTOR algebra , *ARTIFICIAL intelligence - Abstract
Expert problem-solving is driven by powerful languages for thinking about problems and their solutions. Acquiring expertise means learning these languages—systems of concepts, alongside the skills to use them. We present DreamCoder, a system that learns to solve problems by writing programs. It builds expertise by creating domain-specific programming languages for expressing domain concepts, together with neural networks to guide the search for programs within these languages. A 'wake–sleep' learning algorithm alternately extends the language with new symbolic abstractions and trains the neural network on imagined and replayed problems. DreamCoder solves both classic inductive programming tasks and creative tasks such as drawing pictures and building scenes. It rediscovers the basics of modern functional programming, vector algebra and classical physics, including Newton's and Coulomb's laws. Concepts are built compositionally from those learned earlier, yielding multilayered symbolic representations that are interpretable and transferrable to new tasks, while still growing scalably and flexibly with experience. This article is part of a discussion meeting issue 'Cognitive artificial intelligence'. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
11. NewBee: Context-Free Grammar (CFG) of a New Programming Language for Novice Programmers.
- Author
-
Qureshi, Muhammad Aasim, Asif, Muhammad, and Anwar, Saira
- Subjects
PROGRAMMING languages ,DOMAIN-specific programming languages ,SYNTAX (Grammar) ,PYTHON programming language ,SYNTAX in programming languages ,COMPUTER science education - Abstract
Learning programming and using programming languages are the essential aspects of computer science education. Students use programming languages to write their programs. These computer programs (students or practitioners written) make computers artificially intelligent and perform the tasks needed by the users. Without these programs, the computer may be visioned as a pointless machine. As the premise of writing programs is situated with specific programming languages, enormous efforts have been made to develop and create programming languages. However, each programming language is domain-specific and has its nuances, syntax and semantics, with specific pros and cons. These language-specific details, including syntax and semantics, are significant hurdles for novice programmers. Also, the instructors of introductory programming courses find these language specificities as the biggest hurdle in students learning, where more focus is on syntax than logic development and actual implementation of the program. Considering the conceptual difficulty of programming languages and novice students' struggles with the language syntax, this paper describes the design and development of a Context-Free Grammar (CFG) of a programming language for the novice, newcomers and students who do not have computer science as their major. Due to its syntax proximity to daily conversations, this paper hypothesizes that this language will be easy to use and understand by novice programmers. This paper systematically designed the language by identifying themes from various existing programming languages (e.g., C, Python). Additionally, this paper surveyed computer science experts from industry and academia, where experts self-reported their satisfaction with the newly designed language. The results indicate that 93% of the experts reported satisfaction with the NewBee for novice, newcomer and non-Computer Science (CS) major students. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
12. BioScript: Programming Safe Chemistry on Laboratories-on-a-Chip.
- Author
-
Ott, Jason, Loveless, Tyson, Curtis, Chris, Lesani, Mohsen, and Brisk, Philip
- Subjects
- *
COMPUTER programming , *BIOCHIPS , *BIOCHEMISTRY , *MICROFLUIDICS , *DOMAIN-specific programming languages , *SYNTAX (Grammar) - Abstract
This paper introduces BioScript, a domain-specific language (DSL) for programmable biochemistry that executes on emerging microfluidic platforms. The goal of this research is to provide a simple, intuitive, and type-safe DSL that is accessible to life science practitioners. The novel feature of the language is its syntax, which aims to optimize human readability; the technical contribution of the paper is the BioScript type system. The type system ensures that certain types of errors, specific to biochemistry, do not occur, such as the interaction of chemicals that may be unsafe. Results are obtained using a custom-built compiler that implements the BioScript language and type system. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
13. Program Synthesis with Best-First Bottom-Up Search.
- Author
-
Ameen, Saqib and Lelis, Levi H. S.
- Subjects
DOMAIN-specific programming languages ,TASK performance ,SEARCH algorithms ,EMPIRICAL research ,COST functions - Abstract
Cost-guided bottom-up search (BUS) algorithms use a cost function to guide the search to solve program synthesis tasks. In this paper, we show that current state-of-the-art costguided BUS algorithms suffer from a common problem: they can lose useful information given by the model and fail to perform the search in a best-first order according to a cost function. We introduce a novel best-first bottom-up search algorithm, which we call Bee Search, that does not suffer information loss and is able to perform cost-guided bottom-up synthesis in a best-first manner. Importantly, Bee Search performs best-first search with respect to the generation of programs, i.e., it does not even create in memory programs that are more expensive than the solution program. It attains best-first ordering with respect to generation by performing a search in an abstract space of program costs. We also introduce a new cost function that better uses the information provided by an existing cost model. Empirical results on string manipulation and bit-vector tasks show that Bee Search can outperform existing cost-guided BUS approaches when employing more complex domain-specific languages (DSLs); Bee Search and previous approaches perform equally well with simpler DSLs. Furthermore, our new cost function with Bee Search outperforms previous cost functions on string manipulation tasks. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
14. Domain-Specific Hardware Accelerators: DSAs gain efficiency from specialization and performance from parallelism.
- Author
-
DALLY, WILLIAM J., TURAKHIA, YATISH, and SONG HAN
- Subjects
- *
DOMAIN-specific programming languages , *COMPUTER input-output equipment , *MOORE'S law , *ALGORITHMS , *COMPUTER storage capacity - Abstract
The article discusses hardware computing engines known as domain-specific accelerators (DSAs). It discusses Moore's Law, the design of the DSA, and various sources of acceleration for DSAs. It also discusses algorithms, total cost of ownership (TCO), and memory in the accelerators.
- Published
- 2020
- Full Text
- View/download PDF
15. Ontology-Based Evolution of Domain-Oriented Languages : Models, Methods and Tools for User Interface Design in General-Purpose Software Systems
- Author
-
Eduard Babkin, Boris Ulitin, Eduard Babkin, and Boris Ulitin
- Subjects
- Domain-specific programming languages, Ontologies (Information retrieval)
- Abstract
This book focuses on the study of ontology-based models and methods used for the implementation of the evolution of external domain-specific languages (DSL), which are mainly intended for modelling the structure of human-machine interfaces. The primary goal of the approach is to increase the efficiency of support processes during the life cycle of general-purpose software systems. The book is structured in seven chapters. Chapter 1 presents the objectives and significance of the research, as well as a summary of the contents of the work. Chapter 2 analyses the existing classical DSL design and implementation methodology for modelling human-machine interfaces in the context of the lifecycle of general-purpose software systems. Next, chapter 3 is devoted to an analysis of existing methods and formalisms used in describing the structure of a DSL for modelling human-machine interfaces of software systems. Subsequently, chapter 4 provides a detailed description of the proposed new projection-based approach for developing such DSLs. Chapter 5 then describes the software implementation of the human-machine interface evolution based on an example of an external DSL in two domains. Eventually, chapter 6 analyses the application of the proposed projection approach for more complex systems, namely, decision support systems based on heterogeneous information of decision makers. The concluding chapter 7 summarizes the main results of the research and suggests further development paths and practical applications. The book is written for researchers in model-driven software development in general and in domain-specific language engineering in particular.
- Published
- 2024
16. Key-based data augmentation with curriculum learning for few-shot code search.
- Author
-
Zhang, Fan, Peng, Manman, Wu, Qiang, and Shen, Yuanyuan
- Subjects
- *
DOMAIN-specific programming languages , *DATA augmentation , *CURRICULUM frameworks , *PROGRAMMING languages , *LEARNING strategies - Abstract
Given a natural language query, code search aims to find matching code snippets from a codebase. Recent works are mainly designed for mainstream programming languages with large amounts of training data. However, code search is also needed for domain-specific programming languages, which have fewer training data, and it is a heavy burden to label a large amount of training data for each domain-specific language. To this end, we propose DAFCS, a data augmentation framework with curriculum learning for few-shot code search tasks. Specifically, we first collect unlabeled codes in the same programming language as the original codes, which can provide additional semantic signals to the original codes. Second, we employ an occlusion-based method to identify key statements in code fragments. Third, we design a set of new key-based augmentation operations for the original codes. Finally, we use curriculum learning to reasonably schedule augmented samples for training well-performing models. We conduct retrieval experiments on a public dataset and find that DAFCS surpasses state-of-the-art methods by 5.42% and 5.05% in the Solidity and SQL domain-specific languages, respectively. Our study shows that DAFCS, which adopts data augmentation and curriculum learning strategies, can achieve promising performance in few-shot code search tasks. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF
17. Automating Transfer Credit Assessment-A Natural Language Processing-Based Approach.
- Author
-
Chandrasekaran, Dhivya and Mago, Vijay
- Subjects
STUDENT mobility ,DOMAIN-specific programming languages ,NATURAL language processing ,NATURAL languages ,EDUCATIONAL outcomes - Abstract
Student mobility or academic mobility involves students moving between institutions during their post-secondary education, and one of the challenging tasks in this process is to assess the transfer credits to be offered to the incoming student. In general, this process involves domain experts comparing the learning outcomes of the courses, to decide on offering transfer credits to the incoming students. This manual implementation is not only labor-intensive but also influenced by undue bias and administrative complexity. The proposed research article focuses on identifying a model that exploits the advancements in the field of Natural Language Processing (NLP) to effectively automate this process. Given the unique structure, domain specificity, and complexity of learning outcomes (LOs), a need for designing a tailor-made model arises. The proposed model uses a clustering-inspired methodology based on knowledge-based semantic similarity measures to assess the taxonomic similarity of LOs and a transformer-based semantic similarity model to assess the semantic similarity of the LOs. The similarity between LOs is further aggregated to form course to course similarity. Due to the lack of quality benchmark datasets, a new benchmark dataset containing seven course-to-course similarity measures is proposed. Understanding the inherent need for flexibility in the decision-making process the aggregation part of the model offers tunable parameters to accommodate different levels of leniency. While providing an efficient model to assess the similarity between courses with existing resources, this research work also steers future research attempts to apply NLP in the field of articulation in an ideal direction by highlighting the persisting research gaps. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
18. Einführung in Domain-Driven Design : Von der Buisness-Strategie zum technischen Design
- Author
-
Vlad Khononov and Vlad Khononov
- Subjects
- Domain-specific programming languages, Application software--Development, Model-driven software architecture
- Abstract
Hands-On DDD: von der Strategie bis zum technischen Design Anspruchsvolles Thema, von einem DDD-Praktiker gut lesbar aufgeschlüsselt Fokus auf der strukturierten DDD-Denkweise und den zentralen Prinzipien Konkrete Hilfestellungen, wann Patterns genutzt werden sollten und wann nicht Kompakte Codebeispiele - gerade vollständig genug, um Grundideen zu vermitteln Softwareentwicklung ist heutzutage anspruchsvoller denn je: Als Entwicklerin oder Entwickler müssen Sie technologische Trends im Blick behalten, aber genauso die Business Domains hinter der Software verstehen. Dieser Praxisratgeber beschreibt zentrale Patterns, Prinzipien und Praktiken, mit denen Sie Geschäftsbereiche analysieren, die Business-Strategie verstehen und, was am wichtigsten ist, Ihr Softwaredesign besser an den Geschäftsanforderungen ausrichten können.DDD-Praktiker Vlad Khononov zeigt Ihnen, wie diese Praktiken zu einer robusten Implementierung der Geschäftslogik führen und Ihr Softwaredesign und Ihre Softwarearchitektur zukunftsfähig machen. Abschließend wird DDD in Verbindung mit Microservices-basierten, Event-getriebenen und Data-Mesh-Architekturen beleuchtet.
- Published
- 2022
19. User Story Quality in Practice: A Case Study.
- Author
-
Kuhail, Mohammad Amin and Lauesen, Soren
- Subjects
AGILE software development ,EXTREME programming ,STAKEHOLDERS ,SCALABILITY ,DOMAIN-specific programming languages - Abstract
(1) Background: User stories are widely used in Agile development as requirements. However, few studies have assessed the quality of user stories in practice. (2) Methods: What is the quality of user stories in practice? To answer the research question, we conducted a case study. We used an analysis report from a real-life project where an organization wanted to improve its existing hotline system or acquire a new one. We invited IT practitioners to write requirements for the new system based on the analysis report, user stories, and whatever else they considered necessary. The practitioners could ask the authors questions as they would ask a customer in a real setting. We evaluated the practitioners' replies using these IEEE 830 quality criteria: completeness, correctness, verifiability, and traceability. (3) Results: The replies covered only 33% of the needs and wishes in the analysis report. Further, the replies largely missed other requirements needed in most projects, such as learnability and maintainability. Incorrect or restrictive solutions were often proposed by the practitioners. Most replies included user stories that were hard to verify, or would have caused a cumbersome user interface if implemented independently. (4) Conclusion: In this project, relying on the user stories would have been a disaster. Although the user stories could have been improved, they wouldn't cover the necessary requirements in the project. [ABSTRACT FROM AUTHOR]
- Published
- 2022
- Full Text
- View/download PDF
20. Learning Domain-Driven Design
- Author
-
Vlad Khononov and Vlad Khononov
- Subjects
- Model-driven software architecture, Domain-specific programming languages, Application software--Development
- Abstract
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practical book provides you with a set of core patterns, principles, and practices for analyzing business domains, understanding business strategy, and, most importantly, aligning software design with its business needs.Author Vlad Khononov shows you how these practices lead to robust implementation of business logic and help to future-proof software design and architecture. You'll examine the relationship between domain-driven design (DDD) and other methodologies to ensure you make architectural decisions that meet business requirements. You'll also explore the real-life story of implementing DDD in a startup company.With this book, you'll learn how to:Analyze a company's business domain to learn how the system you're building fits its competitive strategyUse DDD's strategic and tactical tools to architect effective software solutions that address business needsBuild a shared understanding of the business domains you encounterDecompose a system into bounded contextsCoordinate the work of multiple teamsGradually introduce DDD to brownfield projects
- Published
- 2021
21. Domain-Driven Laravel : Learn to Implement Domain-Driven Design Using Laravel
- Author
-
Jesse Griffin and Jesse Griffin
- Subjects
- Domain-specific programming languages, Software frameworks, Computer programming
- Abstract
Map concepts and ideas in domain-driven design (DDD) and transpose them into clean, testable, and quality code that is effective alongside the Laravel framework. This book teaches you how to implement the concepts and patterns present in DDD in the real world as a complete web application. With these tactics and concepts in place, you'll engage in a variety of example applications, built from the ground up, and taken directly from real-world domains. Begin by reviewing foundational stepping stones (with small, manageable examples to show proof of concepts as well as illustrations to conceptualize the more complex topics) of both DDD and Laravel. Specifically, such topics as entities, value objects, developing an ubiquitous language, DTOs, and knowledge discovery. Next, you will dive into some more advanced topics of DDD and use these concepts as a guide to make customizations to the default Laravel installation, giving you an understanding of why these alterations are vital to the DDD and Laravel platform. Finally, you will cover the very powerful Eloquent ORM that comes stock with Laravel and understand how it can be utilized to represent entities, handle repositories, and support domain events. Although there is a basic coverage chapter and a setup tutorial for Laravel (along with a high level intro about the components used within it), Domain-Driven Laravel is best suited to readers who have been at least exposed to the framework and have had the opportunity to tinker around with it.What You'll Learn Utilize a blazing-fast rapid development pipeline built from DDD building blocks and facilitated with LaravelImplement value objects, repositories, entities, anti-corruption layers and others using Laravel as a web frameworkApply enhanced techniques for quick prototyping of complex requirements and quality results using an iterative and focused approach Create a base framework (Laravel) that can serve as a template to start off any projectGain insight on which details are important to a project's success and how to acquire the necessary knowledge Who This Book Is ForIdeal for for frontend/backend web developers, devops engineers, Laravel framework lovers and PHP developers hoping to learn more about either Domain Driven Design or the possibilities with the Laravel framework. Those with a working knowledge of plain PHP can also gain value from reading this book.
- Published
- 2021
22. Domain Storytelling : A Collaborative, Visual, and Agile Way to Build Domain-Driven Software
- Author
-
Stefan Hofer, Henning Schwentner, Stefan Hofer, and Henning Schwentner
- Subjects
- Domain-specific programming languages, Computer software--Development
- Abstract
Build Better Business Software by Telling and Visualizing Stories'From a story to working software--this book helps you to get to the essence of what to build. Highly recommended!'--Oliver Drotbohm Storytelling is at the heart of human communication--why not use it to overcome costly misunderstandings when designing software? By telling and visualizing stories, domain experts and team members make business processes and domain knowledge tangible. Domain Storytelling enables everyone to understand the relevant people, activities, and work items. With this guide, the method's inventors explain how domain experts and teams can work together to capture insights with simple pictographs, show their work, solicit feedback, and get everyone on the same page. Stefan Hofer and Henning Schwentner introduce the method's easy pictographic language, scenario-based modeling techniques, workshop format, and relationship to other modeling methods. Using step-by-step case studies, they guide you through solving many common problems: Fully align all project participants and stakeholders, both technical and business-focused Master a simple set of symbols and rules for modeling any process or workflow Use workshop-based collaborative modeling to find better solutions faster Draw clear boundaries to organize your domain, software, and teams Transform domain knowledge into requirements, embedded naturally into an agile process Move your models from diagrams and sticky notes to code Gain better visibility into your IT landscape so you can consolidate or optimize it This guide is for everyone who wants more effective software--from developers, architects, and team leads to the domain experts, product owners, and executives who rely on it every day. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
- Published
- 2021
23. A Programmable Programming Language.
- Author
-
FELLEISEN, MATTHIAS, FINDLER, ROBERT BRUCE, FLATT, MATTHEW, KRISHNAMURTHI, SHRIRAM, BARZILAY, ELI, MCCARTHY, JAY, and TOBIN-HOCHSTADT, SAM
- Subjects
- *
RACKET (Computer program language) , *DOMAIN-specific programming languages , *COMPUTER software development - Abstract
The authors discuss the development of the Racket programming language. They mention the use of embedded domain-specific languages (eDSLs), the need to develop a language that can easily create these eDSLs, and the long-range prospects and problems of language-oriented programming (LOP).
- Published
- 2018
- Full Text
- View/download PDF
24. Can Program Synthesis be Used to Learn Merge Conflict Resolutions? An Empirical Analysis.
- Author
-
Pan, Rangeet, Vu Le, Nagappan, Nachiappan, Gulwani, Sumit, Lahiri, Shuvendu, and Kaufman, Mike
- Subjects
CONFLICT management ,OPEN source software ,DOMAIN-specific programming languages ,SOFTWARE engineering ,ARTIFICIAL intelligence ,COMPUTER science - Abstract
Forking structure is widespread in the open-source repositories and that causes a significant number of merge conflicts. In this paper, we study the problem of textual merge conflicts from the perspective of Microsoft Edge, a large, highly collaborative fork of the main Chromium branch with significant merge conflicts. Broadly, this study is divided into two sections. First, we empirically evaluate textual merge conflicts in Microsoft Edge and classify them based on the type of files, location of conflicts in a file, and the size of conflicts. We found that ~28% of the merge conflicts are 1-2 line changes, and many resolutions have frequent patterns. Second, driven by these findings, we explore Program Synthesis (for the first time) to learn patterns and resolve structural merge conflicts. We propose a novel domain-specific language (DSL) that captures many of the repetitive merge conflict resolution patterns and learn resolution strategies as programs in this DSL from example resolutions. We found that the learned strategies can resolve 11.4% of the conflicts (~41% of 1-2 line changes) that arise in the C++ files with 93.2% accuracy. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
25. Development of DSL Compilers for Specialized Processors.
- Author
-
Sovetov, P. N.
- Subjects
- *
DOMAIN-specific programming languages , *PROBLEM solving , *NP-complete problems , *COMPILERS (Computer programs) , *COMPUTER systems , *DIGITAL subscriber lines , *INTERNET of things - Abstract
Modern computer systems often include specialized processors that are programmed in domain-specific languages. The compiler-in-the-loop technology, which assumes the joint development of the dedicated processor and compiler, gains in popularity. In this case, the conventional tools (such as GCC and LLVM) are insufficient for the rapid development of optimizing compilers that generate the target code for irregular architectures and static parallelism of operations. In this paper, it is proposed to use methods for solving NP-complete problems for the implementation of machine-dependent compilation phases. These phases are based on the reduction to the SMT problem, which makes it possible to get rid of heuristic and approximate approaches that require complicated software implementation. In particular, it is proposed to implement the synthesis of machine-dependent optimization rules, instruction selection, instruction scheduling, and register allocation using an SMT solver. Practical applications of the developed methods and algorithms are illustrated by the example of a compiler for a specialized processor with an instruction set that accelerates the implementation of lightweight cryptography algorithms on the Internet of Things. The results of compilation and simulation of eight cryptographic primitives for three variants of the specialized processor (CISC-like, VLIW-like and a variant with delayed load instruction) show the practical usefulness of the proposed approach. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
26. Design Methodology and Tools in Factory of the Future.
- Author
-
Adrian, Florea, Ion, Mironescu, Daniel, Crăciunean, Daniel, Morariu, and Daniel, Volovici
- Subjects
VOCATIONAL education ,INTERNET of things ,DOMAIN-specific programming languages ,CONCEPTUAL models ,FEASIBILITY studies - Abstract
This paper presents a design method and tool developed to support the skill forming activities in the DigiFoF network (https://www.digifof.eu/). The focus is on training of manufacturing system design skills both as HEI education and vocational training, but preliminary design of new manufacturing systems is also supported (e.g in the development of small business process scenarios). We proposed a model-based methodology for solving of the manufacturing system design problems The methodology and the supporting tool are centred around a less abstract Domain-Specific Modelling Language (DSML). The language is easy to learn due to its few components. A modelling and simulation environment named Digital Production Planner Tool (DPPT) was generated from the metamodel of the DSML. The degree of abstraction used by this tool corresponds well to the intended use in training and preliminary design. Our method incorporates by design the possibility to impose constraints at the modelling language level to limit the modelling space to feasible/possible solutions. The resulting tool enforces these constraints in the use and supports the development of feasible designs even by inexperienced designers. The access to the conceptual model allows the translation of the model to other modelling language like Petri net. This extends the support for the design methodology. The whitepaper presents a use case for the developed method and tool: the design of a chocolate manufacturing line. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
27. Compiling Algorithms for Heterogeneous Systems
- Author
-
Steven Bell, Jing Pu, James Hegarty, Mark Horowitz, Steven Bell, Jing Pu, James Hegarty, and Mark Horowitz
- Subjects
- Image processing--Digital techniques, Domain-specific programming languages
- Abstract
Most emerging applications in imaging and machine learning must perform immense amounts of computation while holding to strict limits on energy and power. To meet these goals, architects are building increasingly specialized compute engines tailored for these specific tasks. The resulting computer systems are heterogeneous, containing multiple processing cores with wildly different execution models. Unfortunately, the cost of producing this specialized hardware—and the software to control it—is astronomical. Moreover, the task of porting algorithms to these heterogeneous machines typically requires that the algorithm be partitioned across the machine and rewritten for each specific architecture, which is time consuming and prone to error. Over the last several years, the authors have approached this problem using domain-specific languages (DSLs): high-level programming languages customized for specific domains, such as database manipulation, machine learning, or image processing. By giving up generality, these languages are able to provide high-level abstractions to the developer while producing high-performance output. The purpose of this book is to spur the adoption and the creation of domain-specific languages, especially for the task of creating hardware designs. In the first chapter, a short historical journey explains the forces driving computer architecture today. Chapter 2 describes the various methods for producing designs for accelerators, outlining the push for more abstraction and the tools that enable designers to work at a higher conceptual level. From there, Chapter 3 provides a brief introduction to image processing algorithms and hardware design patterns for implementing them. Chapters 4 and 5 describe and compare Darkroom and Halide, two domain-specific languages created for image processing that produce high-performance designs for both FPGAs and CPUs from the same source code, enabling rapid design cycles and quick porting of algorithms. The final section describes how the DSL approach also simplifies the problem of interfacing between application code and the accelerator by generating the driver stack in addition to the accelerator configuration. This book should serve as a useful introduction to domain-specialized computing for computer architecture students and as a primer on domain-specific languages and image processing hardware for those with more experience in the field.
- Published
- 2018
28. Domain-Specific Languages in R : Advanced Statistical Programming
- Author
-
Thomas Mailund and Thomas Mailund
- Subjects
- Domain-specific programming languages
- Abstract
Gain an accelerated introduction to domain-specific languages in R, including coverage of regular expressions. This compact, in-depth book shows you how DSLs are programming languages specialized for a particular purpose, as opposed to general purpose programming languages. Along the way, you'll learn to specify tasks you want to do in a precise way and achieve programming goals within a domain-specific context. Domain-Specific Languages in R includes examples of DSLs including large data sets or matrix multiplication; pattern matching DSLs for application in computer vision; and DSLs for continuous time Markov chains and their applications in data science. After reading and using this book, you'll understand how to write DSLs in R and have skills you can extrapolate to other programming languages.What You'll LearnProgram with domain-specific languages using RDiscover the components of DSLsCarry out large matrix expressions and multiplications Implement metaprogramming with DSLsParse and manipulate expressions Who This Book Is ForThose with prior programming experience. R knowledge is helpful but not required.
- Published
- 2018
29. Network Programming with Rust : Build Fast and Resilient Network Servers and Clients by Leveraging Rust's Memory-safety and Concurrency Features
- Author
-
Abhishek Chanda and Abhishek Chanda
- Subjects
- Domain-specific programming languages
- Abstract
Learn to write servers and network clients using Rust's low-level socket classes with this guideKey Features[•]Build a solid foundation in Rust while also mastering important network programming details[•]Leverage the power of a number of available libraries to perform network operations in Rust[•]Develop a fully functional web server to gain the skills you need, fastBook DescriptionRust is low-level enough to provide fine-grained control over memory while providing safety through compile-time validation. This makes it uniquely suitable for writing low-level networking applications. This book is divided into three main parts that will take you on an exciting journey of building a fully functional web server. The book starts with a solid introduction to Rust and essential networking concepts. This will lay a foundation for, and set the tone of, the entire book. In the second part, we will take an in-depth look at using Rust for networking software. From client-server networking using sockets to IPv4/v6, DNS, TCP, UDP, you will also learn about serializing and deserializing data using serde. The book shows how to communicate with REST servers over HTTP. The final part of the book discusses asynchronous network programming using the Tokio stack. Given the importance of security for modern systems, you will see how Rust supports common primitives such as TLS and public-key cryptography. After reading this book, you will be more than confident enough to use Rust to build effective networking software What you will learn[•]Appreciate why networking is important in implementing distributed systems[•]Write a non-asynchronous echo server over TCP that talks to a client over a network[•]Parse JSON and binary data using parser combinators such as nom[•]Write an HTTP client that talks to the server using reqwest[•]Modify an existing Rust HTTTP server and add SSL to it[•]Master asynchronous programming support in Rust[•]Use external packages in a Rust projectWho this book is forThis book is for software developers who want to write networking software with Rust. A basic familiarity with networking concepts is assumed. Beginner-level knowledge of Rust will help but is not necessary.
- Published
- 2018
30. Domain Modeling Made Functional : Tackle Software Complexity with Domain-Driven Design and F#
- Author
-
Scott Wlaschin and Scott Wlaschin
- Subjects
- Domain-specific programming languages, Computer software--Development
- Abstract
You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming - all the techniques you need will be introduced and explained. Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation---ensuring that the code and design never get out of sync. Encode business rules in the design so that you have'compile-time unit tests,'and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented and hexagonal architectures. Finally, create a functional domain model that works with traditional databases, NoSQL, and event stores, and safely expose your domain via a website or API. Solve real problems by focusing on real-world requirements for your software. What You Need: The code in this book is designed to be run interactively on Windows, Mac and Linux.You will need a recent version of F# (4.0 or greater), and the appropriate.NET runtime for your platform.Full installation instructions for all platforms at fsharp.org.
- Published
- 2018
31. Vis-a-Vis: Visual Exploration of Visualization Source Code Evolution.
- Author
-
Bolte, Fabian and Bruckner, Stefan
- Subjects
DOMAIN-specific programming languages ,VISUALIZATION ,SCIENTIFIC visualization ,SCIENTIFIC language ,GRAPHICS processing units - Abstract
Developing an algorithm for a visualization prototype often involves the direct comparison of different development stages and design decisions, and even minor modifications may dramatically affect the results. While existing development tools provide visualizations for gaining general insight into performance and structural aspects of the source code, they neglect the central importance of result images unique to graphical algorithms. In this article, we present a novel approach that enables visualization programmers to simultaneously explore the evolution of their algorithm during the development phase together with its corresponding visual outcomes by providing an automatically updating meta visualization. Our interactive system allows for the direct comparison of all development states on both the visual and the source code level, by providing easy to use navigation and comparison tools. The on-the-fly construction of difference images, source code differences, and a visual representation of the source code structure further enhance the user’s insight into the states’ interconnected changes over time. Our solution is accessible via a web-based interface that provides GPU-accelerated live execution of C++ and GLSL code, as well as supporting a domain-specific programming language for scientific visualization. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
32. DSL : Quebre a barreira entre desenvolvimento e negócios
- Author
-
Leonardo Otto and Leonardo Otto
- Subjects
- Domain-specific programming languages, Computer software--Development
- Abstract
Existe um ponto de vista que diz que a profissão de programação é uma profissão de tradução. Estamos sempre traduzindo o que os especialistas estão dizendo para uma língua que os computadores entendam. Ou seja, capturamos as ideias de especialistas, as completamos (pois normalmente eles eliminam detalhes) e traduzimos para outra linguagem. Manter o código o mais próximo dos conceitos dos especialistas é um passo importante, mas este passo pode ser expandido ainda mais com o uso de DSLs - Linguagens Específicas de Domínio. Neste livro, Leonardo Otto vai lhe ensinar como utilizar e criar DSLs internas para obter um código mais expressivo. Você expandirá sua capacidade de criar softwares mais simples, mais comunicativos e com melhor manutenção, a partir do principal valor das DSLs: resolver apenas um problema de domínio da forma mais clara possível, trazendo uma interface mais humana para os usuários finais.
- Published
- 2017
33. R Data Analysis Cookbook, Second Edition : Customizable R Recipes for Data Mining, Data Visualization and Time Series Analysis
- Author
-
Kuntal Ganguly, Shanthi Viswanathan, Viswa Viswanathan, Kuntal Ganguly, Shanthi Viswanathan, and Viswa Viswanathan
- Subjects
- Data mining--Mathematics, R (Computer program language), Domain-specific programming languages
- Abstract
Over 80 recipes to help you breeze through your data analysis projects using RKey Features[•]Analyse your data using the popular R packages like ggplot2 with ready-to-use and customizable recipes[•]Find meaningful insights from your data and generate dynamic reports[•]A practical guide to help you put your data analysis skills in R to practical useBook DescriptionData analytics with R has emerged as a very important focus for organizations of all kinds. R enables even those with only an intuitive grasp of the underlying concepts, without a deep mathematical background, to unleash powerful and detailed examinations of their data. This book will show you how you can put your data analysis skills in R to practical use, with recipes catering to the basic as well as advanced data analysis tasks. Right from acquiring your data and preparing it for analysis to the more complex data analysis techniques, the book will show you how you can implement each technique in the best possible manner. You will also visualize your data using the popular R packages like ggplot2 and gain hidden insights from it. Starting with implementing the basic data analysis concepts like handling your data to creating basic plots, you will master the more advanced data analysis techniques like performing cluster analysis, and generating effective analysis reports and visualizations. Throughout the book, you will get to know the common problems and obstacles you might encounter while implementing each of the data analysis techniques in R, with ways to overcoming them in the easiest possible way. By the end of this book, you will have all the knowledge you need to become an expert in data analysis with R, and put your skills to test in real-world scenarios.What you will learnAcquire, format and visualize your data using RUsing R to perform an Exploratory data analysisIntroduction to machine learning algorithms such as classification and regressionGet started with social network analysisGenerate dynamic reporting with ShinyGet started with geospatial analysisHandling large data with R using Spark and MongoDBBuild Recommendation system- Collaborative Filtering, Content based and HybridLearn real world dataset examples- Fraud Detection and Image RecognitionWho this book is forThis book is for data scientists, analysts and even enthusiasts who want to learn and implement the various data analysis techniques using R in a practical way. Those looking for quick, handy solutions to common tasks and challenges in data analysis will find this book to be very useful. Basic knowledge of statistics and R programming is assumed.
- Published
- 2017
34. R Data Analysis Projects : Build End to End Analytics Systems to Get Deeper Insights From Your Data
- Author
-
Gopi Subramanian and Gopi Subramanian
- Subjects
- R (Computer program language), Domain-specific programming languages, Data mining--Mathematics
- Abstract
Get valuable insights from your data by building data analysis systems from scratch with R. Key FeaturesA handy guide to take your understanding of data analysis with R to the next levelReal-world projects that focus on problems in finance, network analysis, social media, and moreFrom data manipulation to analysis to visualization in R, this book will teach you everything you need to know about building end-to-end data analysis pipelines using RBook DescriptionR offers a large variety of packages and libraries for fast and accurate data analysis and visualization. As a result, it's one of the most popularly used languages by data scientists and analysts, or anyone who wants to perform data analysis. This book will demonstrate how you can put to use your existing knowledge of data analysis in R to build highly efficient, end-to-end data analysis pipelines without any hassle. You'll start by building a content-based recommendation system, followed by building a project on sentiment analysis with tweets. You'll implement time-series modeling for anomaly detection, and understand cluster analysis of streaming data. You'll work through projects on performing efficient market data research, building recommendation systems, and analyzing networks accurately, all provided with easy to follow codes. With the help of these real-world projects, you'll get a better understanding of the challenges faced when building data analysis pipelines, and see how you can overcome them without compromising on the efficiency or accuracy of your systems. The book covers some popularly used R packages such as dplyr, ggplot2, RShiny, and others, and includes tips on using them effectively. By the end of this book, you'll have a better understanding of data analysis with R, and be able to put your knowledge to practical use without any hassle. What you will learnBuild end-to-end predictive analytics systems in RBuild an experimental design to gather your own data and conduct analysisBuild a recommender system from scratch using different approachesUse and leverage RShiny to build reactive programming applicationsBuild systems for varied domains including market research, network analysis, social media analysis, and moreExplore various R Packages such as RShiny, ggplot, recommenderlab, dplyr, and find out how to use them effectivelyCommunicate modeling results using Shiny DashboardsPerform multi-variate time-series analysis prediction, supplemented with sensitivity analysis and risk modelingWho this book is forIf you are looking for a book that takes you all the way through the practical application of advanced and effective analytics methodologies in R, then this is the book for you. A fundamental understanding of R and the basic concepts of data analysis is all you need to get started with this book.
- Published
- 2017
35. R Series: Data Sets: In this eighteenth article in the R series, we take a look at the various data sets available in R.
- Author
-
Kannan, Shakthi
- Subjects
R (Computer program language) ,DOMAIN-specific programming languages ,AUTOMOTIVE fuel consumption ,AIR quality ,EARTHQUAKE magnitude - Abstract
The article focuses on data sets available in R cover a wide range of fields. It mentions mtcars data set which contains information on automobiles, fuel consumption and performance and air quality data set provides air quality measurements in New York between May and September 1973. It also mentions passengers who travelled on the Titanic ship is available in a four-dimensional array and reports earthquake magnitude scales.
- Published
- 2023
36. STATIC CODE ANALYSIS TOOLS: A SYSTEMATIC LITERATURE REVIEW.
- Author
-
Stefanović, Darko, Nikolić, Danilo, Dakić, Dušanka, Spasojević, Ivana, and Ristić, Sonja
- Subjects
- *
DOMAIN-specific programming languages , *PROGRAMMING languages - Abstract
Static code analysis tools are being increasingly used to improve code quality. Such tools can statically analyze the code to find bugs, security vulnerabilities, security spots, duplications, and code smell. The quality of the source code is a key factor in any software product and requires constant inspection and supervision. Static code analysis is a valid way to infer the behavior of a program without executing it. Many tools allow static analysis in different frameworks, for different programming languages, and for detecting different defects in the source code. Still, a small number of tools provide support for domain-specific languages. This paper aims to present a systematic literature review focusing on the most frequently used static code analysis tools and on classifying the presented tools according to the supported both generalpurpose and domain-specific programming languages and the types of defects a specific tool can detect. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF
37. Model Driven Visual Programming for Serious Games
- Author
-
Thillainathan Niroshan and Thillainathan Niroshan
- Subjects
- Model-driven software architecture, Video games--Programming, Domain-specific programming languages
- Abstract
Serious Games nehmen bei der Verbreitung von E-Learning eine besondere Rolle ein. Für den flexiblen Einsatz in der Lehre müssen diese Serious Games an die Lernziele des Lehrenden angepasst werden. In diesem Fall muss jedoch angenommen werden, dass eine programmierunerfahrene Lehrperson zwar die Domänenexpertise und damit das didaktische Wissen mitbringt zu bestimmen, welche Lerninhalte und Lernziele auf welche Art und Weise vermittelt werden können. Jedoch fehlt es ihnen an Spieledesign- und Programmierkenntnissen. Um Lehrende dazu zu befähigen Serious Games an ihre Bedürfnisse und Lernziele anzupassen und dadurch bessere Lernerfolge zu erzielen, wurde in der vorliegenden Arbeit ein modellgetriebenes, visuelles Programmierframework entwickelt, welches ermöglicht, ohne die Programmierung von Softwarecode, eigene Serious Games visuell und modellgetrieben zu entwickeln. Im Rahmen dieser Forschungsarbeit wurden zwei verschiedene Proofs of Concepts gezeigt. Eine Evaluation dieses modellgetriebenen visuellen Programmierframeworks mit Lehrenden hat ergeben, dass sie ohne besondere Schulung, das Programmierframework nutzen und damit eigene Serious Games entwickeln können.
- Published
- 2016
38. Implementing Domain-Specific Languages with Xtext and Xtend - Second Edition
- Author
-
Lorenzo Bettini and Lorenzo Bettini
- Subjects
- Domain-specific programming languages, Software engineering
- Abstract
About This BookLeverage the latest features of Xtext and Xtend to develop a domain-specific language.Integrate Xtext with popular third party IDEs and get the best out of both worlds.Discover how to test a DSL implementation and how to customize runtime and IDE aspects of the DSLWho This Book Is ForThis book is targeted at programmers and developers who want to create a DSL with Xtext. They should have basic familiarity with Eclipse and its functionality. Previous experience with compiler implementation can be advantageous. However, this book will explain all the development stages of a DSL.What You Will LearnWrite an Xtext grammar for a DSLUse Xtend to customize all aspectsWrite constraint checks using the validator mechanismCustomize the UIWrite a code generator and an interpreter for a DSLTest the DSL implementation with JUnitMaster the Xtext scoping mechanism for symbol resolutionBuild your Xtext DSL with Maven/Tycho and GradleUse an Xtext editor in a web application and in IntelliJUnderstand best practices in DSL implementationsGet familiar with XbaseManually maintain the EMF model for an Xtext DSLIn DetailXtext is an open source Eclipse framework for implementing Domain-Specific Languages (DSLs) together with their integration in the Eclipse IDE. Xtext covers all aspects of a language infrastructure, including the parser, code generator, interpreter, and more. This book will enable you to implement DSLs efficiently, together with their IDE tooling, with Xtext and Xtend. Opening with a brief coverage of Xtext features involved in DSL implementation, the book will then introduce you to Xtend (a language that's completely interoperable with Java). You will then explore the typical programming development workflow with Xtext starting from the grammar of the DSL. The book will then explain the main concepts of Xtext, such as validation, code generation, and customizations of runtime and UI aspects. You will learn how to test a DSL implemented in Xtext with JUnit and advanced concepts such as type checking and scoping. The book will show you how to build and test your DSL with Maven/Tycho and Gradle, and how an Xtext DSL editor can also be used in a web application and in IntelliJ. You will also familiarize yourself with Xbase. At the end of the book, you will also learn how to manually maintain the EMF model for an Xtext DSL.
- Published
- 2016
39. Developing Modular-Oriented Simulation Models Using System Dynamics Libraries
- Author
-
Christian K. Karl, William Ibbs, Christian K. Karl, and William Ibbs
- Subjects
- Computer simulation, Domain-specific programming languages, Digital computer simulation
- Abstract
This SpringerBrief introduces the development and practical application of a module-oriented development framework for domain specific system-dynamic libraries (SDL approach), which can be used in the simulation of multi-causal and dynamic relationships on different levels of an industry, as an example the construction industry. Multidisciplinary research and development teams, scientists from different domains as well as practitioners can develop SDL units from varying perspectives based on this approach. For example, the explanation of the risk situation of a company, the identification and evaluation of project risks, endangered operational procedures on various functional levels, or to improve the understanding of the decision making process in detail. This book is an excellent source for researchers, programmers and practitioners. It enables the development of suitable simulation systems from the beginning and demonstrates that it is possible to connect the development of simulation models and daily work. It provides advanced-level students from different domains with a comprehensive overview and clear understanding of a new and valuable modeling technique.
- Published
- 2016
40. Domain-Specific Conceptual Modeling : Concepts, Methods and Tools
- Author
-
Dimitris Karagiannis, Heinrich C. Mayr, John Mylopoulos, Dimitris Karagiannis, Heinrich C. Mayr, and John Mylopoulos
- Subjects
- Domain-specific programming languages, Conceptual structures (Information theory)
- Abstract
This book draws new attention to domain-specific conceptual modeling by presenting the work of thought leaders who have designed and deployed specific modeling methods. It provides hands-on guidance on how to build models in a particular domain, such as requirements engineering, business process modeling or enterprise architecture. In addition to these results, it also puts forward ideas for future developments. All this is enriched with exercises, case studies, detailed references and further related information. All domain-specific methods described in this volume also have a tool implementation within the OMiLAB Collaborative Environment – a dedicated research and experimentation space for modeling method engineering at the University of Vienna, Austria – making these advances accessible to a wider community of further developers and users. The collection of works presented here will benefit experts and practitioners from academia and industry alike, including members ofthe conceptual modeling community as well as lecturers and students.
- Published
- 2016
41. Domain-Sensitive Temporal Tagging
- Author
-
Jannik Strötgen, Michael Gertz, Jannik Strötgen, and Michael Gertz
- Subjects
- Computational linguistics, Natural language processing (Computer science), Domain-specific programming languages
- Abstract
This book covers the topic of temporal tagging, the detection of temporal expressions and the normalization of their semantics to some standard format. It places a special focus on the challenges and opportunities of domain-sensitive temporal tagging. After providing background knowledge on the concept of time, the book continues with a comprehensive survey of current research on temporal tagging. The authors provide an overview of existing techniques and tools, and highlight key issues that need to be addressed. This book is a valuable resource for researchers and application developers who need to become familiar with the topic and want to know the recent trends, current tools and techniques, as well as different application domains in which temporal information is of utmost importance. Due to the prevalence of temporal expressions in diverse types of documents and the importance of temporal information in any information space, temporal tagging is an important task in natural language processing (NLP), and applications of several domains can benefit from the output of temporal taggers to provide more meaningful and useful results. In recent years, temporal tagging has been an active field in NLP and computational linguistics. Several approaches to temporal tagging have been proposed, annotation standards have been developed, gold standard data sets have been created, and research competitions have been organized. Furthermore, some temporal taggers have also been made publicly available so that temporal tagging output is not just exploited in research, but is finding its way into real world applications. In addition, this book particularly focuses on domain-specific temporal tagging of documents. This is a crucial aspect as different types of documents (e.g., news articles, narratives, and colloquial texts) result in diverse challenges for temporal taggers and should be processed in a domain-sensitive manner.
- Published
- 2016
42. On the benefits of file-level modularity for EMF models.
- Author
-
Jahed, Karim, Bagherzadeh, Mojtaba, and Dingel, Juergen
- Subjects
- *
INTELLIGENT buildings , *SCALABILITY , *DOMAIN-specific programming languages - Abstract
Model-driven development (MDD) tools based on the Eclipse Modeling Framework (EMF) typically store all elements in a model in a single file which arguably is one of the main reasons why these tools do not scale well and cannot take advantage of existing code versioning systems and other related facilities such as Git and Make. In this work, we describe an approach for storing models in multiple files. We argue that EMF-based MDD tools can benefit significantly from this file-level modularity not only by improving the performance and scalability of basic model operations, but also by simplifying many model management activities through the use of existing code versioning systems and build automation tools. We introduce a domain-specific language that allows defining, at the metamodel level: (1) the mapping between models' elements and the file structure for model storage and (2) the dependencies between model elements that affect the code generation and compilation (if the integration with code-based tools is required). Our suite then generates an API and scripts to provide support for file-level modularity and facilitate using code-based versioning and build tools. We have used our DSL in the context of Papyrus-RT, an MDD tool for real-time and embedded software, and show how file-level modularity can (1) substantially improve performance and scalability of load and save operations, (2) enable collaborative model development, and (3) facilitate MDD-specific activities such as model comparison and incremental code generation. Our implementation and the models used for evaluation are publicly available. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
43. Data Oriented Development with Angularjs : Data Oriented Development with Angularjs
- Author
-
Manoj Waikar and Manoj Waikar
- Subjects
- Domain-specific programming languages, Software frameworks
- Abstract
Key FeaturesBook DescriptionThis book helps beginner-level AngularJS developers organize AngularJS applications by discussing important AngularJS concepts and best practices. If you are an experienced AngularJS developer but haven't written directives or haven't created custom HTML controls before, then this book is ideal for you.What you will learnExperience the power of twoway data binding using AngularJS and threeway data binding using FirebaseUse dependency injection in AngularJSGet the $http and $resource services to work with REST APIsRealize the full power of AngularJS by writing custom elements, attributes, and so on, using directivesCreate realtime apps using Firebase and AngularJSDiscover the benefits and uses of Node.js, Yeoman, Yo Angular generator, Grunt, and BowerGet to grips with the basics of Git and use Git flow for a more productive Git branching workflowWho this book is for
- Published
- 2015
44. Mastering Gradle : Master the Technique of Developing, Migrating, and Building Automation Using Gradle
- Author
-
Mainak Mitra and Mainak Mitra
- Subjects
- Domain-specific programming languages
- Abstract
Key FeaturesBook DescriptionIf you are a developer with some experience in build tool and want to become an expert in build tool, then this book is for you. Basic knowledge of Gradle or any other build tool is essential.What you will learnCreate and develop a build system with GradleUnderstand Groovy basics and key features to write Gradle scriptsExplore the important features of Gradle: task management, plugin management, and dependency managementWalkthrough various inbuilt Gradle plugins, such as Java, Scala, War, Ant, Maven, and many othersMaster the migration techniques from build tools such as Ant and Maven into GradleIntegrate Gradle with popular continuous integration tools such as Jenkins and TeamCityWho this book is forIf you are a developer with some experience in build tool and want to become an expert in build tool, then this book is for you. Basic knowledge of Gradle or any other build tool is essential.
- Published
- 2015
45. JavaScript Domain-Driven Design : Speed up Your Application Development by Leveraging the Patterns of Domain-driven Design
- Author
-
Philipp Fehre and Philipp Fehre
- Subjects
- JavaScript (Computer program language), Computer software--Development, Domain-specific programming languages
- Abstract
Key FeaturesBook DescriptionIf you are an experienced JavaScript developer who wants to improve the design of his or her applications, or find yourself in a situation to implement an application in an unfamiliar domain, this book is for you. Prior knowledge of JavaScript is required and prior experience with Node.js will also be helpful.What you will learnMake communication with businesses more productive by identifying your requirementsAnalyze a project to build the right features at the right timeTest the vital parts of your project by implementing testdriven designCreate application prototypes and utilize UML to enhance developer productivityExplore effective means of communicating with nondevelopers to find out more about their requirementsDiscover how to create manageable applications in JavaScript from scratchLearn to quickly build advanced JavaScript applicationsWho this book is forIf you are an experienced JavaScript developer who wants to improve the design of his or her applications, or find yourself in a situation to implement an application in an unfamiliar domain, this book is for you. Prior knowledge of JavaScript is required and prior experience with Node.js will also be helpful.
- Published
- 2015
46. Gradle Essentials : Master the Fundamentals of Gradle Using Real-world Projects with This Quick and Easy-to-read Guide
- Author
-
Kunal Dabir, Abhinandan Maheshwari, Kunal Dabir, and Abhinandan Maheshwari
- Subjects
- Domain-specific programming languages
- Abstract
Master the fundamentals of Gradle using real-world projects with this quick and easy-to-read guideKey Features[•] Write beautiful build scripts for various types of projects effortlessly[•] Become more productive by harnessing the power and elegance of the Gradle DSL[•] Learn how to use Gradle quickly and effectively with this step-by-step guideBook DescriptionGradle is an advanced and modern build automation tool. It inherits the best elements of the past generation of build tools, but it also differs and innovates to bring terseness, elegance, simplicity, and the flexibility to build. Right from installing Gradle and writing your first build file to creating a fully-fledged multi-module project build, this book will guide you through its topics in a step-by-step fashion. You will get your hands dirty with a simple Java project built with Gradle and go on to build web applications that are run with Jetty or Tomcat. We take a unique approach towards explaining the DSL using the Gradle API, which makes the DSL more accessible and intuitive. All in all, this book is a concise guide to help you decipher the Gradle build files, covering the essential topics that are most useful in real-world projects. With every chapter, you will learn a new topic and be able to readily implement your build files. What you will learn[•] Master the Gradle DSL by identifying the building blocks[•] Learn just enough Groovy for Gradle[•] Set up tests and reports for your projects to make them CI ready[•] Create library, stand-alone, and web projects[•] Craft multi-module projects quickly and efficiently[•] Migrate existing projects to a modern Gradle build[•] Extract common build logic into plugins[•] Write builds for languages like Java, Groovy, and ScalaWho this book is forThis book is for Java and other JVM-based language developers who want to use Gradle or are already using Gradle on their projects. No prior knowledge of Gradle is required, but some familiarity with build-related terminologies and an understanding of the Java language would help.
- Published
- 2015
47. R Data Analysis Cookbook
- Author
-
Viswa Viswanathan, Shanthi Viswanathan, Viswa Viswanathan, and Shanthi Viswanathan
- Subjects
- Data mining--Mathematics, R (Computer program language), Domain-specific programming languages
- Abstract
This book is ideal for those who are already exposed to R, but have not yet used it extensively for data analytics and are seeking to get up and running quickly for analytics tasks. This book will help people who aspire to enhance their skills in any of the following ways: • perform advanced analyses and create informative and professional charts • become proficient in acquiring data from many sources • apply supervised and unsupervised data mining techniques • use R's features to present analyses professionally
- Published
- 2015
48. Gradle Dependency Management : Gradle Dependency Management
- Author
-
Hubert Klein Ikkink and Hubert Klein Ikkink
- Subjects
- Domain-specific programming languages
- Abstract
Key FeaturesBook DescriptionIf you work on Java projects, use Gradle as a build automation tool, and you use dependencies in your project, this is the book for you. Additionally, if you want to deploy your project artifacts as dependencies for other developers using Gradle, you've found the right book.What you will learnDefine dependencies in your Java projectsPublish your artifacts to Maven and Ivy repositoriesConfigure transitive dependenciesInstall your artifacts in BintrayCustomize the resolution of dependency rulesUse your own code as dependencies in a multimodule projectConfigure repositories to resolve dependenciesWho this book is for
- Published
- 2015
49. Groovy for Domain-Specific Languages, Second Edition : Extend and Enhance Your Java Applications with Domain-specific Scripting in Groovy
- Author
-
Fergal Dearle and Fergal Dearle
- Subjects
- Domain-specific programming languages, Groovy (Computer program language), Java (Computer program language)
- Abstract
Extend and enhance your Java applications with domain-specific scripting in GroovyKey FeaturesBook DescriptionThe times when developing on the JVM meant you were a Java programmer have long passed. The JVM is now firmly established as a polyglot development environment with many projects opting for alternative development languages to Java such as Groovy, Scala, Clojure, and JRuby. In this pantheon of development languages, Groovy stands out for its excellent DSL enabling features which allows it to be manipulated to produce mini languages that are tailored to a project's needs. A comprehensive tutorial on designing and developing mini Groovy based Domain Specific Languages, this book will guide you through the development of several mini DSLs that will help you gain all the skills needed to develop your own Groovy based DSLs with confidence and ease. Starting with the bare basics, this book will focus on how Groovy can be used to construct domain specific mini languages, and will go through the more complex meta-programming features of Groovy, including using the Abstract Syntax Tree (AST). Practical examples are used throughout this book to de-mystify these seemingly complex language features and to show how they can be used to create simple and elegant DSLs. Packed with examples, including several fully worked DSLs, this book will serve as a springboard for developing your own DSLs.What you will learnFamiliarize yourself with Groovy scripting and work with Groovy closuresUse the metaprogramming features in Groovy to build mini languagesEmploy Groovy markup and builders to simplify application developmentFamiliarize yourself with Groovy markup and build your own Groovy buildersBuild effective DSLs with operator overloading, command chains, builders, and a host of other Groovy language featuresIntegrate Groovy with your Java and JVM based applicationsWho this book is forThis book is for Java software developers who have an interest in building domain scripting into their Java applications. No knowledge of Groovy is required, although it will be helpful. This book does not teach Groovy, but quickly introduces the basic ideas of Groovy. An experienced Java developer should have no problems with these and move quickly on to the more involved aspects of creating DSLs with Groovy. No experience of creating a DSL is required.
- Published
- 2015
50. Software Dataplane Verification.
- Author
-
Dobrescu, Mihai and Argyraki, Katerina
- Subjects
- *
SOFTWARE verification , *COMPUTER network monitoring , *DATA packeting , *DOMAIN-specific programming languages , *CODING theory , *SECURITY systems - Abstract
The industry is in the mood for programmable networks, where an operator can dynamically deploy network functions on network devices, akin to how one deploys virtual machines on physical machines in a cloud environment. Such flexibility brings along the threat of unpredictable behavior and performance. What are the minimum restrictions that we need to impose on network functionality such that we are able to verify that a network device behaves and performs as expected, for example, does not crash or enter an infinite loop? We present the result of working iteratively on two tasks: designing a domain-specific verification tool for packet-processing software, while trying to identify a minimal set of restrictions that packet-processing software must satisfy in order to be verification-friendly. Our main insight is that packet-processing software is a good candidate for domain-specific verification, for example, because it typically consists of distinct pieces of code that share limited mutable state; we can leverage this and other properties to sidestep fundamental verification challenges. We apply our ideas on Click packet-processing software; we perform complete and sound verification of an IP router and two simple middleboxes within tens of minutes, whereas a state-of-the-art general-purpose tool fails to complete the same task within several hours. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.