<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <link rel="stylesheet" type="text/css" media="all" href="stylesheet.css">
  <title>Abstrakte Datentypen</title>
</head>
<body>
  <span id="menu"><a href="index.php">zurück zur Liste</a></span>
  
  <div id="buttons">
    <form action="edit.php" method="POST">
      <input type="hidden" name="filename" value="<?php echo $_SERVER['SCRIPT_FILENAME']?>">
      <p>
        <input type="submit" value="Seite bearbeiten">
      </p>
    </form>
  </div>
  
  <h1>Abstrakter Datentyp (ADT)</h1>

  <h2>Anmerkungen</h2>
Eng verknüpft mit dem Begriff der Schnittstelle ist das Konzept des abstrakten Datentyps (ADT). Ein ADT besteht aus<br><br>

    * einer Menge von Objekten, und<br>
    * einem Satz von Operationen auf dieser Menge, sowie<br>
    * einer genauen Beschreibung der Semantik der Operationen.<br><br>

Das Konzept des ADT ist unabhängig von einer Programmiersprache, die Beschreibung kann in natürlicher Sprache abgefasst werden.<br><br>

Der ADT beschreibt <i><b>was</i></b> die Operationen tun, aber nicht <i><b>wie</i></b> sie das tun. Getreu dem Prinzip der versteckten Information ist die Realisierung nicht Teil des ADT.<br><br>

Vom Standpunkt des Abstraktionsgedankens aus ist der ADT ein mächtigeres Konzept als die Funktion.<br><br>

<b>Man unterscheidet</b><br>

* konkrete Datentypen: als Datentypen, die im allgemeinen aus Basisdatentypen konstruiert werden.<br>
* abstrakte Datentypen: als Beschreibung von Schnittstellen zu Datenstrukturen mit ihren Operationen, die unabhängig von ihrer Implementation (in einer konkreten Programmiersprache) vorgenommen wird.<br><br>

Ein abstrakter Datentyp stellt in der Regel eine Zusammenfassung dar, z.B. als Programmmodul. Dabei werden folgende allgemeine Prinzipien berücksichtigt:<br><br>
* <b>Kapselung</b>: Die Operationen des Datentyps werden über eine wohldefinierte Schnittstelle benutzt.<br>
* <b>Geheimnisprinzip</b> (Information Hiding): Die interne Realisierung bleibt dem Anwender verborgen.<br><br>

<b>Anderes ausgedrückt</b>:<br>
Ein abstrakter Datentyp (ADT) ist ein Schema, zur Bildung geschützter Variablen.<br><br>

<b>Ein ADT besteht aus</b>:<br><br>

* dem Namen des Typs, dessen innere Struktur nicht sichtbar ist.<br>
* der Menge der zulässigen Operationen auf Objekten dieses Typs<br><br>

  <h2>Fragen</h2>
  <h2>Links</h2>
  
</body>
</html>