作者:
Kiselyov, OUSN
Postgrad Sch Software Engn Monterey CA 93943 USA
Macros are often regarded as a sort of black magic: highly useful yet abstruse. The present paper aims to make macro programming more like a craft. Using R5RS Scheme macros as an example, we develop and present a gene...
详细信息
ISBN:
(纸本)3540442847
Macros are often regarded as a sort of black magic: highly useful yet abstruse. The present paper aims to make macro programming more like a craft. Using R5RS Scheme macros as an example, we develop and present a general practical methodology of building complex macros systematically, by combining simpler components by functional composition or higher-order operators. Macro programming is complex because the systematic approach does not apply to many macros. We show that macros and other head-first normal-order re-writing systems generally lack functional composition. However, macros written in a continuation-passing style (CPS) always compose. Making CPS macros practical still requires an encoding for macro-continuations. We have found this missing piece, with an insight for anonymous macro-level abstractions. In the specific case of R5RS macros, this paper presents a stronger result: developing R5RS macros by a translation from the corresponding Scheme procedures. We demonstrate the practical use of the technique by elaborating a real-world example.
The Know-It-All Project is investigating methodologies for the development, application, and evolution of frameworks. A concrete framework for database management systems is being developed as a case study for the met...
详细信息
ISBN:
(纸本)3540442847
The Know-It-All Project is investigating methodologies for the development, application, and evolution of frameworks. A concrete framework for database management systems is being developed as a case study for the methodology research. The methodology revolves around a set of models for the domain, the functionality, the architecture, the design, and the code. These models reflect the common and variable features of the domain. Refactoring of source code has been studied as a preliminary step in the evolution of object-oriented software. In cascaded refactoring, we view framework evolution as a two-step process: refactoring and extension. The refactoring step is a set of refactorings, one for each model. The refactorings chosen for a model determine the rationale or constraints for the choice of refactorings of the next model. There are several issues with respect to architecture that we have encountered and are exploring. These include (1) the choice of models for the architecture;(2) the design of the architecture and its evaluation;(3) the evolution of the architecture by extending the concept of refactoring from source code to architecture;and (4) the modeling of variation in architectures across the product line. Here we focus on the refactoring of the architecture.
Applications in an evolving computing environment should be designed to cope with varying data. Object-oriented programming, polymorphisms and parametric types often do not provide the required flexibility, which can ...
详细信息
ISBN:
(纸本)3540442847
Applications in an evolving computing environment should be designed to cope with varying data. Object-oriented programming, polymorphisms and parametric types often do not provide the required flexibility, which can be achieved with the use of metadata attached or extracted from objects by means of reflection. We present a general mechanism to support reflection in C++, exploiting template metaprogramming techniques. Metaclass objects are present at runtime and can be inspected to access information about objects, in particular about their fields. Metaobjects describing fields can be extended, through a mechanism similar to custom attributes in C#. The mechanism is self-reflective, allowing for metaclass objects to be described in turn. This allows storing and retrieving metaclasses from external storage and allows programs to understand and manipulate objects built by other programs. We present two case studies of the technique: building configuration objects and creating object-oriented interfaces to relational database tables.
The proceedings contain 42 papers. The topics discussed include: hybrid computation with an attractor neural network;from embodied cognitive science to synthetic psychology;how do I trust thee? let me count the ways;h...
ISBN:
(纸本)0769517242
The proceedings contain 42 papers. The topics discussed include: hybrid computation with an attractor neural network;from embodied cognitive science to synthetic psychology;how do I trust thee? let me count the ways;how do I trust thee? let me count the ways;problems, solutions and information systems development;cognitive informatics: a knowledge engineering perspective;model and heuristic technique for efficient verification of component-based software systems;towards a refinement calculus for object systems;system modeling and design using genetic programming;an agent-based framework for developing flexible distributed systems;compression and its metrics for multimedia;software agents: quality, complexity and uncertainty issues;and a simplified protocol operational semantics for multiagent protocols.
Physical products come in many variants, and so does the software embedded in them. The software embedded in a product variant usually has to be optimized to fit its limited memory and computing power. generative prog...
ISBN:
(纸本)9783540442844
Physical products come in many variants, and so does the software embedded in them. The software embedded in a product variant usually has to be optimized to fit its limited memory and computing power. generativeprogramming is well suited for developing embedded software since it allows us to automatically produce variants of embedded software optimized for specific products. This paper reports on our experience in applying generativeprogramming in the embedded domain. We propose an extended feature modeling notation, discuss tool support for feature modeling, describe a domain-independent system configuration editor, and comment on the applicability of static configuration in the area of embedded systems.
Traditional protocol implementation approaches capture the structural aspects of protocols in a common base that can be used accross layers. However, they are usually not very good at capturing the behavioral aspects....
ISBN:
(纸本)9783540442844
Traditional protocol implementation approaches capture the structural aspects of protocols in a common base that can be used accross layers. However, they are usually not very good at capturing the behavioral aspects. Two important implementation problems result, namely, reprogramming similar behavior and configuration of crosscutting concerns. In this paper, we present an approach to solve the problems of reprogramming similar behavior and absence of systematic configuration mechanisms for crosscutting concerns in communication systems. Our approach is based on generativeprogramming, has been implemented in C++ and has been validated with several protocols. We also sketch an approach for run-time reconfigurable protocol stacks.
This paper presents techniques for a component-based style of programming in the context of higher-oder attribute grammars (HAG). Attribute grammar components are "plugged in" into larger attribute grammar s...
ISBN:
(纸本)9783540442844
This paper presents techniques for a component-based style of programming in the context of higher-oder attribute grammars (HAG). Attribute grammar components are "plugged in" into larger attribute grammar systems through higher-order attribute grammars. Higher-order attributes are used as (intermediate) "gluing" data *** paper also presents two attribute grammar components that can be re-used across different language-based tool specifications: a visualizer and animator of programs and a graphical user interface AG component. Both components are reused in the definition of a simple language processor. The techniques presented in this paper are implemented in Lrc: a purely functional, higher-order attribute grammar-based system that generates language-based tools.
Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abs...
ISBN:
(纸本)9783540442844
Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general purpose (meta-) programming languages is too great for many applications. In this paper it is shown how the syntax definition formalism SDF can be employed to fit any meta-programming language with concrete syntax notation for composing and analyzing object programs. As a case study, the addition of concrete syntax to the program transformation language stratego is presented. The approach is then generalized to arbitrary meta-languages.
The proceedings contain 35 papers. The special focus in this conference is on System Modeling, Architecture, Distance Learning System engineering, Collaborative Systems and Experiences in Distance Learning. The topics...
ISBN:
(纸本)3540440410
The proceedings contain 35 papers. The special focus in this conference is on System Modeling, Architecture, Distance Learning System engineering, Collaborative Systems and Experiences in Distance Learning. The topics include: An open framework for smart and personalized distance learning;a metadata framework for description of learning objects;a web-based motivation-supporting model for effective teaching-learning;the design and implementation of a web-based teaching-learning model for information communication technology application education;on analysis and modeling of student browsing behavior in web-based asynchronous learning environments;conceptual network based courseware navigation and web presentation mechanisms;web-based knowledge-based system on liquid retaining structure design as instructional tool;creating a revolutionary real-time interactive distance learning system;critical success factors for web-based organizational IT training systems;application of quality assurance in web-based laboratories;an educational community using collaborative virtual environments;a component-based architecture for adaptive, collaborative web-based learning;virtual programming lab for online distance learning;experiences in running a flexible, web-based, and self-paced course;virtual teaching and learning based on multimedia techniques;experiences in developing a large-scale school IT project;a web-based lecture video database system with flexible indexing method using action logs;design and evaluation of lecture support functions for question databases;web-based video indexing and retrieval for teaching and learning;multimedia knowledge exploitation for E-learning and web-based interactive 3D visualization for computer graphics education.
Embedded systems represent fundamentally new challenges for software design, which render conventional approaches to software composition ineffective. starting with the unique challenges of building embedded systems, ...
ISBN:
(纸本)9783540442844
Embedded systems represent fundamentally new challenges for software design, which render conventional approaches to software composition ineffective. starting with the unique challenges of building embedded systems, this paper discusses key issues of model-based technology for embedded systems. The discussion uses Model-Integrated Computing (MIC) as an example for model-based software development. In MIC, domain-specific, multiple view models are used in all phases of the development process. Models explicitly represent the embedded software and the environment it operates in, and capture the requirements of the application, simultaneously. Models are descriptive, in the sense that they allow the formal analysis, verification and validation of the embedded system at design time. Models are also generative, in the sense that they carry enough information for automatically generating embedded systems from them using the techniques of program generators.
暂无评论