A Programming Language for Design Patterns

Author(s):  
Stefan Bünnig ◽  
Peter Forbrig ◽  
Ralf Lämmel ◽  
Normen Seemann
Author(s):  
Sebastian Günther

Internal DSLs are a special kind of DSLs that use an existing programming language as their host. To build them successfully, knowledge regarding how to modify the host language is essential. In this chapter, the author contributes six DSL design principles and 21 DSL design patterns. DSL Design principles provide guidelines that identify specific design goals to shape the syntax and semantic of a DSL. DSL design patterns express proven knowledge about recurring DSL design challenges, their solution, and their connection to each other – forming a rich vocabulary that developers can use to explain a DSL design and share their knowledge. The chapter presents design patterns grouped into foundation patterns (which provide the skeleton of the DSL consisting of objects and methods), notation patterns (which address syntactic variations of host language expressions), and abstraction patterns (which provide the domain-specific abstractions as extensions or even modifications of the host language semantics).


2021 ◽  
Author(s):  
◽  
Frank Schmager

<p>GO is a new object-oriented programming language developed at Google by Rob Pike, Ken Thompson, and others. GO has the potential to become a major programming language. GO deserves an evaluation.  Design patterns document reoccurring problems and their solutions. The problems presented are programming language independent. Their solutions, however, are dependent on features programming languages provide. In this thesis we use design patterns to evaluate GO. We discuss GO features that help or hinder implementing design patterns, and present a pattern catalogue of all 23 Gang-of-Four design patterns with GO specific solutions. Furthermore, we present GoHotDraw, a GO port of the pattern dense drawing application framework JHotDraw. We discuss design and implementation differences between the two frameworks with regards to GO.</p>


2014 ◽  
pp. 352-410
Author(s):  
Sebastian Günther

Internal DSLs are a special kind of DSLs that use an existing programming language as their host. To build them successfully, knowledge regarding how to modify the host language is essential. In this chapter, the author contributes six DSL design principles and 21 DSL design patterns. DSL Design principles provide guidelines that identify specific design goals to shape the syntax and semantic of a DSL. DSL design patterns express proven knowledge about recurring DSL design challenges, their solution, and their connection to each other – forming a rich vocabulary that developers can use to explain a DSL design and share their knowledge. The chapter presents design patterns grouped into foundation patterns (which provide the skeleton of the DSL consisting of objects and methods), notation patterns (which address syntactic variations of host language expressions), and abstraction patterns (which provide the domain-specific abstractions as extensions or even modifications of the host language semantics).


2020 ◽  
Author(s):  
Pedro Henrique dos Santos Kutni ◽  
Gustavo Danielevig Pereira Dias ◽  
Josef Mathaus Bischof ◽  
Vinícius Feldhaus Gobetti ◽  
Adriano Pessini ◽  
...  

Game development is a recognized and documented approach toimproving computer programming learning. This article describesthe redesign of the popular game Space Invaders, using Python asthe programming language and libraries Arcade, Random, Os andMath. The game developed has modifications in various aspects, liketextures, jogability, scores and story. The motivation for the remakewas the desire to bring a nostalgic experience for the player,combined with learning about game development. Considering thatit was built by people with no previous experience in gamedevelopment, the proposed objectives were achieved, with thegame having been completed. The Arcade library proved to be easyto use and productive. As future work, an online ranking will bedeveloped, in addition to generating bonuses for the player and theuse of design patterns.


2021 ◽  
pp. 26-31
Author(s):  
T. В. Єліна ◽  
Т. А. Дзикович ◽  
Л. Є. Галавська ◽  
Т. М. Дмитренко

Development of a model of warm and stylish women's stockings with a jacquard pattern, suitable for mass production. Methodology. To achieve this goal, a review of patent and technical іnformation on the manufacture of hosiery with jacquard patterns was realized. Autodesk AutoCAD software is used to increase the effi ciency of product design. Findings. The study developed a collection of women's stockings with animal ornaments and patterns for making the same. A pattern simulating the color of a zebra's fur was chosen for experimental production.A two-color double bed jacquard stockings collection is designed. The production of this knit does not involve the knitting density changes. Correspondence of the stocking surface geometry to the measurements of a person’s leg can be provided by increasing or decreasing working needles. The latter cannot be realized on specialized circular knitting equipment for hosiery production. The models of the collection can be made on fl at knitting machines accord ing to the patterns. An experimental model is made of half-woolen yarn on a semi-industrial fl at knitting  machine Brother KH-965i. The linker Hague D280E has been used for the stocking’s parts sewing. A parametric pattern of the unfolded product in Autodesk AutoCAD has been created. To adjust the pattern to the desired size, a customer has to enter the measurements and the boundary will be redrawn automatically. An application in the Autolisp programming language has been developed to automatically calculate the knitting program (increase and decrease the number of working needles). Entering course and wale spacing values of the sample structure in the program allows the automatically calculating the required number of working needles in each part of the product.Practical value. The technology of making women’s hosiery with design patterns on the basis of double jacquard knits on fl at-bed knitting machines has been develope d. Such products can be made both on modern fl at knitting machines with computer control, such as, for example, automated equipment of the Stoll or Shima Seiki brands and on semi-industrial knitting machines, such as Brother, Selver Red and others.


2021 ◽  
Author(s):  
◽  
Frank Schmager

<p>GO is a new object-oriented programming language developed at Google by Rob Pike, Ken Thompson, and others. GO has the potential to become a major programming language. GO deserves an evaluation.  Design patterns document reoccurring problems and their solutions. The problems presented are programming language independent. Their solutions, however, are dependent on features programming languages provide. In this thesis we use design patterns to evaluate GO. We discuss GO features that help or hinder implementing design patterns, and present a pattern catalogue of all 23 Gang-of-Four design patterns with GO specific solutions. Furthermore, we present GoHotDraw, a GO port of the pattern dense drawing application framework JHotDraw. We discuss design and implementation differences between the two frameworks with regards to GO.</p>


Author(s):  
William Candillon ◽  
Matthias Brantner ◽  
Dennis Knochenwefel

Design patterns are widely used inside the object-oriented community. They are proven mature and reusable solutions that facilitate the development of modules with minimal coupling. Moreover, design patterns are also high-level constructs that contribute to improve the communication between developers. Nowadays, XQuery and its family of specifications are used beyond just querying XML collections and documents. XQuery is more and more used as a multi-paradigm, fully-fledged programming language. The aim of this paper is (1) to motivate the need for XQuery design patterns using a real-world example application and (2) to explore the existence of general design solutions to solve recurring problems in large-scale XQuery applications.


Author(s):  
Alex Blewitt

Patterns are often described in terms of concrete examples in specific programming languages in catalogues (Gamma, Helm, Johnson, & Vlissides, 1995). The description is worded such that a practitioner in an object-oriented programming language will be able to understand the key points of the pattern and translate it into a programming language of their choice.This abstract description of patterns is well suited for intelligent readers, but less suited for automated tasks that must process pattern information. Furthermore, the way in which the pattern information is encoded is often strongly influenced by the type of processing that is being performed on the pattern. In this chapter, the Spine language will be presented as a way of representing Design patterns in a suitable manner for performing verification of a pattern’s implementation in a particular source language. It is used by a proof engine


2018 ◽  
Vol 8 (3) ◽  
pp. 132-135
Author(s):  
Egemen Tekkanat ◽  
Murat Topaloglu

Planning is a very important stage for developing software. A number of systems have been developed for the planning stage, which is a must for software development. Object-oriented programming plays the most important part technically in those systems. Using object-based programming effectively minimises the time and money spent in terms of software development processes. One of the best ways for this is to use design patterns that are also known as modules or program segments consisting of more than one classes and supporting code reuse in order to solve the problems recurring during the development of the software. The aim of this study is to develop a design patterns modeller to be used in Java programming language to make the software development a planned, secure and upgradable process while shortening the time spent and reducing the costs via good planning. Keywords: Java, object-oriented, design patterns, modelling.


Sign in / Sign up

Export Citation Format

Share Document