Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
- Institution
- Keyword
-
- Computer software -- Development (3)
- Aspect-oriented programming (2)
- Model Check (2)
- Programming languages (Electronic computers) (2)
- Active learning (1)
-
- Aspect-Oriented programming (1)
- Aspect-oriented software (1)
- Aspect-oriented software development (1)
- AspectJ (1)
- C# (1)
- Computer algorithms (1)
- Course management system (1)
- Crosscutting concern (1)
- Cryptology (1)
- DHTs (1)
- Data structures (Computer science) (1)
- Distributed Hash Tables (1)
- Eclipse IDE-based tool (1)
- Electronic data processing -- Distributed processing (1)
- Exemplar (Computer program language) (1)
- Formal specification (1)
- Genericity (1)
- Hashing (Computer science) (1)
- Inference algorithms (1)
- Inferencing (1)
- Java (1)
- Joining processes (1)
- Linear Temporal Logic (1)
- Link lifetime (1)
- Moodle (1)
- Publication
- Publication Type
Articles 1 - 18 of 18
Full-Text Articles in Programming Languages and Compilers
On The Assessment Of Pointcut Design In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid
On The Assessment Of Pointcut Design In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid
Publications and Research
No abstract provided.
Specifying And Verifying Event-Based Fairness Enhanced Systems, Jun Sun, Yang Liu, Jin Song Dong, Hai H. Wang
Specifying And Verifying Event-Based Fairness Enhanced Systems, Jun Sun, Yang Liu, Jin Song Dong, Hai H. Wang
Research Collection School Of Computing and Information Systems
Liveness/Fairness plays an important role in software specification, verification and development. Existing event-based compositional models are safety-centric. In this paper, we describe a framework for systematically specifying and verifying event-based systems under fairness assumptions. We introduce different event annotations to associate fairness constraints with individual events. Fairness annotated events can be used to embed liveness/fairness assumptions in event-based models flexibly and naturally. We show that state-of-the-art verification algorithms can be extended to verify models under fairness assumptions, with little computational overhead. We further improve the algorithm by other model checking techniques like partial order reduction. A toolset named Pat has …
Specifying And Verifying Sensor Networks: An Experiment Of Formal Methods, Jin Song Dong, Jing Sun, Jun Sun, Kenji Taguchi, Xian Zhang
Specifying And Verifying Sensor Networks: An Experiment Of Formal Methods, Jin Song Dong, Jing Sun, Jun Sun, Kenji Taguchi, Xian Zhang
Research Collection School Of Computing and Information Systems
With the development of sensor technology and electronic miniaturization, wireless sensor networks have shown a wide range of promising applications as well as challenges. Early stage sensor network analysis is critical, which allows us to reveal design errors before sensor deployment. Due to their distinguishable features, system specification and verification of sensor networks are highly non-trivial tasks. On the other hand, numerous formal theories and analysis tools have been developed in formal methods community, which may offer a systematic method for formal analysis of sensor networks. This paper presents our attempt on applying formal methods to sensor network specification/verification. An …
Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid
Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid
Publications and Research
Aspect-oriented programming (AOP) strives to localize the scattered and tangled implementations of crosscutting concerns (CCCs) by allowing developers to declare that certain actions (advice) should be taken at specific points (join points) during the execution of software where a CCC (an aspect) is applicable. However, it is non-trivial to construct optimal pointcut expressions (a collection of join points) that capture the true intentions of the programmer and, upon evolution, maintain these intentions. We demonstrate an AspectJ source-level inferencing tool called rejuvenate pointcut which helps developers maintain pointcut expressions over the lifetime of a software product. A key insight into the …
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu
Publications and Research
Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach which limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well-founded, we first …
Timed Automata Patterns, Jin Song Dong, Ping Hao, Shengchao Qin, Jun Sun, Wang Yi
Timed Automata Patterns, Jin Song Dong, Ping Hao, Shengchao Qin, Jun Sun, Wang Yi
Research Collection School Of Computing and Information Systems
Timed Automata have proven to be useful for specification and verification of real-time systems. System design using Timed Automata relies on explicit manipulation of clock variables. A number of automated analyzers for Timed Automata have been developed. However, Timed Automata lack composable patterns for high-level system design. Specification languages like Timed Communicating Sequential Process (CSP) and Timed Communicating Object-Z (TCOZ) are well suited for presenting compositional models of complex real-time systems. In this work, we define a set of composable Timed Automata patterns based on hierarchical constructs in time-enriched process algebras. The patterns facilitate the hierarchical design of complex systems …
Holistic Characterization Of Parallel Programming Models In A Distributed Memory Environment, Christopher Bryan
Holistic Characterization Of Parallel Programming Models In A Distributed Memory Environment, Christopher Bryan
Computer Science and Computer Engineering Undergraduate Honors Theses
The popularity of cluster computing has increased focus on usability, especially in the area of programmability. Languages and libraries that require explicit message passing have been the standard. New languages, designed for cluster computing, are coming to the forefront as a way to simplify parallel programming. Titanium and Fortress are examples of this new class of programming paradigms. This work holistically characterizes these languages and contrasts them with the standard model of parallel programming, and presents benchmark results of small computational kernels written in these languages and models.
A Scalable Approach To Multi-Style Architectural Modeling And Verification, Stephen Wong, Jing Sun, Ian Warren, Jun Sun
A Scalable Approach To Multi-Style Architectural Modeling And Verification, Stephen Wong, Jing Sun, Ian Warren, Jun Sun
Research Collection School Of Computing and Information Systems
Software Architecture represents the high level description of a system in terms of components, external properties and communication. Despite its importance in the software engineering process, the lack of formal description and verification support limits the value of developing architectural models. Automated formal engineering methods can provide an effective means to precisely describe and rigorously verify intended structures and behaviors of software systems. In this paper, we present an approach to support the design and verification of software architectural models using the Alloy analyzer. Based on our earlier work, we propose a fundamental library for specifying system structures in terms …
A Formal Model Of Semantic Web Service Ontology (Wsmo) Execution, Hai H. Wang, Nick Gibbins, Terry R. Payne, Ahmed Saleh, Jun Sun
A Formal Model Of Semantic Web Service Ontology (Wsmo) Execution, Hai H. Wang, Nick Gibbins, Terry R. Payne, Ahmed Saleh, Jun Sun
Research Collection School Of Computing and Information Systems
Semantic Web services have been one of the most significant research areas within the semantic Web vision, and have been recognized as a promising technology that exhibits huge commercial potential. Current semantic Web service research focuses on defining models and languages for the semantic markup of all relevant aspects of services, which are accessible through a Web service interface. The Web service modelling ontology (WSMO) is one of the most significant semantic Web service framework proposed to date. To support the standardization and tool support of WSMO, a formal semantics of the language is highly desirable. As there are a …
Link Lifetimes And Randomized Neighbor Selection In Dhts, Zhongmei Yao, Dmitri Loguinov
Link Lifetimes And Randomized Neighbor Selection In Dhts, Zhongmei Yao, Dmitri Loguinov
Computer Science Faculty Publications
Several models of user churn, resilience, and link lifetime have recently appeared in the literature [12], [13], [34], [35]; however, these results do not directly apply to classical Distributed Hash Tables (DHTs) in which neighbor replacement occurs not only when current users die, but also when new user arrive into the system, and where replacement choices are often restricted to the successor of the failed zone in the DHT space. To understand neighbor churn in such networks, this paper proposes a simple, yet accurate, model for capturing link dynamics in structured P2P systems and obtains the distribution of link lifetimes …
Enforcing Behavioral Constraints In Evolving Aspect-Oriented Programs, Raffi Khatchadourian, Johan Dovland, Neelam Soundarajan
Enforcing Behavioral Constraints In Evolving Aspect-Oriented Programs, Raffi Khatchadourian, Johan Dovland, Neelam Soundarajan
Publications and Research
Reasoning, specification, and verification of Aspect-Oriented (AO) programs presents unique challenges especially as such programs evolve over time. Components, base-code and aspects alike, may be easily added, removed, interchanged, or presently unavailable at unpredictable frequencies. Consequently, modular reasoning of such programs is highly attractive as it enables tractable evolution, otherwise necessitating that the entire program be reexamined each time a component is changed. It is well known, however, that modular reasoning about AO programs is difficult. In this paper, we present our ongoing work in constructing a rely-guarantee style reasoning system for the Aspect-Oriented Programming (AOP) paradigm, adopting a trace-based …
Better Refactoring Tools For A Better Refactoring Strategy, Andrew P. Black
Better Refactoring Tools For A Better Refactoring Strategy, Andrew P. Black
Computer Science Faculty Publications and Presentations
Refactoring tools can improve the speed and accuracy with which we create and maintain software – but only if they are used. In practice, tools are not used as much as they could be; this seems to be because they do not align with the refactoring strategy preferred by the majority of programmers: floss refactoring. We propose five principles that characterize successful floss refactoring tools – principles that can help programmers to choose the most appropriate refactoring tools and also help toolsmiths to design more usable tools.
A Framework For Relationship Pattern Languages, Sudarshan Murthy, David Maier
A Framework For Relationship Pattern Languages, Sudarshan Murthy, David Maier
Computer Science Faculty Publications and Presentations
A relationship pattern is an abstraction of a recurring need when establishing relationships among information elements in specific contexts. By developing or leveraging a relationship pattern, modelers can solve a class of problems once and describe many relationship types at once. We have developed a framework for specifying relationship patterns and pattern languages (sets of patterns) in both modeling-language-independent and modeling-language-specific ways. We describe this framework both informally and formally. We provide examples of some commonly observed relationship patterns and show how to use them in ER with the help of a relationship pattern language called Exemplar. We also provide …
Scalable Concurrent Hash Tables Via Relativistic Programming, Josh Triplett
Scalable Concurrent Hash Tables Via Relativistic Programming, Josh Triplett
Computer Science Faculty Publications and Presentations
Existing approaches to concurrent programming often fail to account for synchronization costs on modern shared-memory multipro- cessor architectures. A new approach to concurrent programming, known as relativistic programming, can reduce or in some cases eliminate synchronization overhead on such architectures. This approach avoids the costs of inter-processor communication and memory access by permitting processors to operate from a relativistic view of memory provided by their own caches, rather than from an absolute reference frame of memory as seen by all processors. This research shows how relativistic programming techniques can provide the perceived advantages of optimistic synchronization without the useless parallelism …
Patterns Of Aspect-Oriented Design, Black P. Andrew, James Noble, David J. Pearce, Arno Scmidmeir
Patterns Of Aspect-Oriented Design, Black P. Andrew, James Noble, David J. Pearce, Arno Scmidmeir
Computer Science Faculty Publications and Presentations
Aspect-oriented programming languages are becoming commonplace, and programmers are accumulating experience in building and maintaining aspect-oriented systems. This paper addresses how the use of these languages affects program design: how aspect-oriented languages change the design space, which designs should be emulated and which avoided, and the strengths and weaknesses of particular kinds of design. We identify five patterns of aspect-oriented design: Spectator, Regulator, Patch, Extension, and Heterarchical Design. For each pattern, we describe the problem it solves, show how aspect-oriented language features are used in the pattern, give characteristic examples of the pattern’s use, and assess its benefits and liabilities. …
Digital Cs1 Study Pack Based On Moodle And Python, Atanas Radenski
Digital Cs1 Study Pack Based On Moodle And Python, Atanas Radenski
Mathematics, Physics, and Computer Science Faculty Books and Book Chapters
We believe that CS1 courses can be made more attractive to students:
- by teaching a highly interactive scripting language – Python
- by using an open source course management system - such as Moodle - to make all course resources available in a comprehensive digital study pack, and
- by offering detailed self-guided online labs
We have used Moodle [1] and Python [2] to develop a "Python First" digital study pack [3] which comprises a wealth of new, original learning modules: extensive e-texts, detailed self-guided labs, numerous sample programs, quizzes, and slides. Our digital study pack pedagogy is described in recent ITiCSE …
Set Linear Algebra And Set Fuzzy Linear Algebra, Florentin Smarandache, W.B. Vasantha Kandasamy, K. Ilanthenral
Set Linear Algebra And Set Fuzzy Linear Algebra, Florentin Smarandache, W.B. Vasantha Kandasamy, K. Ilanthenral
Branch Mathematics and Statistics Faculty and Staff Publications
In this book, the authors define the new notion of set vector spaces which is the most generalized form of vector spaces. Set vector spaces make use of the least number of algebraic operations, therefore, even a non-mathematician is comfortable working with it. It is with the passage of time, that we can think of set linear algebras as a paradigm shift from linear algebras. Here, the authors have also given the fuzzy parallels of these new classes of set linear algebras. This book abounds with examples to enable the reader to understand these new concepts easily. Laborious theorems and …
The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev
The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev
Mathematics, Physics, and Computer Science Faculty Articles and Research
In response to a long-lasting anticipation by the Java community, version 1.5 of the Java 2 platform - referred to as Java 5 - introduced generic types and methods to the Java language. The Java 5 generics are a significant enhancement to the language expressivity because they allow straightforward composition of new generic classes from existing ones while reducing the need for a plethora of type casts. While the Java 5 generics are expressive, the chosen implementation method, type erasure, has triggered undesirable orthogonality violations. This paper identifies six cases of orthogonality violations in the Java 5 generics and demonstrates …