C2Eiffel is a fully automatic source-to-source translator of C applications into the Eiffel object-orientedprogramming language. C2Eiffel supports the complete C language, including function pointers, unrestricted po...
详细信息
C2Eiffel is a fully automatic source-to-source translator of C applications into the Eiffel object-orientedprogramming language. C2Eiffel supports the complete C language, including function pointers, unrestricted pointer arithmetic and jumps, arbitrary native libraries, and inlined assembly code. It produces readable Eiffel code that behaves as the source C application, it takes advantage of some of Eiffel's object-oriented features to produce translations that are easy to maintain and debug, and often even safer than their sources thanks to stricter correctness checks introduced automatically. Experiments show that C2Eiffel handles C applications of significant size (such as vim and libgsl), it is a fully automatic tool suitable to reuse C code within a high-level object-orientedprogramming language.
In this paper we study how roles can be added to patterns modelling relationships in object oriented programming. Relationships can be introduced in programming languages either by reducing them to attributes of the o...
详细信息
ISBN:
(纸本)9783540756972
In this paper we study how roles can be added to patterns modelling relationships in object oriented programming. Relationships can be introduced in programming languages either by reducing them to attributes of the objects which participate in the relationship, or by modelling the relationship itself as a class whose instances have the participants of the relationships among their attributes. However, even if roles have been recognized as an essential component of relationships, also in modelling languages like UML, they have not been introduced in object oriented programming when it is necessary to model relationships. Introducing roles allows to add attributes and behaviors to the participants in the relationship, rather than to the relationship itself, and to distinguish the natural types of the participants in the relationships from the roles the participants acquire in the relationships. We show how the role model of the language powerJava can be used to endow the relationship as attribute pattern with roles.
LabVIEW has become a popular environment to develop data acquisition and control systems in aerospace simulation facilities such as those found at the aerodynamics laboratory of the National Research Council of Canada...
详细信息
LabVIEW has become a popular environment to develop data acquisition and control systems in aerospace simulation facilities such as those found at the aerodynamics laboratory of the National Research Council of Canada. These programs are usually developed as structured programs but with time evolve into ad hoc programs. object oriented programming (OOP) is a well established technique that has many advantages over these traditional approaches but applying OOP in LabVIEW-graphical object oriented programming (GOOP) -presents some unique challenges. However, the advantages make the effort worthwhile. The aerodynamics laboratory is undertaking a redesign and rebuild of its data acquisition and control systems in all its facilities. The new systems are required to have greater commonality, portability, flexibility, reliability, expandability and maintainability designed and built in from the start. One key to these improvements is modularity. Another is a common set of standards, policies and approach applied throughout the Laboratory. Envisioned is a system made up of subsystems with common interfaces and running common code where possible. The system should be able to be reconfigured and expanded by rearranging and adding subsystems. To some, all these requirements nicely match the properties of GOOP. A complete design in unified modeling language (UML) was done for such systems and applied to the acquisition and control system for the 0.9 m times 0.9 m pilot wind tunnel, the 5m vertical wind tunnel and to the icing spray system for the 3 m times 6 m open-circuit propulsion and icing wind tunnel to demonstrate the validity of the approach. However, the LabVIEW environment continues to evolve. LabVIEW 8.2 now incorporates GOOP as a native environment. While the new implementation offers many advantages and added functionality such as inheritance and an improved class structure, it breaks continuity with GOOP of the past thus some rethinking and redesign are required to
This paper presents first steps towards a feature model, which can be used to compare actor-oriented, agent-oriented, and object-orientedprogramming languages. The feature model is derived from the existing literatur...
详细信息
This work proposes to describe a teaching approach for introductory laboratory course in object-orientedprogramming and its respective teacher's experience. The profile of the first classes of freshmen, with diff...
详细信息
Combining attribute grammars with object-orientedprogramming supports a new kind of declarative programming, letting developers build compilers in a highly extensible manner. By leveraging a base compiler, extended l...
详细信息
Combining attribute grammars with object-orientedprogramming supports a new kind of declarative programming, letting developers build compilers in a highly extensible manner. By leveraging a base compiler, extended languages can be supported at a relatively low cost. Recent work shows the applicability of the technique to general-purpose programming languages such as Java. In this article, the authors illustrate the approach using a case study for domain-specific languages. They built an extensible compiler for the physical systems modeling language Modelica and leveraged it to support a new extended language, Optimica.
作者:
Kinayman, NoyanMIT
Lincoln Lab Grp Analog Device Technol 86 Lexington MA 02420 USA
Python is a powerful programming language for handling engineering and scientific computational tasks efficiently [1]-[5]. Used by companies such as Google and Intel and by organizations including NASA and Los Alamos ...
详细信息
Python is a powerful programming language for handling engineering and scientific computational tasks efficiently [1]-[5]. Used by companies such as Google and Intel and by organizations including NASA and Los Alamos National Laboratory, it offers an extremely wide selection of tools for tasks such as scientific computing, signal processing, Web site construction, database programming, and graphical user interface (GUI) design. The language is platform independent with most programs running on Linux, Microsoft Windows, or MAC OS virtually unchanged. Python has been distributed as a part of Open Source Initiative, and most versions are General Public License (GPL) compatible. In microwave and radio frequency (RF) engineering, it can be used for numerical programming, automated RF testing, automated monolithic microwave integrated-circuit (MMIC) layout generation, automated netlist generation and simulator sequencing, and other tasks.
Developing parallel applications is notoriously difficult, but it\'s even more complex for desktop applications. The added difficulties primarily come from their interactive nature, where users largely perceive th...
详细信息
Developing parallel applications is notoriously difficult, but it\'s even more complex for desktop applications. The added difficulties primarily come from their interactive nature, where users largely perceive their performance. Desktop applications are typically developed with graphical toolkits that in turn have limitations in regards to multithreading. This article explores desktop applications\' structure, the threading model\'s limitations, and the parallelization of a desktop application using object-oriented and GUI-aware concepts.
Many organizations implicitly rely on opportunistic reuse as a low-cost mechanism for extending existing software systems and exploring new product ideas. Such strategies are also commonly used as an informal way to i...
详细信息
Many organizations implicitly rely on opportunistic reuse as a low-cost mechanism for extending existing software systems and exploring new product ideas. Such strategies are also commonly used as an informal way to introduce and promote reuse in organizations that may not have the resources to set up systematic reuse programs. Scrapheap software development is a form of opportunistic reuse that emphasizes scavenging reusable functionality from discarded software projects and systems. A study that examined a microcosm of scrapheap software development derives generalizable and transferable lessons to inform its use in different development contexts.
In the last decade, software components have been of an increased interest in software engineering community. The appealing concepts of building systems from existing components and reusing components, as well as the ...
详细信息
In the last decade, software components have been of an increased interest in software engineering community. The appealing concepts of building systems from existing components and reusing components, as well as the appearance of new technologies that enabled the separation of component development from system development, attracted researchers and industry to develop and apply principles of component-based software engineering. Today, these concepts are understood as very important in software development, and are a standard part of software engineering approaches.
暂无评论