www.neronero.it cialde lavazza

Menu Principale

Acquisti da casa

Foto Desktop

Quiz

Compara ADSL

Storia Informatica

Indice Guide

Offerte Hotels

Offerte Voli

Offerta Vacanze Offerta Autonoleggio
 

 

 

 

 

 

 

 

 

 

 

 

 




 
 

Sei qui: Home > Storia computer > Linguaggi di programmazione > Caratteristiche
           dei linguaggi

 

 

Storia dei Linguaggi di programmazione

CARATTERISTICHE

 

 

TABELLA UTILIZZO DEI LINGUAGGI DI PROGRAMMAZIONE

  

1° anno General purpose Educa

tion

Scient. matem. A.I. robot Difesa militare Simula

zioni

Mission

 critical

Comuni

cazioni

Works

tation

Web Finanza banche Business Grafica

CAD

Stati

stiche

Giochi Sist.

 op.

Object

  orient.

ADA 1977         x   x x     x   x       X-ob 
ALGOL 1958     x                            
APL 1962     x                     x      
Assembly 1940   x                            
BASIC 1964   x                   x     x    
C 1972                             x x  
C ++ 1986                         x     x x-oo
COBOL 1959                     x x          
DELPHI 1995                       x         x-oo
FORTRAN 1957     x                     x      
HTML 1989                   x              
JAVA 1995               x   x             x-oo
LISP 1960   x   x x                   x    
MODULA-2 1975   x                           x  
OBERON 1988   x             x                x-oo
PASCAL 1975   x                   x         x-oo
PERL 1986                               x  
PL/1 1965     x               x x          
PROLOG 1970 x                               x-oo
RPG 1960                       x          
SIMULA 1967           x                     x-oo
V. BASIC 1987 x x x                 x         x-oo

 


 

SCHEMA EVOLUTIVO DELLE GENERAZIONI DEI LINGUAGGI DI PROGRAMMAZIONE

 

1GL            linguaggi di Prima generazione

 

Basati sul codice macchina (in binario)

11100101

11110000

11001101

 

2GL            linguaggi di Seconda generazione

 

Simbolici di tipo Assembly

Esempi: IBM BAL, VAX Macro.

         calc: decL R5

                 pushL R5

                calls #1, recfib

                movL R0, R6

                decL R5

                pushL R5

                calls #1, recfib

                addL R6, R0

                ret

        .end

 

3GL            linguaggi di Terza generazione

 

Linguaggi procedurali, con termini in lingua inglese

I programmatori devono specificare il "cosa" e "come" desiderano mandare in output.

Esempi: COBOL, RPG, FORTRAN, Pascal, Ada, C, BASIC, PL/I.

 

4GL            linguaggi di Quarta generazione

 

Non procedurali, ma ancora basati sulla lingua inglese. Contengono dizionari di dati integrati, database relazionali dinamici, consentono rapidi sviluppi del sistema tramite anche prototipizzazioni

I programmatori (e a volte gli utenti) specificano il "cosa" dell'output desiderato, lasciando al software il compito di stabilire il "come".

 

Esempi: FOCUS, Powerhouse

; access admissions

        set report device printer

        set report device disc

        set report name AD32

        select if term = "961" and (app-status="AC" or app-status="PP")

        sort on ad-source on name

        report id name ad-source class hs-code entrance-code app-status

        footing at ad-source skip 2 "Total for: " ad-source "=" count skip 3

        final footing "Total enrollment " count

        set report nolimit

        go

 

?GL            linguaggi della prossima generazione?

 

L'evoluzione dei linguaggi di programmazione e la disponibilitΰ di tools di sviluppo non finiscono certo con la 4^ generazione. Si θ detto che la programmazione Object-Oriented rappresenta una nuova generazione di strumenti.

Lo sviluppo O-O si basa sull'uso di "oggetti" che rappresentano sia la struttura dei dati che dei processi che possono agire su di essi.

La maggior valenza degli oggetti deriva dal fatto che una volta definiti sono riutilizzabili infinite volte, riducendo drasticamente lo sforzo di programmazione.

Successive generazioni di programmi potranno apparire sempre meno vincolati ad un linguaggio di tipo tradizionale, con le sue regole grammaticali e la sua sintassi.

 

Ricky Spelta

  

 

LA CLASSIFICAZIONE DEI LINGUAGGI DI PROGRAMMAZIONE

IL LIVELLO DEI LINGUAGGI

 

1) linguaggi di basso livello

Sono tutti quelli che comunicano direttamente con il computer, utilizzando i codici operativi dello stesso processore, quindi in "linguaggio macchina".

Questo modo di programmare dΰ al tecnico la piω ampia libertΰ e potere, ma nello stesso tempo lo porta a scendere al piω basso dei livelli dei linguaggi formali, ovvero deve parlare la stessa lingua operativa della macchina, adoperando una catena molto lunga di istruzioni elementari, quindi con molta difficoltΰ di scrittura e di verifica del corretto funzionamento.

Prima della nascita dei linguaggi formali di alto livello (high-level languages) questa era l'unica maniera per fare compiere un lavoro ad un computer.

 

2) linguaggi di alto livello

Sono invece tutti quelli che fanno uso di uno pseudo-linguaggio umano, utilizzando allo scopo parole-chiave o codici operativi ispirati quasi esclusivamente alla lingua inglese.

Ovviamente ciς facilita molto sia la stesura che la rilettura di un programma, ma non mette il computer in condizione di capire direttamente cosa vogliamo.

Per ottenere il risultato finale θ dunque necessario applicare un "interprete" che traduca il nostro linguaggio simbolico e decisamente piω sintetico, in reali istruzioni di macchina.

Nel tempo l'interpretazione del linguaggio simbolico (programma "sorgente") ha messo in evidenza la lentezza causata dalla traduzione contemporanea durante lo svolgimento del calcolo e perciς si θ pensato di creare dei "compilatori" che svolgessero un ruolo molto piω completo e produttivo.

Il compilatore θ un programma (scritto in linguaggio macchina) in grado di leggere le istruzioni del sorgente, verificarne la correttezza linguistica, e sviluppare automaticamente le corrispondenti istruzioni in codice operativo di macchina (ottenendo cosμ un programma "oggetto" o "eseguibile" che dir si voglia).

In questo modo abbiamo ottenuto un valido compromesso, tra il parlare come la macchina e il parlare con la nostra lingua naturale. Ovviamente i linguaggi simbolici impongono nuove regole di grammatica e sintassi, per cui dobbiamo comunque fare uno sforzo iniziale per apprenderne le esigenze, ma dopo ci troviamo la vita piω facile perchθ con termini sintetici riusciamo a ottenere ciς che vogliamo dal computer.

 

ATTRIBUTI DEI LINGUAGGI

 

Generalmente si tende a suddividere i linguaggi ad alto livello in 3 categorie:

- imperativi

- funzionali

- dichiarativi

Perς la classificazione puς anche essere piω ampia, e soprattutto comprendere alcuni attributi particolari che ne definiscono meglio le capacitΰ.


Linguaggi Imperativi: sono composti da una sequenza di istruzioni in grado di modificare il contenuto della memoria del computer o di determinare le modalitΰ di esecuzione di altre istruzioni. Molto importante θ l'istruzione di assegnazione.

Quasi tutti i linguaggi piω comuni (RPG, Pascal, Basic, Fortran, C, Cobol, ecc.) agiscono in questo modo.


Linguaggi Funzionali: che servono a calcolare il valore di una funzione.

In un linguaggio funzionale puro l'assegnazione esplicita risulta addirittura completamente assente (si utilizza soltanto il passaggio dei parametri). In tale modello rivestono particolare importanza la ricorsione, in pratica l'utilizzo di funzioni che richiamano se stesse e, come struttura dati, la lista (sequenza ordinata di elementi).

Il piω importante rappresentante di questa categoria θ senz'altro il Lisp (LISt Processing).


Linguaggi Dichiarativi (o logici): dove il programma θ considerato come la dimostrazione della veritΰ di una asserzione.

Il sorgente θ costituito da una sequenza di asserzioni di fatti e regole.

Non θ necessario indicare esplicitamente il flusso di esecuzione, ma dato un obiettivo di partenza θ il sistema che cerca di individuare i fatti e le regole rilevanti.

Il fatto che vi sia una netta separazione tra la parte dichiarativa (il cosa fare) e la parte procedurale (il come) rende un programma scritto in un linguaggio logico particolarmente leggibile.
I linguaggi logici risultano molto adatti a risolvere problemi che riguardano entitΰ e le loro relazioni, mentre nelle normali applicazioni risultano essere di difficile utilizzo, anche perchι, comportano un modo di programmare completamente diverso dal solito.

Il linguaggio piω famoso di questo tipo θ il Prolog (PROgramming in LOGic).

 

Altri attributi dei linguaggi


Linguaggi Strutturati: la programmazione strutturata θ una tecnica il cui scopo θ di semplificare la stesura dei programmi, limitando l'uso dei controlli a pochi casi semplici, tutti con un solo ingresso e una sola uscita.

Tale metodo θ stato adottato da molti linguaggi anche preesistenti.

Ad esempio per evitare l'uso indiscriminato del famoso GOTO (salto incondizionato) sono state introdotte istruzioni di controllo strutturato del flusso, come i blocchi IF-THEN-ELSE, DO WHILE, CASE, FOR, ecc.
L'adozione di nuove regole di strutturazione non impedisce, in casi in cui sia ritenuto veramente utile, l'utilizzo dei vecchi comandi di salto (GOTO), ancora in uso, per esempio, per uscire da una routine in caso di errore.


Linguaggi Object-Oriented: il programma opera su insiemi di oggetti (insiemi di dati e regole che manipolano questi dati) che comunicano tra loro e verso l'esterno mediante messaggi.

L'Object-Oriented ha adottato nuovi concetti come l'incapsulamento, l'ereditarietΰ e il polimorfismo.
Oltre a linguaggi specializzati che implementano i principi di tale metodologia, come Smalltalk, ad esempio, sono nate delle estensioni dei linguaggi giΰ esistenti, che li integrano (ad es. C++ per il C, il Visual BASIC, Visual RPG, ecc.).


Linguaggi Event driven: per programmare in ambienti di tipo Windows θ necessario provvedere alla gestione contemporanea del possibile verificarsi di tutta una serie di eventi (movimento del mouse, click, comandi da tastiera, ecc.)

In un ambiente guidato da eventi non determinabili a priori, ma appunto "event driven" non esiste piω una sequenza determinata di comandi da eseguire, ma ad ogni evento bisogna promuovere una determinata azione.

Per questo motivo anche il linguaggio di programmazione deve poter essere in grado di gestire questi fatti segnalati dal sistema, ma non tutti i linguaggi lo sanno fare.
Il grande successo che ha riscosso il Visual Basic della Microsoft, o MS Access, derivano anche da queste loro spiccate attitudini, che permettono di creare facilmente applicazioni sotto Windows, fornendo anche la capacitΰ di governare un flusso di tipo event driven.

 

Ricky Spelta

 

  

    

DIFFERENZE TRA LINGUAGGI "STRUTTURATI" E "NON-STRUTTURATI" 

(ovvero che fanno uso del comando GOTO)

Strutturato

"Spaghetti"

START:
   PERFORM DOG
   PERFORM CAT
   PERFORM FISH
   PERFORM BIRD
   PERFORM FROG
   EXIT.

DOG:
   WALK THE DOG
   RETURN

CAT:
   PUT OUT THE CAT
   RETURN

FISH:
   FEED THE FISH
   RETURN

BIRD:
   COVER BIRD CAGE
   RETURN

FROG:
   SING TO THE FROG
   RETURN

START:
  GOTO MAMMALS
DOG:
  WALK THE DOG
  GOTO CAT
MAMMALS:
  GOTO DOG
FISH:
  FEED THE FISH
  COVER THE BIRD
  GOTO FROG
CAT:
  PUT OUT THE CAT
  GOTO FISH-AND-FOWL
FISH-AND-FOWL:
  GOTO FISH
FROG:
  SING TO THE FROG
EXIT.

(esempio di programma strutturato e non)

 

Un linguaggio puς essere definito "strutturato" solo se offre la possibilitΰ al programmatore di organizzarne il flusso in modo chiaro, con una netta distinzione tra flusso logico principale (main program), funzioni di servizio, chiamate esterne ad altri programmi o funzioni, subroutines, gestione errori separate e via dicendo.

A tale scopo il linguaggio dovrebbe presentare comandi di controllo del tipo:

IF-->THEN-->ELSE

DO (while - until)

FOR-->NEXT

CASE

GOSUB

LOOP

CALL

ecc.

 

Oltre a istruzioni di questo tipo, la strutturazione dovrebbe presentarsi con incolonnamenti progressivamente spostati verso destra, per dare l'esatta informazione dei vari livelli di profonditΰ dei suoi blocchi di istruzioni condizionate (indent delle righe).

La strutturazione ben fatta rende molto piω leggibile un programma, evita molti possibili casi non gestiti, facilita la manutenzione e richiede meno sforzo creativo. Di contro il programmatore deve preventivamente ordinare e organizzare meglio le sue idee, seguendo magari il criterio di procedere per approfondimenti successivi (metodo top-down).

 

La caratteristica di linguaggio strutturato non θ decaduta con l'avvento di linguaggi object-oriented, anzi, la complessitΰ a cui a volte arrivano questi programmi ne sollecita maggiormente una buona organizzazione strutturale, per evitare le possibili dispersioni che ne potrebbero derivare.

 

Ricky Spelta

 

  

 

 

LE DOTI DEI LINGUAGGI

In queste poche righe non ho certo la velleitΰ di affrontare e risolvere il complesso problema dei linguaggi di programmazione e del loro utilizzo migliore, ma il contenuto puς servire ai profani per comprendere e sensibilizzarsi sulla grandezza del problema, rimandando gli interessati ad altre fonti di approfondimento piω qualificate.

 

Ci sono due strade altrettanto importanti per valutare un linguaggio di programmazione:

 

- capire "cosa" sa fare il linguaggio, ovvero le motivazioni che ne hanno spinto la realizzazione, ma non alle sue origini, che magari si perdono nella notte dei tempi, bensμ nel suo stato piω recente di disponibilitΰ

 

- capire "come" lo sa fare, nel senso che molti linguaggi presentano strumenti di sviluppo analoghi tra loro, ma possono presentarsi con regole grammaticali o sintattiche anche molto diverse, oppure avere altri limiti, anche gravi, se valutati nel contesto delle nostre esigenze.

 

Oggi la scelta di un linguaggio da adottare per una certa applicazione si presenta assai vasta e complessa.

Sono finiti i tempi in cui un programmatore studiava e imparava un solo linguaggio e campava con quello per tutta la sua carriera. La conoscenza di differenti linguaggi θ indispensabile perchθ il mondo informatico tende ad ampliarsi sempre di piω, integrando in una stessa applicazione problemi che possono essere di gestione dei dati di un database, di comunicazioni remote, di accesso a Internet, di gestione della sicurezza, di controllo dei processi, di collaborazione e scambio informazioni tra varie piattaforme o tra vari sistemi operativi e via dicendo.

 

Un conto θ dovere scegliere un linguaggio per sviluppare dei giochi al computer, ben diversa la scelta per l'insegnamento universitario ed ancora diversa quella per realizzare, invece, applicazioni in ambienti aziendali. Solo per citare tre differenti approcci al problema.

 

Il piω elevato numero di programmi e di righe di codice oggi θ sicuramente legato al mondo aziendale, o commerciale o del business o del gestionale, che dir si voglia.

E' per questo motivo che anche molti linguaggi "puri", nati semplicemente per lo studio o con scopi ben piω teorici e nobili, hanno finito, prima o poi, per essere implementati  e presentati anche sul mercato del "grande business".

La domanda di sviluppatori competenti θ quindi sempre piω orientata a questa area di interesse, che non a tutte le altre.

Allora nella marea di linguaggi proponibili per lo sviluppo di applicazioni aziendali dobbiamo essere in grado di fare scelte precise e vincenti.

 

Chiariamo un altro concetto: imparare un nuovo linguaggio richiede tempo e fatica e soprattutto un buon periodo di esercitazione pratica, senza la quale non s'θ imparato un bel niente!

Sbagliare scelta, sia in termini di cultura personale che -a maggior ragione- in termini di scelta aziendale, puς costare molto caro e condannarci a proseguire per quella strada nel nostro sviluppo di programmi, non potendo buttare via tutto il lavoro giΰ fatto per ricominciare daccapo.

 

Gli elementi piω critici da valutare possono quindi riguardare:

- la standardizzazione e diffusione del linguaggio e relativa tranquillitΰ e fiducia nel fornitore, che deve offrire tutte le garanzie di proseguire nella sua evoluzione, adeguando di volta in volta il suo prodotto al rinnovarsi delle tecnologie, senza piantarci in asso, magari alla versione 0.1/beta, del suo prodotto

- le caratteristiche strutturali del linguaggio, gli strumenti che mette a disposizione e le sue doti fondamentali, ovvero: elasticitΰ, flessibilitΰ, completezza, affidabilitΰ, autodocumentabilitΰ, semplicitΰ e chiarezza, manutenibilitΰ, sicurezza, economicitΰ (rendimento in termini di tempi di scrittura e debug), e via dicendo

- la portabilitΰ del codice su varie piattaforme hardware e sistemi operativi diversi. 

 

Ognuno dei suddetti punti θ piω o meno importante e siccome non esiste il linguaggio ideale, come non esistono tante altre cose ideali, bisogna dare pesi diversi ai vari attributi, in base alle nostre specifiche esigenze.

Per esempio, in alcune circostanze la portabilitΰ di un applicativo θ fondamentale, mentre in altre situazioni puς non essere un grave problema. Teniamo anche presente che molto spesso esistono tools che alla piω disperata ci potrebbero aiutare molto a migrare da una soluzione ad un'altra.

 

Cosμ pure la manutenibilitΰ non θ sempre un requisito primario. Tutti i programmi si possono manutere, ma chiaramente in un' applicazione rivolta a paghe e stipendi o a gestire una produzione assai variabile nel tempo, questo problema puς essere cruciale, mentre in altri processi potrebbe passare in secondo ordine di importanza.

 

Al di lΰ, poi, delle caratteristiche intrinseche di ogni linguaggio di programmazione c'θ una valutazione altrettanto importante che deve essere fatta: la conoscenza giΰ acquisita. Se un linguaggio θ giΰ in uso da un certo team di lavoro, anche se non θ il linguaggio migliore, probabilmente i risultati che loro riescono ad ottenere saranno ancora piω validi di quelli conseguibili se passassero ad un nuovo linguaggio.

 

Bisogna anche pensare che l'approccio al problema della scelta θ radicalmente diverso se visto dal lato degli interessi aziendali piuttosto che da quello del giovane che vuole affrontare la sua carriera.

L'azienda ha il dovere di scegliere strade sicure e soluzioni basate su linguaggi ben diffusi, in modo da non correre rischi di trovarsi in un vicolo cieco con l'investimento o di essere posta sotto ricatto dal fornitore di software esclusivo. Il tecnico, invece, puς anche seguire i suoi gusti personali e fare scelte di specializzazioni di nicchia, rischiando qualcosa in piω, ma giocando la carta della richiesta sul mercato. Oggi, per esempio, quanta gente al mondo sa programmare (o comunque dice di saper programmare) in codice HTML? Sicuramente in tantissimi. Mentre quanti tecnici si sono specializzati in Postscript? O conoscono bene l'ASP o XML o Perl o Delphi o Visual RPG? Sicuramente molti di meno. Ma ciς non significa che non ci sia una domanda anche per quelle conoscenze.

 

Un punto che secondo me θ fondamentale nell'area delle applicazioni aziendali θ la scelta di un linguaggio che sia il piω possibile "problem oriented", ovvero che non richieda grandi sforzi di stesura del codice, ma che lasci al programmatore il tempo e la mente libera per potersi concentrare molto di piω sulle reali esigenze aziendali e la loro traduzione in programmi gestionali, piuttosto che arrovellarsi il cervello sul perchθ una certa attivitΰ del programma non funzioni.

 

Le applicazioni aziendali muovono un'infinitΰ di dati e oggi sono tutte imperniate su database relazionali. 

Il programmatore in questo campo deve dunque essere piω un fedele e sensibile interprete ed esecutore della volontΰ direzionale o della sua societΰ di servizi, che non un tecnico che si diverta a fare cose sofisticate al computer.

 

"Piω θ facile, meglio θ", dovrebbe essere il motto. Mentre purtroppo per la maggior parte degli hackers, (intesi come smanettoni), vale sempre il pensiero che "piω θ difficile e piω mi diverto".

 

Ricky Spelta

 

 

Vedi anche:

Vendite online

Corsi online

Realizzazione siti internet

 scambio link

 

Ammissione.it Test

W3design Posizionamento e realizzazione siti web

 
 

 


Introduzione alla Storia Computer e Informatica

Cronologia ed evoluzione hardware

Protagonisti e inventori

Storia Linguaggi programmazione e Sistemi Operativi

Storia computer IBM

Storia computer Microsoft

Storia computer Apple

Evoluzione Interfacce grafiche

Storia Internet e reti

Storia Linux

Approfondimenti e articoli vari su computer e informatica

Altri link sul tema dei vecchi computer

Breve corso di grafica al computer e ritocco fotografico

Glossario dei termini informatici

Storia dei Giochi e videogiochi al Computer

Corsi online e videocorsi

Racconto di Attilio Romita
"Computer, Ordinateur, Elaboratori ... Forse Cervelloni!"

 

 

ricerca altro con tema computer pc e tecnologia

 

 

Guida Computer indice argomenti di Windoweb

Acquisti PC computer

Com'θ fatto un PC

Componenti PC

Computer graphics

Distributori PC

Guida foglio di calcolo Excel

Guide PC

IBM AS/400 computer aziend.

Negozi online di Elettronica

Marche PC

Periferiche PC

Rivenditori PC- computer

Shareware

Sistemi operativi

Software per aziende

Software per PC

Software per Internet

Stampanti

Storia dei computer e dei PC

Tools di sviluppo per computer

Indice di tutte le TABELLE

Clicca qui per vedere tutti i titoli di libri e DVD su computer e pc   Libri acquistabili su computer e pc

 

Guida Tecnologie indice argomenti di Windoweb

 

 

 Selezione di libri su computer e informatica 

Bambini e computer. Alla scoperta delle Bambini e computer. Alla scoperta delle nuove tecnologie a scuola e in famiglia  
Etas
€ 18,00  
C'era una volta un computer C'era una volta un computer 
Zuddas Gianluigi, Larcher
€ 10,00  
Computer no problem. Soluzioni ai proble Computer no problem. Soluzioni ai problemi piω comuni del tuo pc  
Future Media Italy
€ 8,90  
computer partendo da zero. Vol. 1 Il computer partendo da zero. Vol. 1
Scozzari Giuseppe, Edizionifutura.Com
€ 28,50  
computer partendo da zero. Vol. 2 Il computer partendo da zero. Vol. 2
Scozzari Giuseppe, Edizionifutura.Com
€ 28,50  
Computer sicuro. La guida Symantec contr Computer sicuro. La guida Symantec contro spyware, worm, virus, spam e intrusi nel tuo PC  
Conry-Murray Andrew; Weafer Vincent, Mondadori Informatica
€ 16,20   (Prezzo di copertina € 18,00  Sconto 10%)
Cosa c'θ dentro il computer? Cosa c'θ dentro il computer?  
Schuhl Alain, Dedalo
€ 6,38   (Prezzo di copertina € 7,50  Sconto 15%)
ECDL. La patente europea del computer. M ECDL. La patente europea del computer. Manuale
Alpha Test
€ 22,80  
Fondamenti di reti di computer Fondamenti di reti di computer  
Hallberg Bruce A., McGraw-Hill Companies
€ 25,08   (Prezzo di copertina € 29,50  Sconto 15%)
libro dei piccoli computer. Telefoni, GP Il libro dei piccoli computer. Telefoni, GPS, notebook e altri dispositivi portatili  
MacRae Kyle, Mondadori Informatica
€ 15,92   (Prezzo di copertina € 19,90  Sconto 20%)
Metti le mani nel computer Metti le mani nel computer
Edibrico
€ 13,00  
mio primo computer Il mio primo computer  
Magid Lawrence J., Mondadori Informatica
€ 15,04   (Prezzo di copertina € 18,80  Sconto 20%)
patente europea del computer. Test e qui La patente europea del computer. Test e quiz. Versione Office XP. Con CD-ROM  
Pezzoni Sergio; Pezzoni Paolo; Vaccaro Silvia, Mondadori Informatica
€ 10,88   (Prezzo di copertina € 12,80  Sconto 15%)
Windows XP. Computer e internet per i ba Windows XP. Computer e internet per i bambini. Con CD-ROM  
Future Media Italy
€ 9,90  

 

 

 

Come inviare il vostro materiale

Istruzioni d'uso

Community Windoweb

  Segnala un sito

© 1999-2009 Tutti i diritti riservati

 

 

 

 

 


Guide:
 

Arte
Ambiente
Animali
Computer
Cultura
Gastronomia
Famiglia
Giochi
Internet
Lavoro
Medicina
Musica
News
Scienze
Societΰ
Spettacolo
Sport
Tecnologie
Turismo
 

Dossier:
 

Aiutiamo Amref
Calendario 2009
Cartoline San Valentino
Corso di grafica
Fumo
Guadagnare in borsa
Numeri incredibili
Ricette settimanali
Storia Informatica
Tabelle utilissime
Video Interessanti

 

Speciale:

Clipart
Foto per desktop
Google gadget

MIDI files
Quiz
Tutto cittΰ