Adaptability, i.e. the ability of a system to adapt dynamically to changes in its execution environment, is considered as an important property of computer systems. Scaling directory replication in name servers and lo...
详细信息
ISBN:
(纸本)0818650605
Adaptability, i.e. the ability of a system to adapt dynamically to changes in its execution environment, is considered as an important property of computer systems. Scaling directory replication in name servers and load balancing are well known examples. However, adaptability in today's systems, if present at all, generally is burnt in and dedicated to singular properties of the execution environment. this paper discusses a more universal approach to adaptability. the approach is based on the - in some cases artificial - separation of nonfunctional properties from the functionality of application systems. the scheme provides full control over non functional properties while preserving transparency for the application programs. To study that approach, reflection has been incorporated into the BirliX object model and its implementation. It has been used to experiment with some non functional properties such as migration and protection. the paper motivates the need for a universal adaptability scheme, revisits reflection as used in programminglanguage systems and discusses design decisions for reflective systems, describes the resulting reflective BirliX model and its implementation and finally describes applications.
SKILL is a programminglanguagethat supports both command entry and procedural customization in OpusTM design FrameworkTM. After briefly considering some related work, we examine the requirements that motivate the pr...
ISBN:
(纸本)9780897913638
SKILL is a programminglanguagethat supports both command entry and procedural customization in OpusTM design FrameworkTM. After briefly considering some related work, we examine the requirements that motivate the provision of a programminglanguage available to the user and describe some of the technical characteristics of the languagedesign and implementation. Finally, we describe our experience withthe language and outline future work. A number of programming examples are appended.
this open access book constitutes the proceedings of the 27th International conference on Fundamental Approaches to Software Engineering, FASE 2024, held in conjunction with ETAPS 2024 which took place in Luxembourg i...
详细信息
ISBN:
(数字)9783031572593
ISBN:
(纸本)9783031572586
this open access book constitutes the proceedings of the 27th International conference on Fundamental Approaches to Software Engineering, FASE 2024, held in conjunction with ETAPS 2024 which took place in Luxembourg in April 2024.;the 14 full papers included in this book were carefully reviewed and selected from 41 submission. the proceedings also include 5 short papers from the Test-Comp 2024 event that was hosted by FASE. they deal withthe broad field of software engineering, focusing on requirements, design, architecture, modeling, applications of AI to software engineering and software engineering for AI-based systems, quality, model-driven engineering, processes, and software evolution.
the talk extends the Laws of programming [1] by four laws governing concurrent composition of programs. this operator is associative and commutative and distributive through union; and it has the same unit (do nothing...
详细信息
ISBN:
(纸本)9781450327848
the talk extends the Laws of programming [1] by four laws governing concurrent composition of programs. this operator is associative and commutative and distributive through union; and it has the same unit (do nothing) as sequential composition. Furthermore, sequential and concurrent composition distribute through each other, in accordance with an exchange law; this permits an implementation of concurrency by partial interleaving.
the contribution of this paper is the design, implementation, and early evaluation of a programminglanguagethat unifies classes and aspects. We call our new module construct the classpect. We make three basic claims...
详细信息
ISBN:
(纸本)9781581139631
the contribution of this paper is the design, implementation, and early evaluation of a programminglanguagethat unifies classes and aspects. We call our new module construct the classpect. We make three basic claims. First, we can realize a unified design without significantly compromising the expressiveness of current aspect languages. Second, such a design improves the conceptual integrity of the programming model. third, it significantly improves the compositionality of aspect modules, expanding the program design space from the two-layered model of AspectJ-like languages to include hierarchical structures. To support these claims, we present the design and implementation of Eos-U, an AspectJ-like language based on C# that supports classpects as the basic unit of modularity. We show that Eos-U supports layered designs in which classpects separate integration concerns flexibly at multiple levels of composition. the underpinnings of our design include support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct.
Open implementation Analysis and design (OIA/D) has been introduced as a design methodology for object-oriented software systems, and in particular for substrate software. In this paper we detail our experiences with ...
ISBN:
(纸本)9780897919081
Open implementation Analysis and design (OIA/D) has been introduced as a design methodology for object-oriented software systems, and in particular for substrate software. In this paper we detail our experiences with using OIA/D to design and implement a common substrate component for parallel language runtime systems: a lightweight threads package. We show how existing thread packages employ a "black-box" design, hiding crucial design decisions that drastically reduce their ability to be re-used. We detail these design decisions (dilemmas) and show how an implementation based on OIA/D principles results in a thread package that is flexible, efficient, portable, and re-usable.
In this paper, we describe a two course sequence that has been taught to majors in computer science and a variety of other disciplines. the first course is called "Introduction to Computing"; the second cour...
详细信息
In this paper, we describe a two course sequence that has been taught to majors in computer science and a variety of other disciplines. the first course is called "Introduction to Computing"; the second course is "Introduction to programming". the "Computing" course is a ten-week course that includes material on the following: the "computing perspective" (the algorithmic model as a way of thinking); foundational concepts underlying program design and implementation, including: algorithmic methods, static and dynamic data structures, and design using abstraction; fundamental notions of algorithm analysis and computability; and use of application tools such as e-mail, Web browsers, word processors, spreadsheets, databases, and equation solvers. Building on this foundational pre-programming material, students in the "programming" course are able to learn rapidly the skills in program design, implementation, and debugging necessary to solve computational problems in a high-level programminglanguage. We emphasize effective use of abstraction and the acquisition of software development skills that are language independent. Our experience withthese courses has convinced us that it is possible to introduce the conceptual foundations of computer science to beginning students in a way that both engages them and gives them a basis for learning advanced ways to solve problems using computing, either via programming or through use of modern, highly-programmable commercial applications.
the high performance implementation of Java Virtual Machines (JVM) and just-in-time (JIT) compilers is directed toward adaptive compilation optimizations on the basis of online runtime profile information. this paper ...
详细信息
ISBN:
(纸本)1581133359
the high performance implementation of Java Virtual Machines (JVM) and just-in-time (JIT) compilers is directed toward adaptive compilation optimizations on the basis of online runtime profile information. this paper describes the design and implementation of a dynamic optimization framework in a production-level Java JIT compiler. Our approach is to employ a mixed mode interpreter and a three level optimizing compiler, supporting quick, full, and special optimization, each of which has a different set of tradeoffs between compilation overhead and execution speed. a lightweight sampling profiler operates continuously during the entire program's exectuion. When necessary, detailed information on runtime behavior is collected by dynmiacally generating instrumentation code which can be installed to and uninstalled from the specified recompilation target code. Value profiling withthis instrumentation mechanism allows fully automatic code specialization to be performed on the basis of specific parameter values or global data at the highest optimization level. the experimental results show that our approach offers high performance and a low code expansion ratio in both program startup and steady state measurements in comparison to the compile-only approach, and that the code specialization can also contribute modest performance improvement
We identify three design principles for reflection and metaprogramming facilities in object oriented programminglanguages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: m...
详细信息
ISBN:
(纸本)9781581138313
We identify three design principles for reflection and metaprogramming facilities in object oriented programminglanguages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: meta-level facilities must be separated from base-level functionality. Ontological correspondence: the ontology of meta-level facilities should correspond to the ontology of the languagethey manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of mirrors are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.
暂无评论