Crea sito

Programmi o applicativi

L'informatica è l'insieme di apparecchiature e tecniche che consentono l'eleborazione automatica di dati e informazioni; cioè l'insieme delle conoscenze teoriche e pratiche che sono alla base di tale attività.

Intendiamo con Hardware tutto ciò che nel personal computer ha peso, è soggetto cioè alla legge di gravità;

con software tutto ciò che non ha peso, che costituisce quindi il contenuto informativo del sistema.

Una parte importante del software del sistema è costiuita dai programmi o applicativi: si tratta cioè di segmenti di codici che, eseguiti in sequenza, consentono di realizzare le operazioni per le quali siamo soliti utilizzare il PC (Personal Computer).

Un programma è una sequenza ordinata di istruzioni elementari, ciascuna delle quali determina la realizzazione di un'operazione elementare.

Come creare una presentazione con Power Point

Linguaggi di programmazione

I linguaggi di programmazione possono essere classificati come linguaggio ad alto livello, basso livello e linguaggio macchina.

 

Linguaggio ad alto livello

E' un linguaggio molto vicino all’uomo in quanto molte istruzioni sono la traduzione letterale dall’inglese della funzione che compiono. Ad esempio in Turbo C per stampare la frase HELLO WORLD basta scrivere la frase tra due virgolette e dentro una parentesi tonda preceduta da printf che vuol dire stampa e terminante con un punto e virgola che vuol dire che l’istruzione è finita.
Esempio:
printf(“HELLO WORLD”);
questa istruzione visualizzerà sullo schermo la frase HELLO WORLD.

Linguaggio a basso livello

E' un linguaggio intermedio nel senso che è più vicino alla macchina e non all’uomo. E’ conosciuto anche come linguaggio assembler ed è tipico di un microprocessore nel senso che ogni microprocessore ha un suo linguaggio assembler. Ad esempio alcune istruzioni del linguaggio a basso livello del microprocessore 8086 sono le seguenti:

a 100
MOV AL,3
MOV AH,5
ADD AL,AH
INT 3

Questo piccolo programma esegue la somma del contenuto del registro AL che vale 3 con il contenuto del registro AH che vale 5 e trasferisce il risultato della somma cioè il numero 8 nel registro AL.
In questo piccolo esempio si può notare che la somma tra due numeri viene eseguita come somma tra i contenuti dei registri.

Linguaggio macchina

E' il solo linguaggio che la macchina conosce, ed è una successione di zeri e di uni. In pratica nessun programmatore programma in linguaggio macchina.

HARDWARE E SOFTWARE

Il software rappresenta genericamente, l’insieme di programmi che consentono di gestire e utilizzare il computer stesso. Senza il software il computer sarebbe solo un ammasso di plastica e di metallo. Il software è dunque tutto ciò che è “soffice” e che non si può toccare.
Il software comprende:
• I sistemi operativi
• Le utility, o programmi di utilità (aggiungono funzioni di controllo a quelle di un programma o di un sistema operativo);
• I programmi per sviluppare altri programmi (compilatori, interpreti, ambienti di sviluppo e programmi di supporto per il programmatore);
• I programmi applicativi e quelli realizzati dall’utente
• I Tool (strumenti software) e più in generale, i pacchetti OPT (Office Productivity Tool)

Le categorie di software sono:
• Software di base o di sistema
• Software applicativo
Il software di base è costituito dall’insieme dei programmi che permettono di utilizzare e gestire il computer stesso.
Il software applicativo è l’insieme di tutti i programmi orientati alla soluzione di problemi specifici all’interno di particolare settori. Essi sono forniti dalla casa costruttrice del computer, oppure possono essere acquistati da aziende specializzate nella produzione.

Con il termine di HARDWARE si intende tutto ciò che nel Personal Computer ha peso, cioè i suoi componenti fisici.

Con il termine SOFTWARE si intende tutto ciò che non ha alcun peso, che costituisce quindi il contenuto informativo del sistema.

Un PROGRAMMA è una struttura ordinata di istruzioni, ciascuna delle quali realizza un'operazione elementare.

Il software viene distinto in software di base e software applicativo.
La differenzatra i due tipi di software è fondamentale:

il SISTEMA OPERATIVO fornisce tutte le informazioni e svolge tutte le attività utili a far funzionare il computer, mentre il SOFTWARE APPLICATIVO, appoggiandosi su quello di sistema, consente all'utente di eseguire particolari attività impartendo le proprie istruzioni.

Entrambi i tipi di software sono continuamente aggiornati e migliorati dai produttori: ogni loro nuovo lancio sul mercato rappresenta la nuova versione , o release, che in genere si distingue dalla precedente grazie ad un numero progressivo.

Ad esempio il sistema operativo della Microsoft, cioè Windows, è iniziato con:
Windows 95,
Windows 97,
Windows 2000,
per poi passare a Windows XP, Windows Vista e adesso l'ultima versione nata nel 2010, Windows 7.

Windows 7 cerca in tutti i modi di venirci incontro, offrendoci sempre più modi per ottenere un determinato risultato: da un lato conserva tutti i metodi ereditati dal mondo di Windows XP e Windows Vista, ma dall'altro offre tanti nuovi piccoli e grandi strumenti che, complessivamente, aumentano drasticamente la rapidità di azione.

Algoritmo

Prima di iniziare un programma bisogna eseguire il suo algoritmo o pseudocodifica e successivamente il suo Flow-Chart.

Un algoritmo è un insieme di istruzioni che conducono a risolvere un determinato problema, non necessariamente di natura matematica.

Esempio:

Vogliamo scrivere l'algoritmo che ci permette di calcolare la somma C=A+B

 

Algoritmo della somma:

- Inizio

-Inserire il  numero A

-Leggere il numero A

-Inserire il numero B

-Leggere il numero B

-Calcolare la somma tra A e B

- Assegnare il risultato della somma alla variabile C

-Stampare il risultato

Fine

 

ALGORITMO

Esempio di problema generico:

“ Dato un distributore automatico e un gettone, prelevare una bibita”.

La sequenza delle operazioni che portano al completamento dell’obiettivo è la seguente:

Inizio:

1) Verificare che il distributore sia in funzione (luce verde accesa);

2) In caso positivo, inserire il gettone nell’apposita fessura;

3) Selezionare una bibita tra quelle che presentano una luce rossa (distributore pieno);

4) Attendere la discesa della bottiglia;

5) Prelevare la bottiglia.

Fine

Questo è uno dei tanti problemi rappresentabili attraverso una sequenza ordinata di operazioni elementari.

Il Flow-Chart

Il Flow-Chart è la riproduzione dell'algoritmo di un problema tramite dei simboli:

- Il cerchio viene utilizzato per iniziare o finire il programma

- Il rettangolo per elaborare le istruzioni

- Il rombo per eseguire un controlllo o una selezione

-Il parallelogramma per le istruzioni di I/O

Struttura sequenziale

La struttura sequenziale svolge le operazioni una di seguito all’altra:

esempio:

Inizio

1) esegui istruzione 1

2) esegui istruzione 2

3) esegui istruzione 3

4) ………………….

5) Esegui istruzione n

Fine 

Struttura di selezione binaria

Struttura di selezione multipla

Modello di Von Neuman

 ESCAPE='HTML'

La struttura interna di un computer segue lo schema generale della macchina di Von Neumann.

Un Personal Computer (che abbrevieremo con PC) è costituito da un'unità centrale, posta in un contenitore metallico detto CASE, e da una serie di componenti esterni che sono connessi per mezzo dei cavi all'unità centrale.

Dai dispositivi di ingresso(ad esempio la tastiera o il mouse) vengono prelevate le istruzioni, che attraverso la CPU vengono elaborate.
La CPU (Central Processing Unity) è il cuore del computer e ad esso è affidato il controllo di tutta la macchina.
Le istruzioni vengono inviate dalla CPU alla ALU (Aritmetic Logic Unity) per essere elaborate.
La ALU esegue tutte le operazioni e i dati o i risultati attraverso la CPU vengono inviati in memoria o prelevate dalla memoria.
A questo punto sempre la CPU invia i dati ai dispositivi di uscita (ad esempio lo schermo o la stampante) per comunicarli al mondo esterno.

Quasi tutti i microprocessori funzionano con questo modello, tranne quelli più moderni che funzionano con il modello di HARVARD.

 ESCAPE='HTML'

ARCHITETTURA DI HARVARD

L'architettura di Von Neumann utilizza la medesima memoria sia per i dati che per le istruzioni.

Questa architettura:

-E' utilizzata di solito per processori general prupose

- Prevede un BUS UNICO tra CPU e memoria

- RAM (DATA MEMORY) e PROGRAM MEMORY devono quindi condividere lo stesso BUS, e quindi sia i dati che le istruzioni dei programmi devono avere la stessa lunghezza.

 Tutto ciò crea un COLLO DI BOTTIGLIA : il fatto di dover condividere un bus unico fa sì che per completare una istruzione siano necessari 2 accessi in memoria ( uno in RAM e uno in Program Memory) per cui si ha:

                                        

                                               una istruzione ogni 2 cicli di macchina.

 

GESTIONE DELLA MEMORIA CON L'ARCHITETTURA DI HARVARD

L'architettura di HARVARD si differenzia da quella di VON NEUMANN perchè la memoria dati è separata dalla memoria di programmi, cioè separa i dati dalle istruzioni. Tutto questo è ben noto al programmatore.

Questa architettura:

- E' utilizzata di solito per processori RISC (cioè con processori che hanno un ridotto numero di istruzioni), come ad esempio i PIC (Peripherical Interface Control)

- Prevede 2 BUS separati tra CPU, Program Memory e Data Memory

- RAM (Data Memory) e ROM ( Program Memory) possono avere parole di lunghezza diversa

Esempio: Alcuni PIC possono avere una RAM di 8 bit e una ROM di 12, 14 o 16 bit.

La CPU può effettuare un accesso in RAM e uno in ROM contemporaneamente e sfruttando tecniche di pipeline si può arrivare ad eseguire :

                                            

                                           una istruzione ogni ciclo macchina.

 ESCAPE='HTML'

Confronto tra architettura di Von Neumann e architettura Harvard

L'architettura di Von Neumann (o architettura Princeton) ha quindi:

-Vantaggio: flessibilità

-Svantaggio: lentezza, scarso parallelismo.

- Adatta per architetture general purpose

invece

l'architettura Harvard ha:

-Vantaggio: velocità, maggiore parallelismo negli accessi.

- Sicuramente più adatta a macchine RISC (ridotti set di istruzioni) e ad applicazioni Embedded

- Svantaggio: maggiori risorse ( Più memorie e più canali di comunicazioni).