Anteprima
Vedrai una selezione di 7 pagine su 26
Appunti di "Algorithms and Parallel Computing" Pag. 1 Appunti di "Algorithms and Parallel Computing" Pag. 2
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti di "Algorithms and Parallel Computing" Pag. 6
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti di "Algorithms and Parallel Computing" Pag. 11
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti di "Algorithms and Parallel Computing" Pag. 16
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti di "Algorithms and Parallel Computing" Pag. 21
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti di "Algorithms and Parallel Computing" Pag. 26
1 su 26
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Linguaggio C++11

Il compilatore è un programma che traduce un codice scritto in un linguaggio di programmazione ad alto livello in linguaggio assemblare, generando i file oggetto e il linker è un programma che collega i file oggetto con sottoprogrammi ricorrenti (estratti dalle librerie o definiti dal programmatore), generando un file eseguibile, scritto in linguaggio macchina. Il loader è un programma che carica il file eseguibile nelle memorie di lavoro centrale del calcolatore.

L'interprete è un programma che traduce un'istruzione alla volta e la esegue direttamente.

Un programma interpretato, in esecuzione, richiede più memoria ed è meno veloce di un programma compilato; d'altra parte, un programma interpretato è più flessibile in fase di sviluppo o durante l'individuazione degli errori (debugging).

Tipi base, ordini e strutture

Il C++11 definisce alcuni tipi base ("primitive built-in types") di variabile, che includono le variabili numeriche ("arithmetic types") ed un tipo speciale, void. La dimensione di una variabile numerica di un dato tipo varie da macchina a macchina, ma viene generalmente una dimensione minima e un numero minimo di cifre significative:

  • bool
  • char/signed char/unsigned char
  • (unsigned) short int
  • (unsigned) int
  • (unsigned) long int
  • (unsigned) long long int

Il tipo bool rappresenta i valori true e false: se si converte un bool in un'altra variabile numerica si ottiene il valore 1 per true e 0 per false; se si converte una variabile numerica in bool si ottiene true per qualsiasi valore diverso da 0 e false per 0.

I tipi short int, int, long int e long long int sono con segno, così sono equivalenti a signed short int, signed int, signed long int e signed long long int.

Il tipo unsigned int può essere abbreviato in unsigned.

➁ I tipi in virgola mobile ("floating-point types") sono con segno.

Oss) Nel passare un valore di tipo in virgola mobile ad un soggetto di tipo intero ("integer type"), il valore è troncato alla sola parte intera.

Oss) Così come nelle operazioni tra int e float avviene la conversione implicita delle variabili int in float, nelle operazioni tra int e unsigned int (o due qualsiasi tipi signed e unsigned), avviene la conversione implicita nel tipo unsigned, che è considerato più potente.

➖ Rappresentazioni dei numeri sul calcolatore

➂ rappresentazioni di un numero decimale in virgola fissa, N il numero di posizioni di memoria, βN le basi {β ∈ ℕ, β ≥ 2} e K sono le cifre destinate alla parte decimale e:

x = (−1)ⁿ ⋅ Σai βi, dove ai∈{0,1,...,β−1}.

➃ Il fattore di scalatura è uguale per tutti i numeri rappresentabili in virgola fissa.

➄ rappresentazioni di un numero decimale in virgola mobile, N il numero di posizioni di memoria, βN le basi {β ∈ ℕ, β ≥ 2} e t sono le cifre destinate all'esponente e':

x = (−1)ⁿ ⋅ βⁱ ⋅ Σai βi, dove ai∈{0,1,...,β−1}.

m(x) = Σai βi e la mantissa è L ≤ e' ≤ U l’esponente.

La rappresentazione normalizzata prevede, per avere unicità, che aL ≠ 0, m = βt−1, quindi m(x) ∈ [βL−1, βt−1]. Se β=2, chiaramente aL è spesso non essere memorizzato sul calcolatore ("hidden bit").

➆ Il valore minimo in modulo che si può rappresentare nella rappresentazione normalizzata è: xmin = (1−β1−t) ⋅ βL βt−1 = βt−βL ÷ βt−1, mentre il valore massimo in modulo è: xmax = (β1−L) ⋅ βL−1 ÷ βt ÷ βt

Dettagli
Publisher
A.A. 2013-2014
26 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher SARLANGA di informazioni apprese con la frequenza delle lezioni di Algorithms and Parallel Computing e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Cremonesi Paolo.