scholarly journals Adaptation of a Refactoring DSL for the Object-Oriented Paradigm

2021 ◽  
Author(s):  
Dávid J. Németh ◽  
Dániel Horpácsi ◽  
Máté Tejfel

Many development environments offer refactorings aimed at improving non-functional properties of software, but we have no guarantees that these transformations indeed preserve the observable behavior of the source code they are applied on. An existing domain-specific language makes it possible to formalize automatically verifiable refactorings via instantiating predefined transformation schemes with conditional term rewrite rules. We present a proposal for adapting this language from the functional to the object-oriented programming paradigm, using Java instead of Erlang as a representative. The behavior-preserving property of discussed refactorings is characterized with a multilayered definition of equivalence for Java programs, including the conformity relation of class hierarchies. Based on the decomposition of a complex refactoring rule, we show how new transformation schemes can be identified, along with modifications and extensions of the description language required to accommodate them. Finally, we formally define the chosen base refactoring as a composition of scheme instances.


2021 ◽  
Author(s):  
Orcun Oruc

Multi-agent systems have evolved with their complexities over the past few decades. To create multi-agent systems, developers should understand the design, analysis, and implementation together. Agent-oriented software engineering applies best practices through mainly software agents with abstraction levels in the multi-agent systems. However, abstraction levels take a considerable amount of time due to the design complexity and adversity of the analysis phase before implementing them. Moreover, trust and security of multi-agent systems have never been detailed in the design and analysis phase even though the implementation of trust and security on the tamper-proof data are necessary for developers. Nonetheless, object-oriented programming is the right way to do it, when implementing complex software agents, one of the major problems is that the object-oriented programming approach still has a complex process-interaction and a burden of event-goal combination to represent actions by multi-agents. Designated roles with their relationships, invariants, and constraints of roles can be constructed based on blockchain contracts between agents. Furthermore, in the case of new agents who participate in an agent network, decentralization and transparency are two key parameters, which agents can exchange trusted information and reach a consensus aspect of roles. This study will take the software agent development as a whole with analysis, design, and development with role-object pattern in terms of smart contract applications. In this paper, we aim to propose a role-based domain-specific language that enables smart contracts which can be used in agent-oriented frameworks. Furthermore, we would like to refer to methodology, results of the research, and case study to enlighten readers in a better way. Finally, we summarize findings and highlight the main research points by inferencing in the conclusion section.



1998 ◽  
Vol 532 ◽  
Author(s):  
Martin Jaraiz ◽  
Lourdes Pelaz ◽  
Emiliano Rubio ◽  
Juan Barbolla ◽  
George H. Gilmer ◽  
...  

ABSTRACTAtomistic process modeling, a kinetic Monte Carlo simulation technique, has the interest of being both conceptually simple and extremely powerful. Instead of reaction equations it is based on the definition of the interactions between individual atoms and defects. Those interactions can be derived either directly from molecular dynamics or first principles calculations, or from experiments. The limit to its use is set by the size dimensions it can handle, but the level of performance achieved by even workstations and PC's, together with the design of efficient simulation schemes, has revealed it as a good candidate for building the next generation of process simulators, as an extension of existing continuum modeling codes into the deep submicron size regime. Over the last few years it has provided a unique insight into the atomistic mechanisms of defect formation and dopant diffusion during ion implantation and annealing in silicon. Object-oriented programming can be very helpful in cutting software development time, but care has to be taken not to degrade performance in the critical inner calculation loops. We discuss these techniques and results with the help of a fast object-oriented atomistic simulator recently developed.



Author(s):  
Michael Metcalf ◽  
John Reid ◽  
Malcolm Cohen

The object-oriented approach to programming and design is characterized by its focus on the data structures of a program rather than the procedures. Often, invoking a procedure with a data object as its principal argument is thought of as ‘sending a message’ to the object. Special language support is typically available for collecting these procedures (sometimes known as ‘methods’) together with the definition of the type of the object. This approach is supported in Fortran by type extension, polymorphic variables, type-bound procedures, abstract types, and finalization.



2010 ◽  
Vol 7 (3) ◽  
pp. 409-440 ◽  
Author(s):  
Igor Dejanovic ◽  
Gordana Milosavljevic ◽  
Branko Perisic ◽  
Maja Tumbas

In this paper we present DOMMLite - an extensible domain specific language (DSL) for static structure definition of data base oriented applications. The model-driven engineering (MDE) approach, an emerging software development paradigm, has been used. The language structure is defined by the means of a meta model supplemented by validation rules based on Check language and extensions based on Extend language, which are parts of the openArchitectureWare framework [1]. The meta model has been defined along with the textual syntax, which enables creation, update and persistence of DOMMLite models using a common text editor. DSL execution semantics has been defined by the specification and implementation of the source code generator for a target platform with an already defined execution semantics. In order to enable model editing, a textual Eclipse editor has also been developed. DSL, defined in this way, has the capability of generating complete source code for GUI forms with CRUDS (Create-Read-Update-Delete-Search) and navigation operations [2,3,4,5].



2021 ◽  
Author(s):  
◽  
Michael Homer

<p>Grace is a programming language under development aimed at education. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface.</p>



2021 ◽  
Author(s):  
◽  
Michael Homer

<p>Grace is a programming language under development aimed at education. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface.</p>



2010 ◽  
Vol 21 ◽  
pp. 65-76
Author(s):  
Gabriel Falconieri Freitas ◽  
Márcio Cornélio ◽  
Tiago Massoni ◽  
Rohit Gheyi


Sign in / Sign up

Export Citation Format

Share Document