作者:
ODERSKY, MIBM Research
T J Watson Research Center PO Box 704 Yorktown Heights NY 10594 USA
The paper presents an extension of MODULA-2 for objectorientedprogramming. After presenting a set of criteria for object-oriented languages, it discusses several possible strategies for extending MODULA-2. One of the...
详细信息
The paper presents an extension of MODULA-2 for objectorientedprogramming. After presenting a set of criteria for object-oriented languages, it discusses several possible strategies for extending MODULA-2. One of these strategies is then further developed and formalized in a new programming notation, MODULA-90.
in this article, an ongoing research project conducted in the Computer Science department of the University of Vigo is described. Its main objective is to serve as a vehicle for learning object-oriented programming. A...
详细信息
in this article, an ongoing research project conducted in the Computer Science department of the University of Vigo is described. Its main objective is to serve as a vehicle for learning object-oriented programming. Although it is still in development, it has been successfully employed in a number of different courses. Its main characteristics are (a) support of prototype-based object orientation, which is a model of object orientation that actually wraps the class-based model;(b) future support for object persistence, which simplifies to the minimum all input/output issues;and (c) support of multiple platforms, through a portable bytecode. We think that the combination of all of these possibilities, the obtained results in its first use, and the further development of this project will lead to an interesting, useful tool which would be recommended for object-oriented teaching. The simplicity of the prototype-based model of object orientation, the dramatic decrease in complexity for programs due to the direct support of persistence, and all facilities naturally provided by the feature of multiplatform support makes it the ideal tool for learning, allowing the educator to stress on the actually important issues of object-oriented programming. (c) 2006 Wiley Periodicals, Inc.
An introduction to both automatic differentiation and object-oriented programming can enrich a numerical analysis course that typically incorporates numerical differentiation and basic MATLAB computation. Automatic di...
详细信息
An introduction to both automatic differentiation and object-oriented programming can enrich a numerical analysis course that typically incorporates numerical differentiation and basic MATLAB computation. Automatic differentiation consists of exact algorithms on floating-point arguments. This implementation overloads standard elementary operators and functions in MATLAB with a derivative rule in addition to the function value;for example, sin u will also compute (cos u) * u', w here u and u' are numerical values. These methods are mostly one-line programs that operate on a class of value-and-derivative objects, providing a simple example of object-oriented programming in MATLAB using the new(as of release 2008a) class definition structure. The resulting powerful tool computes derivative values and multivariable gradients, and is applied to Newton's method for root-finding in both single and multivariable settings. To compute higher-order derivatives of a single-variable function, another class of series objects keeps Taylor polynomial coefficients up to some order. Overloading multiplication on series objects is a combination (discrete convolution) of coefficients. This idea leads to algorithms for other operations and functions on series objects. A survey of more advanced topics in automatic differentiation includes an introduction to the reverse mode (our implementation is forward mode) and considerations in arbitrary-order multivariable series computation.
The embedding of a small but expressive language of multidimensional functional programming in a well known and widely used language of object-oriented programming leads to the combination of two radically different p...
详细信息
The embedding of a small but expressive language of multidimensional functional programming in a well known and widely used language of object-oriented programming leads to the combination of two radically different programming models. In this paper, we formally define the syntax and semantics of GLU, which can be thought of as the multidimensional core of Lucid and GLU, and we describe its implementation as a language embedded in C++. With the aid of a few examples, we argue that the marriage of the two programming models is not only compatible and natural, but also that it produces a new and interesting hybrid language. Copyright (C) 2004 John Wiley Sons, Ltd.
Computing with words (CWW) techniques have been shown to be useful in the management of imperfect information. From the programmer's standpoint, new tools are necessary toease the use of these techniques within cu...
详细信息
Computing with words (CWW) techniques have been shown to be useful in the management of imperfect information. From the programmer's standpoint, new tools are necessary toease the use of these techniques within current programming platforms. This paper presents a step in this direction by describing a general framework that supports the implementation of applications dealing with fuzzy objects. We pay special attention to the study of the object comparision problem by offering both a theoretical analysis and a simple and transparent way to use our theoretical results in practice.
The computing education community has shown a long-time interest in how to analyze the object-oriented (OO) source code developed by students to provide them with useful formative tips. Instructors need to understand ...
详细信息
The computing education community has shown a long-time interest in how to analyze the object-oriented (OO) source code developed by students to provide them with useful formative tips. Instructors need to understand the student's difficulties to provide precise feedback on most frequent mistakes and to shape, design and effectively drive the course. This paper proposes and evaluates an approach allowing to analyze student's source code and to automatically generate feedback about the more common violations of the produced code. The approach is implemented through a cloud-based tool allowing to monitor how students use language constructs based on the analysis of the most common violations of the object-oriented paradigm in the student source code. Moreover, the tool supports the generation of reports about student's mistakes and misconceptions that can be used to improve the students' education. The paper reports the results of a quasi-experiment performed in a class of a CS1 course to investigate the effects of the provided reports in terms of coding ability (concerning the correctness and the quality of the produced source code). Results show that after the course the treatment group obtained higher scores and produced better source code than the control group following the feedback provided by the teachers.
We propose an object-oriented programming library system for Science in a similar structure of NET framework. We call the system Science Code .Net. Presenting rules of thumb, we show how to enhance readability of Scie...
详细信息
We propose an object-oriented programming library system for Science in a similar structure of NET framework. We call the system Science Code .Net. Presenting rules of thumb, we show how to enhance readability of Science Code .Net. As an initial progress, several namespaces have been constructed. We explain the structure of classes in each namespace. As a challenge to the programming community, a perspective view of Science Code .Net is discussed. (C) 2008 Elsevier B.V. All rights reserved.
This paper examines long-term optimal operation using dynamic programming for a large hydropower system of 10 reservoirs in Northeast China. Besides considering flow and hydraulic head, the optimization explicitly inc...
详细信息
This paper examines long-term optimal operation using dynamic programming for a large hydropower system of 10 reservoirs in Northeast China. Besides considering flow and hydraulic head, the optimization explicitly includes time-varying electricity market prices to maximize benefit. Two techniques are used to reduce the 'curse of dimensionality' of dynamic programming with many reservoirs. Discrete differential dynamic programming (DDDP) reduces the search space and computer memory needed. object-oriented programming (OOP) and the ability to dynamically allocate and release memory with the C++ language greatly reduces the cumulative effect of computer memory for solving multi-dimensional dynamic programming models. The case study shows that the model can reduce the 'curse of dimensionality' and achieve satisfactory results.
This work addresses the time history analysis of structures subjected to dynamic loads using high performance computing environments. Structural mechanics, parallel computing, and object-oriented programming methodolo...
详细信息
This work addresses the time history analysis of structures subjected to dynamic loads using high performance computing environments. Structural mechanics, parallel computing, and object-oriented programming methodologies are integrated to design and implement frameworks for parallel and sequential transient finite element analysis (TFE++ and PTFE++). The object-oriented approach is employed to facilitate extensibility, reusability, maintainability and simplicity of the resulting software. Parallel processing concepts and algorithms are used in the design of PTFE++. An application has been developed to demonstrate the developed frameworks. It has been found that PTFE++ provides an efficient way to analyze large structural systems. (C) 2002 Elsevier Science Ltd. All rights reserved.
This paper presents a framework which implements the common software functionalities. By using this framework, software designers focus on their activity on developing efficient data structures and algorithms. The log...
详细信息
This paper presents a framework which implements the common software functionalities. By using this framework, software designers focus on their activity on developing efficient data structures and algorithms. The logic programming introduced in this framework is an efficient technology for object Constraint Language expressions. Errors made by the user when modeling a device are detected and prevented by the modeling guide.
暂无评论