Il Linguaggio Ada

calcActive())">
- ISBN/EAN
- 9788820443955
- Editore
- Franco Angeli
- Collana
- Informatica/strumenti - diretta da enrico spoletini
- Formato
- Brossura
- Anno
- 1987
- Pagine
- 320
Disponibile
53,00 €
Il linguaggio di programmazione Ada è stato progettato su invito del Dipartimento della difesa degli Stati Uniti per essere utilizzato in una gran varietà di applicazioni: calcolo scientifico, questioni gestionali, software di base, sistemi di tempo reale, package, ecc.
La concezione di questo linguaggio ha richiesto un grande impegno collettivo a cui hanno partecipato numerosi esperti del mondo della ricerca e dell'industria. Alcuni affermano che Ada sarà il linguaggio del prossimo ventennio e che soppianterà gli altri linguaggi ora affermati, altri che Ada sia già troppo indietro rispetto allo stato dell'arte. Questo libro vuole aiutare coloro che sono interessati ad Ada a formarsi un'opinione personale fondata sulla conoscenza tecnica e sui vari aspetti critici.
Il volume ha sostanzialmente la stessa struttura di un Reference, Manuale di Ada: questo consente di poter fare facili riferimenti ed evita di dover duplicare spiegazioni sul linguaggio che viene invece trattato in modo approfondito evidenziando con esempi e/o controesempi sia i punti pregevoli che i difetti e trattando in modo accurato i concetti nuovi.
Frutto dell'intensa attività critica di una ventina di persone, che costituiscono il gruppo Ada dell'Afcet e che si presentano sotto il nome collettivo di D. Le Verrand, il volume rappresenta un documento di sicuro interesse critico ed informativo in quanto alcuni degli autori hanno partecipato attivamente alla definizione o alla revisione delle specifiche di Ada.
Questa edizione italiana è lo studio più avanzato, sul linguaggio Ada, condotto dal gruppo; infatti, hanno inserito una serie piuttosto consistente di aggiornamenti che non sono presenti nelle edizioni francese ed inglese.
Maggiori Informazioni
Autore | Le Verrand Dominique |
---|---|
Editore | Franco Angeli |
Anno | 1987 |
Tipologia | Libro |
Collana | Informatica/strumenti - diretta da enrico spoletini |
Num. Collana | 8 |
Lingua | Italiano |
Indice | 1. Introduzione 1. Scopo del volume 1.1. Obiettivi 1.2. A chi è rivolto 1.3. Spirito critico 2. Gruppo e metodo di lavoro 3. Documenti utilizzati 4. Presentazione del volume 4.1. Struttura 4.2.Traduzione 4.3.Terminologia 4.4.Tipografia 5. Ringraziamenti 2. Dichiarazioni e tipi 1. Le dichiarazioni 1.1. Le dichiarazioni d'oggetto 1.1.1 Presentazione 1.1.2 Valutazione 1.2. Le dichiarazioni di numero 1.2.1. Presentazione 1.2.2 . Valutazione 1.3. Le dichiarazioni di tipo 1.3.1. Presentazione 1.3.2 . Valutazione 1.4. Ove fare dichiarazioni 2. I tipi 2.1. Classificazione dei tipi in funzione della loro struttura 2.2. I tipi predefiniti 2.3. Metodi per la costruzione di tipi e di sottotipi 2.4. Equivalenza di tipi 2.5. Assegnazione e confronto 2.6. I sottotipi 3. Costruzione di tipi 3.1. L'elencazione 3.2. La derivazione 3.3. La derivazione con limitazioni 3.4. Valutazione 3.5. Le tabelle 3.5.1. Tabelle con limitazioni 3.5.2. Tabelle senza limitazioni 3.5.3. Le limitazioni dell'indice 3.5.4. Le stringhe di caratteri 3.5.5. Valutazione 3.6 .Gli articoli 3.6.1. Gli articoli senza discriminante 3.6.2 . Gli articoli con discriminante 3.6.3 . I discriminanti 3.6.4 . Le varianti 3.6.5. Valutazione 3.7 Gli accessi 4. Conclusione 3. I tipi numerici 1. Introduzione 2. I numeri modello 2.1. Definizione ed assiomi 2.2 .Proprietà 3. Prove di programmi numerici 4. Conclusione 4. Nomi ed espressioni 1. Introduzione 2. Operandi 2.1. I litteral 2.2 .Aggregati 2.2.1 Aggregati di tipo articolo 2.2.2 Aggregati di tipo tabella 2.3 Nomi 2.3.1 Attributi 2.3.2 Oggetti 2.4 Allocatori 2.5.Nomi di funzioni 2.6 .Conversione di tipo 2.7.Espressioni qualificate 3. Operatori 3.1. Operatori logici 3.2. Relazioni e appartenenza 3.3. Operatori aritmetici 4. Espressioni statiche, espressioni universali 5. Conclusione 5 .Le strutture di controllo sequenziali 1. Le istruzioni: sequenza e struttura di blocco 1.1.Presentazione 1.2. Valutazione 2. Assegnazione 2.1. Presentazione 2.2. Esempio 2.3. Valutazione 3. istruzione if 3.1. Presentazione 3.2. Valutazione 4. Istruzione case 4.1. Presentazione 4.2. Valutazione 5. I cicli 5.1 Presentazione 5.2 Valutazione 6. Salti ed etichette 6.1 Presentazione 6.2 Valutazione 7. Altre strutture di controllo sequenziali 8. Conclusione 6. La modularità 1. I sottoprogrammi 1.1 Obiettivi auspicati 1.2 Descrizione 1.3 Esempio 1.4 Problemi vari 1.4.1 Assenza di parametri procedurali 1.4.2 Posto dei sottoprogrammi nelle parti dichiarativi 1.4.3 Separazione delle specifiche e del corpo del sottoprogramma 1.4.4 Portata dei parametri formali 1.4.5 Passaggio dei parametri 1.4.6 Parametri: tabella senza limitazioni 1.4.7 Conclusione 2. I package 2.1 Descrizione 2.1.1 Struttura 2.1.2 Contenuto dettagliato della specifica di un package 2.1.3 Inscatolamento di package 2.2 Valutazione 2.2.1 Elaborazione 2.2.2 Parte privata - tipo privato 2.2.3 Diverse possibilità d'uso 2.3 Conclusione 3. Esempi completi 3.1 Esempio 13 3.2 Esempio 14 7. Portata e visibilità 1. Portata delle dichiarazioni 1. I Fondamenti 1.2 Valutazione 2. Visibilità 2.1 Fondamenti 2.2 Valutazione 2.2.1 Portata e visibilità 2.2.2 Sovraccarico 2.2.3 Clausola use 2.2.4 Compilazione separata di sottounità 2.2.5 Parametri formali 3. Ridefinizione 3.1 Fondamenti 3.2 Valutazione 4. Durata della vita degli oggetti 4.1 Presentazione 4.2 Valutazione 5. Protezione 6. Conclusione 8. I task 1. Generalità 1.1 I tipi task 1.2 Creazione di task 1.2.1 Elaborazione della specificazione del tipo task 1.2.2 Elaborazione del corpo del tipo task 1.2.3 Elaborazione della dichiarazione d'oggetto task 1.2.4 Attivazione del task 1.2.5 Esecuzione delle istruzioni del corpo 2. Gestione del tempo 3. Comunicazione 3.1 Punti di input. Istruzione accept 3.2 Non determiniamo. Istruzione select 3.2.1 Istruzione select (dalla parte richiamata) 3.2.2 Istruzione select (dalla parte richiamante) 3.2.2.1 Richiesta di rendez-vous immediato 3.2.2.2 Richiamo limitato nel tempo 4. Durata della vita dei task 4.1 Relazioni di dipendenza 4.1.1 Caso dei task dichiarati 4.1.2 Caso dei task creati dall'allocatore new 4.2 Task compiuti e task terminati 4.3 Vita di un task 4.4 Istruzione abort 9 Interruzioni 6. Priorità 6.1 Priorità dei task e del programma principale 6.2 Priorità dei rendez-vous 6.3 Priorità delle interruzioni 7. Esempi 7.1 Comunicazione diretta anonima senza buffer 7.2 Esempi di sincronizzazione pura 7.2.1 Allocatore di risorse 7.2.2 Reciproca esclusione 7.3 Esempio di accesso controllato ad un oggetto condiviso 7.4 Comunicazione asincrona: dati direttamente accessibili dai task 7.5 Problema d'ordinamento (esempio di gestione del disco) 7.6 Una tabella di task che operano come pipe-Iine 8. Valutazione 8.1 Aspetti positivi 8.1.1 Nozione di tipo task 8.1.2 Concetto di rendez-vous 8.1.3 Interesse delle famiglie di input 8.1.4 Nozione di task passivo 8.2 Lacune ed inadeguatezze 8.2.1 Sintassi 8.2.2 Parametrizzazione e vincolo 8.2.3 Comunicazione bufferizzata 8.2.4 Selezione delle richieste di rendez-vous 8.2.5 Designazione dei task 8.2.6 Il tempo 8.3 I pericoli 8.3.1 Arbitrario ed aleatorio 8.3.2 Rami protetti e comandi protetti 8.3.3 Interbloccaggio 8.3.4 Coerenza dei dati 9. Conclusione 9. Le eccezioni 1. Presentazione del problema delle eccezioni 2. Concetti di Ada 2.1 Dichiarazione d'eccezione 2.2 Gestore d'eccezioni 2.3 Istruzione raise 2.4 Associazione dei recuperatori e delle eccezioni 2.5 Caso dei task 2.6 Eccezioni predefinite 3. Valutazione 3.1 Precisazioni apportate da IMRAI 3.1.1 Ridichiarazione delle eccezioni 3.2 Insufficienze del meccanismo delle eccezioni 3.3 Punti positivi 10. La genericità 1. Introduzione 1.1 Scopi della genericità 1.2 Stato dell'arte 2. Spiegazioni 2.1 Generalità 2.2 Regola di elaborazione delle dichiarazioni generiche 2.3 Parametri formali delle unità generiche 2.3.1 Parametri valori 2.3.2 Parametri oggetti 2.3.3 Specifica dei parametri formali "type" 2.3.4 Specifiche di parametri formali sottoprogrammi 2.4 Parametri effettivi e regole di corrispondenza 2.4.1 Regola per gli oggetti o valori 2.4.2 Regola di corrispondenza dei tipi 2.4.3 Regola di corrispondenza dei sottoprogrammi 2.5 Elaborazione degli esemplari 3. Esempi 3.1 Integrazione di una funzione 3.2 Tipo astratto generico 3.3 Procedura generica di sort di una tabella 4. Valutazione 4.1 Osservazioni sulla sintassi o sulla leggibilità 4.2 Sulle specifiche di tipi formali 4.3 Commenti sulla generazione esplicita di esemplari 4.4 Commenti su alcuni punti di [MRA] 5. Conclusione 11. La compilazione separata 1. Introduzione 2. Troncamento di un programma in lista di compilazione separata 2.1 Unità separate 2.2 Unità autonome 2.3 Contesto di compilazione d'una unità 2.4 Ordine di compilazione delle unità 2.5 Ordine d'elaborazione delle unità 3. Valutazione della compilazione separata 3.1 Troncamento di un sottoprogramma 3.2 Costruzione dei contesti di compilazione 3.3 Ordine d'elaborazione delle unità 3.3.1 Ordine d'elaborazione fissato alla compilazione 3.3.2 Ordine d'elaborazione fissato all'esecuzione 3.3.3 Ordine d'elaborazione fissato dopo le compilazioni e prima dell'esecuzione 3.3.4 Programma illegale 3.3.5 Programma erroneo 4. Conclusione 12. Mezzi d'adattamento 1. Introduzione 1.1 Utilità dei mezzi d'adattamento 1.2 Principio di separazione di proprietà astratte e concrete 1.3 Strumenti d'aiuto agli adattamenti 1.4 Le funzioni da realizzare 2. Principi del linguaggio Ada 2.1 Relazioni fra un programmatore e un ambiente di programmazione 2.1.1 Informazioni del programmatore 2.1.2 Informazioni del compilatore 2.2 Relazioni tra un programmatore ed un ambiente d'esecuzione 2.2.1 Informazioni del programmatore 2.2.2 Informazioni dell'esecutore 3. Gli attributi e il package system 3.1 Fondamenti 3.1.1 Gli attributi astratti 3.1.2 Gli attributi concreti ed il package system 3.1.3 Altri attributi 3.2 Valutazione 3.2.1 I punti positivi 3.2.2 I punti discutibili 4. I pragma 4.1 Fondamenti 4.2 Esempi di utilizzo 4.2.1 Compilazione condizionale 4.2.2 Compattazione dei dati 4.2.3 Ottimizzazione dello spazio memoria 4.2.4 Macro-istruzioni 4.3 Valutazione 4.3.1 I punti positivi 4.3.2 I punti discutibili 5. Rappresentazioni di dati 5.1 Fondamenti 5.1.1 Clausole di rappresentazione 5.1.2 Cambiamenti di rappresentazioni 5.2 Esempi d'uso 5.2.1 Dimensione delle variabili 5.2.2 Dimensione dello spazio attribuito ad una collezione 5.2.3 Dimensione dello spazio attribuito ad un tipo task 5.2.4 Delta effettivo di un numero in virgola fissa 5.2.5 Codifica di tipi enumerati 5.2.6 Rappresentazione di articoli 5.2.7 Specifica di indirizzi 5.3 Valutazione 5.3.1 I punti positivi 5.3.2 I punti discutibili 6. Specifiche di trattamento 6.1 Inserzione di codice macchina 6.1.1 Fondamento 6.1.2 Valutazione 6.2 Interfaccia con altri linguaggi 7. Rilassamento dei controlli 7.1 Fondamenti 7.1.1 Deallocazione esplicita di memoria 7.1.2 Conversione di tipi non testati 7.2 Valutazione 8. Conclusione 8.1 Costruzioni dal ruolo mal definito 8.2 Principio di separazione fra le proprietà astratte e concrete 8.3 Linguaggio centralizzatone 8.4 Ruolo del linguaggio 13. Gli input/output 1. Introduzione 1.1 Genesi di questo capitolo 1.2 Modello della nozione di input/output 1.2.1 Livello dei flussi 1.2.2 Livello dei testi 1.2.3 Livello delle periferiche 1.3 Nessuna aggiunta al linguaggio 2. Spiegazioni 2.1 Livello dei flussi 2.1. I Le primitive di gestione di un'associazione fra flusso interno e flusso esterno 2.1.2 Le primitive d'esame dello stato di un flusso 2.1.3 Le primitive d'accesso sequenziale agli elementi 2.1.4 Le primitive d'accesso diretto agli elementi 2.2 Esempio I: fusione di flussi sequenziali ordinati 2.2.1 Specifica della procedura di fusione 2.2.2 Implementazione della procedura di fusione 2.2.3 Uso della procedura di fusione per flussi sequenziali di interi 2.2.4 Uso della procedura di fusione per flussi "direct" di nomi 2.2.5 Fusione di tabelle astratte di articoli a più chiavi 2.2.6 Osservazioni generali su questo esempio 2.3 Esempio 2: trattamento di flussi sequenziali indicizzati 2.3.1 Presentazione dell'esempio 2.3.2 Analisi del problema 2.3.3 Specifica del package generico 2.3.4 Uso del package INDICE - SEQUENZIALE per la gestione d'una libreria 2.3.5 Specifica dei package usati 2.3.6 Implementazione del package INDICE - SEQUENZIALE 2.3.7 Discussione dell'esempio 2.4 Livello dei testi 2.5 Esempio 3: input-output d'articoli testuali 2.5.1 Presentazione dell'esempio 2.5.2 Soluzione proposta 2.5.3 Discussione di questo esempio 2.6 Livello delle periferiche 3. Valutazione 3.1 Livello dei flussi 3.1.1 Punti positivi 3.1.2 Critiche 3.2 Livello dei testi 3.2.1 Punti positivi 3.2.2 Critiche 3.3 Livello delle periferiche 3.4 Nessuna aggiunta al linguaggio 3.4.1 Punti positivi 3.4.2 Critica delle ragioni della scelta 3.4.3 Conseguenze sul linguaggio e sulle sue implementazioni 3.4.4 Conseguenze sull'uso degli input/output 4. Conclusioni 4.1 Ulteriori modelli per la nozione di input/output 4.2 Estensioni al linguaggio 4.3 Bilancio 14. Elementi sintattici, lessicali e testuali 1. Forme delle descrizioni del linguaggio Ada 1. I Le due forme di descrizione 1.2 La descrizione sintattica 1.2.1 Vocabolario terminale 1.2.2 Radice 1.2.3 Elementi superflui 1.2.4 Lacune 1.2.5 Presentazione 1.3 La parte informale 1.4 Entità predefinite 1.5 Programma falso 1.6 La definizione formale di Ada 1.7 Validazione 1.8 Stabilità di definizione 2. La sintassi - Aspetti testuali 2.1 Aspetti positivi 2.1.1 Organizzazione dei programmi 2.1.2 Parentesizzazione delle strutture 2.1.3 Sul punto e virgola 2.1.4 Sul vuoto 2.2 Aspetti negativi 2.2.1 Le parole riservate ed i simboli 2.2.2 Le costruzioni sintattiche 3. Aspetti lessicali 3.1 li gioco dei caratteri 3.2 La nozione di "riga" e le convenzioni di spaziatura 3.3 Identificatori, numeri e stringhe 3.4 I commenti 3.5 Note sugli analizzatori lessicali e sintattici 4. Conclusione 15. Una conclusione Bibliografia |
Stato editoriale | In Commercio |
Questo libro è anche in: