Skip to main content

Sind abstrakte Datentypen in der Numerik einsetzbar? Eine C++ Studie über Abstraktion und Effizienz

  • Chapter
Software Engineering im Scientific Computing
  • 76 Accesses

Zusammenfassung

Abstraktion ist ein wesentlicher Faktor guten Software Engineerings. Eine der einfachsten Abstraktionsformen ist das Programmieren mit abstrakten Datentypen. Dadurch ergeben sich kürzere Entwicklungszeiten, größerere Sicherheit und besserer Wartbarkeit sowie eine bessere Eignung für Prototypenentwicklung. All diesen Vorteilen stehen zwei Nachteile gegenüber:

  • ● Der Programmier- bzw. Designaufwand ist anfänglich höher. Dies kann allerdings zuweilen auch ein Vorteil sein.

  • ● Da die Datenabstraktion Zugriffe über Punktionen erzwingt, muß zuweilen mit Effizienzverlusten gerechnet werden. Zusätzlich ist nicht jede Programmiersprache mächtig genug, um abstrakte Datentypen realistisch einsetzbar zu machen. Ein Übergang von solchen Sprachen (wie etwa Fortran77) zu besser strukturierten (wie etwa C++ oder ADA) kann weitere Effizienzverluste mit sich bringen.

Dieser Beitrag soll ausleuchten, inwiefern im Bereich technisch wissenschaftlichen Rechnens die genannten Vorteile einen potentiellen Effizienzverlust vertretbar erscheinen lassen. Die Ergebnisse haben ihren Ursprung in praktischen Erfahrungen mit Datenabstraktionen. Bei Siemens ZFE (Zentrale Forschung und Entwicklung) wurden Algorithmen aus dem Bereich der Schaltkreissimulation unter Nutzung abstrakter Datentypen in C++ implementiert und mit den existierenden Fortran77-Programmen verglichen.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 29.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 39.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Literaturverzeichnis

  1. C. Berger. Design and Implementation of Sparse Block Matrices in C++. Technical report, Technical University of Munich, 1994.

    Google Scholar 

  2. J. Barton and L. Nackman. Scientific and Engineering C++. Addison Wesley, 1994.

    Google Scholar 

  3. J. Coplien. Advanced C+ + Programming Styles and Idioms. Addison-Wesley, 1992.

    Google Scholar 

  4. J. Dongarra, A. Lumsdaine, X. Niu, R. Pozo, and K. Remington. A Sparse Matrix Library in C++ For High Performance Architectures. Second Annual Object Oriented Numerics Conference, Sunriver, Oregon, 1994.

    Google Scholar 

  5. J. Knopp. SPARSE++: Hiding Data Representations Does not Exclude Efficiency. Second Annual Object Oriented Numerics Conference, Sunriver, Oregon, 1994.

    Google Scholar 

  6. J. Knopp. On the Benefits of Abstract Data Types in Sparse Matrix Computations. TOOLS USA, 1995.

    Google Scholar 

  7. S. Meyers. Do not have concrete classes inherit from concrete classes! C+ + Report, July/August 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Wolfgang Mackens Siegfried M. Rump

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer Fachmedien Wiesbaden

About this chapter

Cite this chapter

Knopp, J. (1996). Sind abstrakte Datentypen in der Numerik einsetzbar? Eine C++ Studie über Abstraktion und Effizienz. In: Mackens, W., Rump, S.M. (eds) Software Engineering im Scientific Computing. Vieweg+Teubner Verlag, Wiesbaden. https://doi.org/10.1007/978-3-322-85027-0_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-322-85027-0_3

  • Publisher Name: Vieweg+Teubner Verlag, Wiesbaden

  • Print ISBN: 978-3-322-85028-7

  • Online ISBN: 978-3-322-85027-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics