Results 1 -
6 of
6
Quantifying behavioral differences between C and C++ programs
- JOURNAL OF PROGRAMMING LANGUAGES
, 1994
"... Improving the performance of C programs has been a topic of great interest for many years. Both hardware technology and compiler optimization research has been applied in an effort to make C programs execute faster. In many application domains, the C++ language is replacing C as the programming lang ..."
Abstract
-
Cited by 83 (15 self)
- Add to MetaCart
Improving the performance of C programs has been a topic of great interest for many years. Both hardware technology and compiler optimization research has been applied in an effort to make C programs execute faster. In many application domains, the C++ language is replacing C as the programming language of choice. In this paper, we measure the empirical behavior of a group of significant C and C++ programs and attempt to identify and quantify behavioral differences between them. Our goal is to determine whether optimization technology that has been successful for C programs will also be successful in C++ programs. We furthermore identify behavioral characteristics of C++ programs that suggest optimizations that should be applied in those programs. Our results show that C++ programs exhibit behavior that is significantly different than C programs. These results should be of interest to compiler writers and architecture designers who are designing systems to execute object-oriented programs.
The Structure and Performance of Interpreters
- In Architectural Support for Programming Languages and Operating Systems (ASPLOS-VII
, 1996
"... Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are "slow," however, little has been documented about the performance of interpreters as a class of applications. This pa ..."
Abstract
-
Cited by 45 (1 self)
- Add to MetaCart
Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are "slow," however, little has been documented about the performance of interpreters as a class of applications. This paper examines interpreter performance by measuring and analyzing interpreters from both software and hardware perspectives. As examples, we measure the MIPSI, Java, Perl, and Tcl interpreters running an array of micro and macro benchmarks on a DEC Alpha platform. Our measurements of these interpreters relate performance to the complexity of the interpreter's virtual machine and demonstrate that native runtime libraries can play a key role in providing good performance. From an architectural perspective, we show that interpreter performance is primarily a function of the interpreter itself and is relatively independent of the application being interpreted. We also demonstrate that high-level i...
Bandit Problems
, 1985
"... A compiler writer writes a compiler for a programming language L. He/she wants to test the compiler thoroughly before releasing it to the market, so that no customer of the compiler will find any bugs. The goal of testing is to find all bugs that exist in the compiler. However, finding all bugs is a ..."
Abstract
-
Cited by 39 (1 self)
- Add to MetaCart
A compiler writer writes a compiler for a programming language L. He/she wants to test the compiler thoroughly before releasing it to the market, so that no customer of the compiler will find any bugs. The goal of testing is to find all bugs that exist in the compiler. However, finding all bugs is an extremely hard thing to do if not impossible. Therefore, the compiler writer will be satisfied if testing finds all bugs that will be found by customers. In other words, if a bug that is not found by testing is never found by a customer, then the testing is considered satisfactory. The point is that the only errors that will cause any problems are those that get caught by a customer after delivery of a supposedly debugged product, If there is an error in a combination of features that is never used, then this error will never be found. Since the resources, human, time, and money, to find errors are limited, these resources should be spent to find errors that will be found by a customer if they are not found during testing before release. A bug or an error in a compiler is either
A Design Environment for Addressing Architecture and Compiler Interactions
, 1991
"... This paper presents an environment that integrates the tasks of translating a source program to machine instructions for a proposed architecture, imitating the execution of these instructions, and collecting measurements. The environment, which is easily retargeted and quickly collects detailed meas ..."
Abstract
-
Cited by 38 (24 self)
- Add to MetaCart
This paper presents an environment that integrates the tasks of translating a source program to machine instructions for a proposed architecture, imitating the execution of these instructions, and collecting measurements. The environment, which is easily retargeted and quickly collects detailed measurements, facilitates experimentation with a proposed architecture and a compiler.
Automatic program analysis and evaluation
- In Proceedings of the 2nd International Conference on Software Engineering
, 1976
"... There is currently considerable interest in the computing community in the evaluation of computer programming. However, in order to objectively evaluate such concepts, it is necessary to undertake a thorough evaluation of the programming process itself. Most previous studies of this type have analyz ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
There is currently considerable interest in the computing community in the evaluation of computer programming. However, in order to objectively evaluate such concepts, it is necessary to undertake a thorough evaluation of the programming process itself. Most previous studies of this type have analyzed, by hand usually, a few instances of programs. This has led to some general conjectures; however, the amount of information that must be processed precludes any large scale analysis. In order to avoid this problem, an automatic data collection facility has been implemented as part of ~a PL/I compiler at the University of Maryland. This system automatically collects information on each program that has been compiled- at almost no additional cost to the user of the compiler~ This paper will describe the system and will evaluate some of the characteristics of some of the 25,000 programs that have been run since July, 1975.
The Structure and Performance of Interpreters
- In Architectural Support for Programming Languages and Operating Systems (ASPLOS-VII
, 1996
"... Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are "slow," however, little has been documented about the performance of interpreters as a class of applications. This p ..."
Abstract
- Add to MetaCart
Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are "slow," however, little has been documented about the performance of interpreters as a class of applications. This paper examines interpreter performance by measuring and analyzing interpreters from both software and hardware perspectives. As examples, we measure the MIPSI, Java, Perl, and Tcl interpreters running an array of micro and macro benchmarks on a DEC Alpha platform. Our measurements of these interpreters relate performance to the complexity of the interpreter's virtual machine and demonstrate that native runtime libraries can play a key role in providing good performance. From an architectural perspective, we show that interpreter performance is primarily a function of the interpreter itself and is relatively independent of the application being interpreted. We also demonstrate that high-level ...

