Programming language concepts 2/E
Programming language concepts 2/E
Compiling C for vectorization, parallelization, and inline expansion
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Limits of instruction-level parallelism
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
ACM SIGAda Ada Letters
Pointer target tracking—an empirical study
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Vectorizing C compilers: how good are they?
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Experience compiling Fortran to program dependence graphs
Software—Practice & Experience
Interprocedural alias analysis: implementation and empirical results
Software—Practice & Experience
C vs Ada: arguing performance religion
ACM SIGAda Ada Letters
Optimizing procedure calls in block-structured languages
Software—Practice & Experience
Communications of the ACM
Ada impacts on a second generation project
TRI-Ada '90 Proceedings of the conference on TRI-ADA '90
Advanced compiler design and implementation
Advanced compiler design and implementation
Building an optimizing compiler
Building an optimizing compiler
Analyzing aliases of reference formal parameters
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Software Engineering with ADA
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
An efficient algorithm for the run-time parallelization of DOACROSS loops
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
The Impact of Ada on MIS Applications
Ada-Europe '93 Proceedings of the 12th Ada-Europe International Conference
Parameter-Induced Aliasing and Related Problems can be Avoided
Ada-Europe '97 Proceedings of the 1997 Ada-Europe International Conference on Reliable Software Technologies
The Effects of the Precision of Pointer Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
A Case Study in Language Design: Euclid
Program Construction, International Summer Schoo
Computer
Hi-index | 0.00 |
Parameter-induced aliasing means that overlapping areas of memory are associated with different identifiers causing assignments to one of them to have the unexpected effect of also changing the other's value. The disadvantages of aliasing for most aspects of programming languages have been known for decades and it is reported that aliasing occurs quite often when programming in languages like C or Fortran. In contrast, our examination of 173 MB real-world Ada code with a total of 93690 subprogram calls revealed less than one alias pair per 10000 lines of code. Further code inspection showed that most alias pairs could have been avoided. The rare occurrence of aliasing may be one reason for the low error rate frequently reported for Ada programs. This paper presents the methods and results of our analysis. Further, it discusses two approaches to forbid aliasing by language rules and evaluates the usability of our alias-free "named container" model suggested earlier.