ADT

Materie:Appunti
Categoria:Informatica
Download:101
Data:25.07.2001
Numero di pagine:3
Formato di file:.doc (Microsoft Word)
Download   Anteprima
adt_1.zip (Dimensione: 4.69 Kb)
trucheck.it_adt.doc     24 Kb
readme.txt     59 Bytes


Testo

LA PROGETTAZIONE DI TIPI DI DATI ASTRATTI

ADT(Abstract Data Type)

- Cos’è un ADT
- Cosa significa Struttura Astratta
- Cosa significa Implementare un ADT

TIPI DI DATI E STRUTTURE DATI:
Un tipo di dati (Data Type) è un'entità caratterizzata da un dominio di valori ammessi e da un
insieme di operatori definiti su questi valori.
In ogni linguaggio sono presenti tipi predefiniti che vengono chiamati tipi semplici ( simple types).
Tale denominazione deriva dal fatto che vengono considerati atomici, cioè dati che non sono costituiti da parti.
Array, String, Record, File sono chiamati tipi strutturati ( structured type).
Un tipo di dato strutturato ( o struttura dati) è una raccolta di oggetti che ha le caratteristiche di:
1- poter essere scomposto in un insieme di elementi componenti ognuno dei quali sia o semplice (atomico) o scomponibile in un’altra struttura dati;
2- Includere un insieme di associazioni o relazioni (strutture) che coinvolgono gli elementi componenti.

PROCEDIMENTO DI ASTRAZIONE:
Un’istruzione in Pascal eseguita su un dato di tipo semplice qualsiasi x come la Writeln (x); attiva una grande quantità di azioni da parte del compilatore Pascal e del sistema operativo. I dettagli del codice macchina sono nascosti al programmatore che utilizza l’astrazione Writeln, cioè non c’è il controllo diretto e dettagliato delle operazioni.
E’ quindi più chiaro agire e pensare con le astrazioni di un dato che non con i dettagli di implementazione nascosti. Si può quindi concludere che parlare di livello di dettaglio per dati o sottoprogrammi equivale a definire il livello di astrazione a cui si intende operare.
ADT è una struttura dati progettata mediante una metodologia che astrae dalle informazioni di dettaglio

PROGETTAZIONE DI UN ADT:
Significa definire gli elementi componenti, la loro struttura relazionale (cioè il legame che c’è tra le componenti), il dominio e le operazioni ammesse.

IMPLEMENTAZIONE DEL TIPO STRINGA
Fase di codifica della rappresentazione fisica delle funzioni individuate nelle specifiche.

La specifica 1.0 definisce l'ADT stringa, è un documento che funge da manuale per tutti quelli che devono scrivere un programma con il nuovo tipo di dati.
Il programmatore che intende realizzare il progetto deve scegliere il linguaggio di implementazione con il quale si codificherà il nuovo ADT. Nella scelta del linguaggio di progettazione di ADT si devono rispettare dei vincoli:
1.il linguaggio deve permettere la codifica di procedure e funzioni;
2.il linguaggio deve consentire di codificare e compilare librerie separate di procedure.
Tutto ciò consente di operare la netta distinzione tra utente e programmatore.
Il linguaggio Pascal utilizza lo strumento delle Unit che soddisfa il secondo vincolo e consente di distinguere la parte pubblica del progetto Adt da quella del codice oscurato all'utente; il linguaggio C invece dispone dello strumento del file Header che ha ruolo analogo.
Un ADT è un oggetto dotato di attributi e metodi, questo è uno dei motivi per cui più avanti si introdurrà la codifica in C++ la quale si adatta meglio a questo metodo di progettazione.
Il progetto di implementazione si divide in due fasi logiche e cronologiche distinte:
• Scelta della rappresentazione fisica da dare all'ADT;
• Codifica della libreria che realizza il nuovo tipo e i suoi operatori.
Rappresentazione dell'ADT vuol dire scegliere il modo più adatto per dichiarare il nuovo tipo Stringa, cioè quali dati devono essere utilizzati per realizzare una lista lineare di caratteri e per rendere più efficiente le operazioni definite dalle specifiche.
Una prima scelta con il limite massimo di 80 caratteri potrebbe essere quello di scegliere un array,che ha il vantaggio di avere un indice interno associato a ciascuna componente e quindi permette lo scorrimento dei singoli caratteri.
Una seconda scelta potrebbe essere l'utilizzo del tipo Record, oppure far uso di puntatori (pointer o link).
Nel listato in Pascal la sezione interface coincide con la parte visibile all'utente detta anche parte pubblica del tipo string, mentre la sezione implementation è il codice vero e proprio che rimarrà oscurato all'utente.
I vantaggi del metodo di progettazione sono: semplicità, integrità e indipendenza dell'implementazione.

Esempio