Archive for the Category » Linguaggi «

C++ Manuale di Stile di C. Pescio (parte 3°)

Friday, February 11th, 2011 | Author:
C++ Manuale di Stile

C++ Manuale di Stile - Copertina

Devo chiedervi scusa: un po’ a causa delle agogniate vacanze di natale, un po’ a causa degli impegni lavorativi per la scadenza di un articolo per cui stavo facendo gli esperimenti, non sono riuscito a tenervi aggiornati sull’iniziativa di Carlo Pescio di cui vi avevo già parlato (maggiori informazioni le trovate in questi due miei precedenti post: “C++ Manuale di Stile di C. Pescio” e “C++ Manuale di Stile di C. Pescio (parte 2°)“) relativa alla riedizione del libro “C++ Manuale di Stile” che era edito da Infomedia.

Naturalmente non vi ho aggiornato sullo step più importante: il 19 Dicembre 2010 è stata rilasciata la versione definitiva :) La versione Reloaded (come lo stesso Carlo la chiama) la potete scaricare direttamente dal link presente nel suo post.

Come sempre, per maggiori informazioni vi mando direttamente a quanto detto da Carlo:

Vi auguro una buona lettura :) .

C++ Manuale di Stile di C. Pescio (parte 2°)

Wednesday, July 28th, 2010 | Author:
C++ Manuale di Stile

Qualche mese fa ho pubblicato un post che parlava di una iniziativa, molto interessante, di Carlo Pescio: con un gruppo di volontari ha voluto vedere se fosse possibile “sistemare” l’ultima versione elettronica che aveva del testo in oggetto (che per decisioni prese ai tempi della pubblicazione da parte della casa editrice Infomedia, risultava difforme dalla versione finale stampata) in modo tal da poter avere una versione digitale del testo il più fedele possibile al libro finale.

Ora l’iniziativa sta andando avanti abbastanza speditamente e siamo arrivati a circa il 70% di revisione di questo testo :) Per maggiori informazioni vi mando nuovamente a quanto detto da Carlo nelle sue pagine ufficiali:

Cheers

C++ Manuale di Stile di C. Pescio

Wednesday, May 26th, 2010 | Author:
C++ Manuale di Stile

C++ Manuale di Stile

Scrivo questo veloce post solo per mettere al corrente chi passa da qui di una iniziativa di Carlo Pescio.

Correva l’anno 1995 e Carlo pubblicò un libro molto interessante e che è stato una pietra miliare della mia formazione informatica: “C++ Manuale di Stile” edito da Infomedia… anche se non ne è mai uscita una edizione aggiornata quanto presenta in questo libro è ancora molto attuale (su Programmazione.it potete trovare una breve recensione, che mi trova fondamentalmente d’accordo).

Ma questa è storia… la cosa importante è che Carlo ha deciso (ora che i diritti d’autore sono ritornati a lui) di iniziare un nuovo progetto collaborativo che riguarda proprio questo libro :) .

Per maggiori informazioni vi mando direttamente a quanto detto da Carlo:

Cheers

C++ & OpenMP

Monday, May 24th, 2010 | Author:

Molto spesso a causa del mio lavoro mi trovo a dover implementare particolare algoritmi euristici sviluppati dal gruppo di ricerca con cui lavoro. Altrettanto spesso queste euristiche devono essere confrontate con la controparte esaustiva (o a forza bruta) per poter stimare quali sono i reali vantaggi nell’utilizzo dell’euristica rispetto ad un approccio a forza bruta. Fondamentalmente si è interessati a confrontare il rapporto qualità della soluzione rispetto al tempo “risparmiato” al crescere della dimensione del problema. Recentemente mi è capitato di dover lavorare su un problema la cui dimensione cresceva esponenzialmente rispetto ai dati di ingresso: come è facile immaginare la ricerca di una soluzione esaustiva diventava impraticabile (considerando i tempi necessari per poterla ricavare) anche con relativamente pochi dati iniziali. Proprio per questo ho fatto una veloce ricerca per vedere se riuscivo a trovare una libreria che mi permettesse con poco sforzo di parallelizzare l’algoritmo esaustivo in modo da poter sfruttare gli otto thread paralleli (ripartiti su 4 processori) disponibili sul mio Intel core i7 Q720.

Sono stato fortunato due volte:

  • prima fortuna: mi sono imbattuto in questa API: OpenMP (The OpenMP API specification for parallel programming);
  • seconda fortuna: viene supportata sia da MS Visual C++ (dalla versione 2005) che da GCC… anche se sotto Visual C++ non è possibile utilizzare la versione più recente (la 3.0) ma solamente la (2.0).

OpenMP mi è sembrata subito una risposta interessante al mio problema iniziale e quindi ho deciso di provarla sul campo e ne sono rimasto piacevolmente soddisfatto. Non potendo riportare qui quello su cui sto lavorando (l’articolo non è ancora uscito) vi presenterò un esempio ad hoc e vedremo come “modificarlo” (operazione necessaria utilizzando la versione 2.0 di OpenMP) e analizzeremo i miglioramenti di prestazioni ottenuti.

more…

C++ & Delegate (parte seconda)

Sunday, March 08th, 2009 | Author:

Dopo quasi un mese, (forse) riesco a finire questa seconda parte 😉 Eccoci quindi a vedere se e come è possibile implementare quello che le Boost Library offrono :)

Un passo indietro e poi avanti fino alla meta

La prima parte di questo post è possibile leggerla qui: C++ & Delegate (parte prima). Se per caso non l’avete ancora letta la consiglio 😛 almeno per avere una visione completa di questo post.

Come funzionano?

Per avere un idea di come funziona questa estensione è conveniente partire con un problema semplificato. La semplificazione che consideriamo è che vogliamo ottenere un classe function che possa fare da delegate a “qualsiasi” funzione che accetti due parametri di ingresso qualsiasi e un valore di ritorno (che potrebbe essere anche void).

Naturalmente per ottenere questo risultato dovremo utilizzare una classe template, con tre argomenti:

  • R, che indica il tipo di ritorno;
  • A1, che indica il tipo del primo argomento;
  • A2, che indica il tipo del secondo argomento.

more…