The authors look at the changes occurring in computer system design, the rise of heterogeneous computing, and the effects these changes have on high-performance computing.
The authors look at the changes occurring in computer system design, the rise of heterogeneous computing, and the effects these changes have on high-performance computing.
In the sequential model of programming, instructions in a program are executed sequentially. Existing, programming languages are mainly designed for the sequential model. As the programming paradigm shifts from the se...
详细信息
ISBN:
(纸本)9783642030949
In the sequential model of programming, instructions in a program are executed sequentially. Existing, programming languages are mainly designed for the sequential model. As the programming paradigm shifts from the sequential to distributed computing, existing sequential programming languages have their limitations. Nevertheless, the sequential languages are the languages which most of programmers are most familiar with. One of the motivations of this research is to implement a framework to support the implementations of distributed applications using Sequential programming languages Such as C/C++, COBOL, and Java. In this paper, we present an implementation of a framework for open distributed programming. Allowing programmers to write distributed programs in their favorite sequential programming languages makes the programming paradigm very unique to the existing programming paradigms.
Various forms of virtualization play key roles in the construction and usage of diverse system artifacts ranging from modem compilers to hardware migration to mobile computing. Virtualization is also a powerful concep...
详细信息
ISBN:
(纸本)9781605583815
Various forms of virtualization play key roles in the construction and usage of diverse system artifacts ranging from modem compilers to hardware migration to mobile computing. Virtualization is also a powerful concept on cognitive grounds, requiring considerable abstraction skills and modeling abilities. We present a methodology, a software tool, and a set of instructional resources designed to expose students to virtual machines, focusing on both abstraction and implementation issues. An early version of our methodology appeared in a book form [4] in which we describe how to build a complete computer system - hardware and software - in one semester. Recently we've re-written our VM emulation software and consolidated all our VM materials into a web site that supports a stand-alone module on virtual machines [5]. This module can be plugged into many system-oriented CS courses. All the resources that we present are freely available in open source and are presently used successfully in several universities.
Java developers commonly follow numerous coding guidelines—such as minimizing accessibility, creating copies of mutable inputs, and preventing the unauthorized construction of sensitive classes—to ensure that their ...
详细信息
Java developers commonly follow numerous coding guidelines—such as minimizing accessibility, creating copies of mutable inputs, and preventing the unauthorized construction of sensitive classes—to ensure that their programs are safe. Various subtleties related to each guideline could lead to unexpected behavior, and ultimately to security vulnerabilities. Java developers can safely account for these subtleties to prevent attacks. This article is part of a special issue on Security for the Rest of Us.
It's difficult to create simple, correct software with current programming languages. They are unnecessarily complex. This is a plea for less softness and for safer, simpler programming languages.
It's difficult to create simple, correct software with current programming languages. They are unnecessarily complex. This is a plea for less softness and for safer, simpler programming languages.
Computing's history has been driven by many good and original ideas, but a few turned out to be less brilliant than they first appeared. Much can be learned from analyzing not only bad ideas and past mistakes, but...
详细信息
Computing's history has been driven by many good and original ideas, but a few turned out to be less brilliant than they first appeared. Much can be learned from analyzing not only bad ideas and past mistakes, but also good ones. After all, thorough self-critique is the hallmark of any subject claiming to be a science.
This work analyzes the performance of high-precision interconnect simulation tools on refined meshes with guaranted accuracy. On the one hand, the integrated circuits are subject to an ongoing miniaturization which re...
详细信息
ISBN:
(纸本)9789077381304
This work analyzes the performance of high-precision interconnect simulation tools on refined meshes with guaranted accuracy. On the one hand, the integrated circuits are subject to an ongoing miniaturization which results in ever increasing computing power. On the other hand, the simulation of these integrated circuits demands more sophisticated simulation methodologies such as better resolution of geometrical features or more complex surface topography. We show that modern microprocessor architectures and memory hierarchies impose performance limits on the simulation time.
Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process. This paper describes a controlled experime...
详细信息
Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process. This paper describes a controlled experiment for evaluating an important aspect of TDD: In TDD, programmers write functional tests before the corresponding implementation code. The experiment was conducted with undergraduate students. While the experiment group applied a test-first strategy, the control group applied a more conventional development technique, writing tests after the implementation. Both groups followed an incremental process, adding new features one at a time and regression testing them. We found that test-first students on average wrote more tests and, in turn, students who wrote more tests tended to be more productive. We also observed that the minimum quality increased linearly with the number of programmer tests, independent of the development strategy employed.
In the paper a new approach for modeling Java program variants (versions) is proposed, which is focused on increasing the level of software reuse, rather than on enriching data model. The proposed language called Java...
详细信息
ISBN:
(纸本)1932415513
In the paper a new approach for modeling Java program variants (versions) is proposed, which is focused on increasing the level of software reuse, rather than on enriching data model. The proposed language called JavaContexts provides various mechanisms for object (class) persistency, thus it needs an underlying database system for reliable and efficient object storage and access. In the approach proposed, a program (database application) is composed of a program body and a set of logically independent program contexts. The program body contains global classes. Each program context contains exactly one variant of every class not belonging to the program badly called a context class. Variants of the same class belonging to different contexts need not be different. During the program execution only one context is active. It may be, however, changed dynamically at the program run-time. Thus, at a particular moment of time the program is viewed as a sum of the program body and exactly one program context. JavaContexts preserves Java homogeneity, since all new concepts proposed in this paper are modeled as classes and objects.
programming languages are a part of the core of computer science. Courses on programming languages are typically offered to junior or senior students, and textbooks are based on this assumption. However, our computer ...
详细信息
ISBN:
(纸本)9781595930248
programming languages are a part of the core of computer science. Courses on programming languages are typically offered to junior or senior students, and textbooks are based on this assumption. However, our computer science curriculum offers the programming languages course in the first year. This unusual situation led us to design it from an untypical approach. In this paper, we first analyze and classify proposals for the programming languages course into different pure and hybrid approaches. Then, we describe a course for freshmen based on four pure approaches, and justify the main choices made. Finally, we identify the software used for laboratories and outline our experience after teaching it for seven years.
暂无评论