The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial ...
详细信息
The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial features of these mainstream OO languages, such as nominality. This paper summarizes the construction of NOOP as a domain-theoretic model of OOP that includes nominal information found in nominally-typed mainstream OO software. Inclusion of nominal type information and asserting that type inheritance in statically-typed OO programming languages is an inherently nominal notion allow readily proving that inheritance and subtyping are completely identified in these languages. This conclusion is in full agreement with intuitions of OO developers using these languages, and contrary to the belief that "inheritance is not subtyping", which came from assuming non-nominal structural models of OO type systems. NOOP, thus, provides a firmer semantic foundation for analyzing and progressing nominallytyped mainstream OO programming languages.
The aim of this position paper is to draw a quick overview of the main contributions in abstract interpretation of object-oriented programs, and to draw possible lines of research in this field.
The aim of this position paper is to draw a quick overview of the main contributions in abstract interpretation of object-oriented programs, and to draw possible lines of research in this field.
object-oriented design and development methods promise to guide designers and to reduce development costs. The DIRECT activity at the Fachhochschule Wiesbaden carefully odopts die object Management Group (OMG) Common ...
详细信息
object-oriented design and development methods promise to guide designers and to reduce development costs. The DIRECT activity at the Fachhochschule Wiesbaden carefully odopts die object Management Group (OMG) Common object Request Broker Architecture (CORBA) standard for the development of distributed real-time control applications. The testbed is an automated laboratory for analyzing environmental samples. The laboratory consists of a set of interconnected intelligent laboratory modules and robots.
This paper presents a graph-based formalism for object-oriented class structure specifications. The formalism combines labelled graphs with partial orders, to adequately model the (single) inheritance relation among o...
详细信息
This paper presents a graph-based formalism for object-oriented class structure specifications. The formalism combines labelled graphs with partial orders, to adequately model the (single) inheritance relation among objects and the overriding relation between methods within derived classes. The semantics of system extension by inheritance and aggregation is then defined as colimits in a suitable category of object-oriented system specifications and their morphisms.
Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to inclu...
详细信息
Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to include in their drawings in order to see what they considered to be central concepts and relationships in program execution. Three drawing tasks were given at different phases of an elementary OO programming course where two animation tools were used for program visualization. The drawings were analyzed for their overall approaches and their detailed *** was a large variability in the overall approaches and the popularity of various approaches changed during the course. The results indicate that students' mental representations of OO concepts and program execution not only grow as new material is covered in teaching, but they also change. The first drawings treat methods as having primarily a static existence; later methods are seen as dynamic invocations that call each other. The role of classes in program execution fluctuates during learning, indicating problems in locating the notion of class with respect to, for example, objects. Two major sources of problems that manifested in many different forms were the relationship between object and method, and the role of the main method with respect to program state. Other problems were caused by overly simplistic understanding of object identification and improper use of application domain knowledge.
The research described in this article reports the results of a study designed to evaluate the relationship among object-oriented (OO) computer programming task performance and a student's (1) theoretical value be...
详细信息
The research described in this article reports the results of a study designed to evaluate the relationship among object-oriented (OO) computer programming task performance and a student's (1) theoretical value belief, (2) cognitive ability, and (3) personality. The results of this study do not support the assertion that cognitive ability is a main determinant of performance. Rather, the findings suggest that characteristics of an individual nature have more effect on a student's performance. This supports our belief advanced herein that theoretical value belief and personality are significant predictors of computer programming performance in OO environments. From the findings of this study, we assert that academicians who must teach OO computer programming consider these factors when developing course materials or student assistance programs.
Recently, the notion of having programming languages and computational systems that allow their programs to reason about themselves and reflect on their computations has attracted the attention of many researchers. Th...
详细信息
Recently, the notion of having programming languages and computational systems that allow their programs to reason about themselves and reflect on their computations has attracted the attention of many researchers. These systems, called "Reflective Systems", promise many advantages over conventional systems. For example, dynamic program stepping, execution tracing, and code analysis and modification at run time are few of the reflective operations that can be easily implemented in reflective systems. Reflectivity of programming languages allows the language users to extend the language to support other programming paradigms. Reflective systems can also play an important role in programming solutions for non-conventional domains. Artificial intelligence applications, particularly learning systems, benefit from the reflectivity of a programming language. A learning system must be able to modify itself at run time to incorporate its learned behaviors. The goal of this article is to define reflection and its components, introduce the appropriate terminology, and present briefly some reflective applications in object-oriented systems.
The aim of this study is to model launch vehicles with focus on 3-DOF trajectory optimization using a modular approach. Despite the large number of operational launch vehicles, they usually consist of basic components...
详细信息
The aim of this study is to model launch vehicles with focus on 3-DOF trajectory optimization using a modular approach. Despite the large number of operational launch vehicles, they usually consist of basic components and subsystems. In other words, a launch vehicle is an assembly of stages, which in turn is divided into propellant system and engine, and the engine is an assembly of basic components such as pumps, turbines, combustion chamber, and nozzle. To allow future extension and reuse of the codes, a modular structure using object-oriented programming is used. Two formulations of state equations of the trajectory and two optimization methods are described. The launch vehicle performance will be measured by payload mass for a given mission. The simulations of the VLS-1, Ariane 5 and VLS-Alfa were performed and showed good agreement with the literature.
Graphical user interfaces are becoming the de facto standard for all kinds of applications on computers that range from IBM-PC compatibles to super workstations. Graphical user interfaces are. however, notoriously dif...
详细信息
Graphical user interfaces are becoming the de facto standard for all kinds of applications on computers that range from IBM-PC compatibles to super workstations. Graphical user interfaces are. however, notoriously difficult to create. In this paper we review the changing expectations of computer users which are a direct result of developments in computer graphics. The support for these changing requirements that are provided by the current standards are discussed and finally the development of object-oriented programming and its relationship to graphical user interfaces are presented. The conclusions discuss the potential benefits that the new programming methodology provides for the development of future interfaces for CACSD systems.
"An Introduction to object-oriented programming with Java" takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students...
详细信息
ISBN:
(纸本)9780073523309
"An Introduction to object-oriented programming with Java" takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students learn how to use the standard classes first, then learn to design their own classes. Wu uses a gentler approach to teaching students how to design their own classes, separating the coverage into two chapters. GUI coverage is also located independently in the back of the book and can be covered if desired. Wu also features a robust set of instructors' materials including PowerPoint slides, code samples, and quiz questions.
暂无评论