C# is the new flagship language in the Microsoft NET platform. C# is an attractive vehicle for language design research not only because it shares many characteristics with Java, the current language of choice for suc...
详细信息
C# is the new flagship language in the Microsoft NET platform. C# is an attractive vehicle for language design research not only because it shares many characteristics with Java, the current language of choice for such research, but also because it is likely to see wide use. Language research needs a large investment in infrastructure, even for relatively small studies. This paper describes a new C# compiler designed specifically to provide that infrastructure. The overall design is deceptively simple. The parser is generated automatically from a possibly ambiguous grammar, accepts C# source, perhaps with new features, and produces an abstract syntax tree, or AST. Subsequent phases-dubbed visitors-traverse the AST, perhaps modifying it, annotating it or emitting output, and pass it along to the next visitor. Visitors are specified entirely at compilation time and are loaded dynamically as needed. There is no fixed set of visitors, and visitors are completely unconstrained. Some visitors perform traditional compilation phases, but the more interesting ones do code analysis, emit non-traditional data such as XML, and display data structures for debugging. Indeed, most usage to date has been for tools, not for language design experiments. Such experiments use source-to-source transformations or extend existing visitors to handle new language features. These approaches are illustrated by adding a statement that switches on a type instead of a value, which can be implemented in a few hundred lines. The compiler also exemplifies the value of dynamic loading and of type reflection. Copyright (C) 2004 John Wiley Sons, Ltd.
A prototype persistence system based on the nitrO reflective system demonstrates that computational reflection is a suitable technique for dynamically and transparently adapting any application's persistence attri...
详细信息
A prototype persistence system based on the nitrO reflective system demonstrates that computational reflection is a suitable technique for dynamically and transparently adapting any application's persistence attributes, following the separation-of-concerns principle. Because computational reflection offers the runtime customization of language semantics, it lets developers combine programming language and database management systems into a single computational model.
Interruptions to supply and sags of distribution system voltage are the main aspects causing customer complaints. There is a need for analysis of supply reliability and voltage sag to relate system performance with ne...
详细信息
Interruptions to supply and sags of distribution system voltage are the main aspects causing customer complaints. There is a need for analysis of supply reliability and voltage sag to relate system performance with network structure and equipment design parameters. This analysis can also give prediction of voltage dips, as well as relating traditional reliability and momentary outage measures to the properties of protection systems and to network impedances. Existing reliability analysis software, often requires substantial training, lacks automated facilities, and suffers from data availability. Thus it requires time-consuming manual intervention for the study of large networks. A user-friendly sag and reliability assessment tool (SRAT) has been developed based on existing impedance data, protection characteristics, and a model of failure probability. The new features included in SRAT are a) efficient reliability and sag assessments for a radial network with limited loops, b) reliability evaluation associated with realistic protection and restoration schemes, c) inclusion of momentary outages in the same model as permanent outage evaluation, d) evaluation of the sag transfer through meshed subtransmission network, and e) simplified probability distribution model determined from available faults records. Examples of the application of the tools to an Australian distribution network are used to illustrate the application of this model.
Metamorphic programming solves common computing problems with sometimes spectacular performance gains over conventional coding. Although these programs violate good programming rules, a few minor compiler enhancements...
详细信息
Metamorphic programming solves common computing problems with sometimes spectacular performance gains over conventional coding. Although these programs violate good programming rules, a few minor compiler enhancements can produce clean, well-structured code.
The use of object-oriented programming in software development allows software systems to be more robust and more maintainable. At the same time, the development time and expense are also reduced. To achieve these ben...
详细信息
The use of object-oriented programming in software development allows software systems to be more robust and more maintainable. At the same time, the development time and expense are also reduced. To achieve these benefits, object-oriented applications use dynamic memory management (DMM) to create generic objects that can be reused. Consequently, these applications are often highly dynamic memory intensive. For the last three decades, several DMM schemes have been proposed. Such schemes include first fit, best fit, segregated fit, and buddy systems. Because the performance (e.g., speed, memory utilization, etc.) of each scheme differs, it becomes a difficult choice in selecting the most suitable approach for an application and what parameters (e.g., block size, etc.) should be adopted. In this paper, a DMM simulation tool and its usage are presented. This tool receives DMM traces of C/C++ or Java programs and performs simulation according to the scheme (first fit, best fit, buddy system, and segregated fit) defined by the user. Techniques required to obtain memory traces are presented. At the end of each simulation run, a variety of performance metrics are reported to the users. By using this tool, software engineers can evaluate system performance and decide which algorithm is the most suitable. Moreover, hardware engineers can perform a system analysis before hardware (e.g., modified buddy system, first fit, etc.) is fabricated. (C) 2003 Elsevier Inc. All rights reserved.
Numerical results can be conveyed effectively to any one using an object-oriented framework. Therefore, it becomes essential to couple the object-oriented approach with numerical analysis. A simple object-oriented met...
详细信息
Numerical results can be conveyed effectively to any one using an object-oriented framework. Therefore, it becomes essential to couple the object-oriented approach with numerical analysis. A simple object-oriented methodology for creating a graphical user interface (GUI) as a framework is presented. This work tries to fill a gap between scientific computer code written in a noninteractive way and interactive programming in materials processing. The GUI interface framework has been created in such a way that at any point of time one need not create a new GUI framework. The user only needs to create the process object and attach it to the framework. Two examples have been presented involving interactive finite volume-based gas carburizing and interactive finite difference-based Acheson process (used for the production of silicon carbide).
In this paper, we consider non-isothermal two-phase flow of two components (air and water) in gaseous and liquid phases in extremely low-permeable porous media through the use of the finite element method (FEM). Inter...
详细信息
In this paper, we consider non-isothermal two-phase flow of two components (air and water) in gaseous and liquid phases in extremely low-permeable porous media through the use of the finite element method (FEM). Interphase mass transfer of the components between any of the phases is evaluated by assuming local thermodynamic equilibrium between the phases. Heat transfer occurs by conduction and multiphase advection. General equations of state for phase changes (Clausius-Clapeyron and Henry law) as well as multiphase properties for the low-permeable bentonites are implemented in the code. Additionally we consider the impact of swelling/shrinking processes on porosity and permeability changes. The numerical model is implemented in the context of the simulator RockFlow/RockMech (RF/RM), which is based on object-oriented programming techniques. The finite element formulations are written in terms of dimensionless quantities. This has proved to be advantageous for preconditioning composite system matrices of coupled multi-field problems. Three application examples are presented. The first one examines differences between the Richards' approximation and the multicomponent/multiphase approach, and between two numerical coupling schemes. The second example serves as partial verification against experimental results and to demonstrate coherence between different element types. The last example shows simultaneous desaturation and resaturation in one system.
A fundamental question in object-oriented design is how to design maintainable software. According to expert opinion, a delegated control style, typically a result of responsibility-driven design, represents object-or...
详细信息
A fundamental question in object-oriented design is how to design maintainable software. According to expert opinion, a delegated control style, typically a result of responsibility-driven design, represents object-oriented design at its best, whereas a centralized control style is reminiscent of a procedural solution, or a "bad" object-oriented design. This paper presents a controlled experiment that investigates these claims empirically. A total of 99 junior, intermediate, and senior professional consultants from several international consultancy companies were hired for one day to participate in the experiment. To compare differences between (categories of) professionals and students, 59 students also participated. The subjects used professional Java tools to perform several change tasks on two alternative Java designs that had a centralized and delegated control style, respectively. The results show that the most skilled developers, in particular, the senior consultants, require less time to maintain software with a delegated control style than with a centralized control style. However, more novice developers, in particular, the undergraduate students and junior consultants, have serious problems understanding a delegated control style, and perform far better with a centralized control style. Thus, the maintainability of object-oriented software depends, to a large extent, on the skill of the developers who are going to maintain it. These results may have serious implications for object-oriented development in an industrial context: Having senior consultants design object-oriented systems may eventually pose difficulties unless they make an effort to keep the designs simple, as the cognitive complexity of "expert" designs might be unmanageable for less skilled maintainers.
In real-time simulation, the simulated system should display the same (or very close) timing behavior as the target system. The simulation accuracy is increased as the simulation time unit is decreased. Although there...
详细信息
In real-time simulation, the simulated system should display the same (or very close) timing behavior as the target system. The simulation accuracy is increased as the simulation time unit is decreased. Although there are several models for such systems, the TMO model is particularly appropriate due to its natural support for real-time distributed object-oriented programming. This paper discusses the results of the implementation of a real-time airplane-landing simulator on a distributed computing environment using the TMO model. Copyright (C) 2004 John Wiley Sons, Ltd.
This paper shows that one can reason at a meta level about the structure of object-oriented source code in a language-independent way. To achieve this, we propose a language-independent meta-level interface to extract...
详细信息
This paper shows that one can reason at a meta level about the structure of object-oriented source code in a language-independent way. To achieve this, we propose a language-independent meta-level interface to extract complex information about the structure of the source code. This approach is validated by defining a set of logic queries to detect object-oriented best practice patterns and design patterns in two different languages: Smalltalk and Java. The queries were applied to two similar medium-sized applications available for each language, and the results were confirmed by manually investigating the source code and available documentation. (C) 2003 Elsevier Ltd. All rights reserved.
暂无评论