Expression templates in Ada 95

From LRDE

Abstract

High-order matrix or vector expressions tend to be penalized by the use of huge temporary variables. Expression templates is a C++ technique which can be used to avoid these temporaries, in a way that is transparent to the user. We present an Ada adaptation of this technique which - while not transparent - addresses the same efficiency issue as the original. We make intensive use of the signature idiom to combine packages together, and discuss its importance in generic programming. Finally, we express some concerns about generic programming in Ada.


Bibtex (lrde.bib)

@InProceedings{	  duret.01.ae,
  author	= {Alexandre Duret-Lutz},
  title		= {Expression templates in {A}da~95},
  booktitle	= {Proceedings of the 6th International Conference on
		  Reliable Software Technologies (Ada-Europe)},
  year		= 2001,
  series	= {Lecture Notes in Computer Science Series},
  volume	= 2043,
  address	= {Leuven, Belgium},
  month		= may,
  publisher	= {Springer-Verlag},
  pages		= {191--202},
  note		= {Best Paper Award},
  abstract	= {High-order matrix or vector expressions tend to be
		  penalized by the use of huge temporary variables.
		  Expression templates is a C++ technique which can be used
		  to avoid these temporaries, in a way that is transparent to
		  the user. We present an Ada adaptation of this technique
		  which - while not transparent - addresses the same
		  efficiency issue as the original. We make intensive use of
		  the signature idiom to combine packages together, and
		  discuss its importance in generic programming. Finally, we
		  express some concerns about generic programming in Ada.}
}