Results 1 -
3 of
3
APEX -- The APL Parallel Executor
, 1997
"... APEX is an APL-to-SISAL compiler, generating high-performance, portable, parallel code that executes up to several hundred times faster than interpreted APL, with serial performance of kernels competitive with FORTRAN. Preliminary results indicate that acceptable multi-processor speedup is achievabl ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
APEX is an APL-to-SISAL compiler, generating high-performance, portable, parallel code that executes up to several hundred times faster than interpreted APL, with serial performance of kernels competitive with FORTRAN. Preliminary results indicate that acceptable multi-processor speedup is achievable. The excellent run-time performance of APEX-generated code arises from attention to all aspects of program execution: run-time syntax analysis is eliminated, setup costs are reduced, algebraic identities and phrase recognition detect special cases, some matrix products exploit a generalization of sparsematrix algebra, and loop fusion and copy optimizations eliminate many array-valued temporaries. In addition, the compiler exploits Static Single Assignment and array morphology, our generalization of data flow analysis to arrays, to generate run-time primitives that use superior algorithms and simpler storage types. Extensions to APL, including rank, cut, and a monadic operand for dyadic reduction, improve compiled and interpreted code performance.
Towards the Generation of Efficient Code from Verified Programs
, 1984
"... An investigation was made of the characteristics of computer programming languages intended for the implementation of provably correct programs and of the characteristics of programs written in these languages. It was discovered that potential run time exceptions and the necessity of providing a rig ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
An investigation was made of the characteristics of computer programming languages intended for the implementation of provably correct programs and of the characteristics of programs written in these languages. It was discovered that potential run time exceptions and the necessity of providing a rigorously correct implementation of exception handlers so dominate the potential control paths of programs written in verifiable languages that the usual code optimization techniques are ineffective. It was further discovered that the call intensive control structures of these programs, necessitated by verification constraints, also thwart optimization and lead to inefficient code. It is shown that theorems can be derived at potential exception sites which, if true, guarantee that the exception condition will never arise permitting removal of the exception path from the program’s flow graph. These theorems are proved using the automatic theorem prover which is part of the program verification system. Is is also shown that many of the routine calls contained in verifiable programs may be reduced in expense by converting parameters to global variables or eliminated completely by expanding the called routines at their call sites. Both the exception suppression and call reduction techniques reduce the complexity of the program’s call graph and facilitate conventional optimizations. Several examples are presented and the potential improvements in code size resulting from the application of these techniques are discussed.
A model for detecting the existence of unknown computer viruses in real-time
- In Proc. 5th International Computer Virus & Security Conference
, 1992
"... and prevention. This paper describesamodel for detecting the existence ofcomputer viruses in real-time. 1 1 Background Protection technologies in common use [5] are capable of preventing corruption by viruses (e.g. through mandatory access control), detecting known viruses (e.g. by searching for the ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
and prevention. This paper describesamodel for detecting the existence ofcomputer viruses in real-time. 1 1 Background Protection technologies in common use [5] are capable of preventing corruption by viruses (e.g. through mandatory access control), detecting known viruses (e.g. by searching for them), detecting speci c types of corruption as it occurs (e.g. trapping the modi cation of executable les in certain ways), and detecting corruption before it causes signi cant damage (e.g. through cryptographic checksums in integrity shells), but some points must be made concerning their limited capabilities. Any system that relies solely on access control to prevent corruption is no more secure than the individuals or policies allow it to be. Even though sound access control policies against viruses exist, the vast majority of current systems do not implement these controls, and even if these controls are in place, current implementations are

