Introduzione alla programmazione PROGRAMMAZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione alla programmazione PROGRAMMAZIONE"

Transcript

1 Introduzione alla programmazione PROGRAMMAZIONE 1

2 Introduzione alla programmazione Definizione Un algoritmo è una collezione ordinata di operazioni non ambigue e computabili che, una volta eseguite, producono un risultato e terminano in un tempo finito (An algorithm is a well-ordered collection of unambiguous and effectively computable operations that when executed produces a result and halts in a finite amount of time [Schneider and Gersting 1995].) Un algoritmo è una procedura passo passo con una rappresentazione finita destinata a produrre un certo risultato a partire da un dato input (eventualmente vuoto) 2

3 Introduzione alla programmazione Definizione Un programma per computer è la traduzione di un algoritmo nell'insieme delle istruzioni in linguaggio macchina che il computer è in grado di eseguire Osservazione Un calcolatore è in grado di eseguire solo istruzioni comprese nel linguaggio macchina della cpu che lo equipaggia 3

4 Introduzione alla programmazione Programmare significa: Identificare il problema da risolvere Definire un algoritmo A che risolva il problema Tradurre l'algoritmo in un testo scritto in una notazione particolare detta 'linguaggio di programmazione' producendo un programma P Partendo da P si dovrà arrivare ad una versione in linguaggio macchina eseguibile 4

5 Linguaggi di programmazione La modalità di passaggio dalla notazione del linguaggio di programmazione al linguaggio macchina sono di base due: - Compilazione - Interpretazione 5

6 Linguaggi di programmazione In linea generale qualsiasi linguaggio potrebbe essere oggetto di compilazione o interpretazione. Nondimeno ogni linguaggio è legato ad una delle due modalità di traduzione in linguaggio macchina e per questo motivo di parla di: linguaggi compilati linguaggi interpretati 6

7 Linguaggi di programmazione compilati In questo caso esiste un programma detto 'compilatore' in grado di effettuare la traduzione dalla notazione propria del linguaggio di programmazione ad una versione in linguaggio macchina specifico per la cpu disponibile (e al sistema operativo utilizzato). La traduzione in linguaggio macchina sarà oggetto di successiva esecuzione. 7

8 Linguaggi di programmazione compilati La compilazione non è un processo semplice e passa attraverso due passi fondamentali: Compilazione vera e propria nella quale il nostro pezzo di programma (potrebbe essercene più d'uno) viene tradotto in linguaggio macchina passando spesso per una versione assembler Unione (link) dei segmenti di codice macchina prodotti alle librerie standard di collegamento al kernel e al sistema operativo e ad eventuali altre librerie richieste dall'utente 8

9 Linguaggi di programmazione compilati hello.c #include <stdio.h> int main(int argc, char *argv[]) { printf( Hello World!\n ); } COMPILAZIONE hello.o LINK hello INPUT OUTPUT hello.o 9

10 Linguaggi di programmazione compilati Per i programmi più semplici, scritti in una manciata di file di testo, il compilatore può occuparsi facilmente di compilazione e link in un solo passaggio, in caso di programmi più voluminosi è meglio spezzare in due il processo. La compilazione e` un'attivita` pesante, la compilazione di una parte consistente di un sistema operativo puo` durare ore. 10

11 Linguaggi di programmazione compilati Le limitazioni dei compilatori (macchinosità del processo, pesantezza computazionale) sono compensate da un grande vantaggio, il codice macchina prodotto viene eseguito più velocemente di qualsiasi altro prodotto in modo alternativo. La tecnologia dei compilatori ha anche superato la capacità di un essere umano di produrre programmi efficienti programmando direttamente in assembler. 11

12 Linguaggi di programmazione interpretati L'esecuzione di un programma scritto in un linguaggio interpretato è assicurata da un 'interprete', un programma che deve essere già presente nel sistema operativo. Un interprete, come un compilatore, accetta in input un file di testo che contiene il programma ma passa direttamente all'esecuzione senza produrre un file di output in linguaggio macchina. 12

13 Linguaggi di programmazione interpretati Un interprete esegue un programma isolando, all'interno del file di testo che ne contiene la descrizione, i comandi che descrivono l'algoritmo, isolandone uno, eseguendolo e passando al successivo. Un linguaggio interpretato opera appoggiandosi al linguaggio macchina che costituisce l'interprete stesso, senza produrne di nuovo. 13

14 Linguaggi di programmazione interpretati Il funzionamento di un interprete è molto più lento del corrispondente linguaggio compilato, anche di 100/1000 volte. Il grande vantaggio degli interpreti è la flessibilità. Un programma può essere mandato in esecuzione su qualsiasi architettura hardware/software sulla quale sia presente l'interprete appropriato e questo senza passare attraverso fasi di traduzione. Basta avere una copia del file di testo che contiene il programma 14

15 Linguaggi di programmazione interpretati La classificazione tra linguaggi interpretati e compilati non è così rigida. Esistono diverse tecniche che permettono di velocizzare l'esecuzione di un interprete, normalmente al costo di una piccola perdita di flessibilità. 15

16 Linguaggi di programmazione Tra i principali linguaggi compilati: Assembler: microprogrammazione C: programmazione di sistema Fortran: programmazione scientifica, C++: programmazione di applicazioni per l'utenza finale 16

17 Linguaggi di programmazione Tra i linguaggi interpretati possiamo annoverare: Perl: gestione di sistema e di grandi quantita` di testo scritto, ambienti web Python: scientifico, ambienti grafici, gestione di sistema Cobol: business Java: applicativo, grandi progetti Php: siti web 17

18 Linguaggi di programmazione interpretati Molti linguaggi interpretati attuano una strategia molto semplice per ovviare alla mancanza di velocità: quando un'operazione è costosa in termini di tempo si crea una nuova funzionalità dell'interprete che richiama un frammento precompilato di codice macchina che possa eseguire velocemente l'operazione desiderata. I frammenti sono poi organizzati in 'librerie' di 'funzioni' da utilizzare al bisogno. 18

19 Linguaggi di programmazione interpretati Esempio Si consideri il seguente frammento di programma: N = <un numero intero> F = ComputaFattoriPrimi(N) Visto che il calcolo dei fattori primi di un numero e` un'operazione molto pesante potremmo svilupparne una versione in C, compilarla e renderla disponibile per l'interprete 19

20 Linguaggi di programmazione interpretati L'interprete, che naturalmente è un programma precompilato, viene arricchito con nuove funzioni pre-compilate. La notazione del linguaggio interpretato deve naturalmente fornire la possibilità di richiamare le funzioni pre-compilate in modo semplice. In questo senso il Python è un esempio di chiarezza pulizia concettuale. Altri due linguaggi che seguono questo schema sono Perl e PHP. 20

21 Linguaggi di programmazione interpretati Il costo di questa soluzione è naturalmente rappresentato dalla necessità di associare all'interprete una lunga lista di librerie precompilate che funzionano solo su una particolare architettura hardware/software. 21

22 Linguaggi di programmazione interpretati #!/usr/bin/python print "hello world" INTERPRETE (PYTHON) OUTPUT INPUT 22

23 Linguaggi di programmazione interpretati E` possibile una strategia mista tra compilazione e interpretazione e l'esempio principale e` il linguaggio Java. Un programma Java deve essere compilato per l'esecuzione sulla Java Virtual Machine, che altro non e` che un interprete di bytecode. Il bytecode e` un linguaggio estremamente semplice (paragonabile all'assembler) e questo fa della JVM un interprete veloce. 23

24 Assembler L'assembler è un ausilio mnemonico per evitare di scrivere direttamente in linguaggio macchina, è il linguaggio di livello immediatamente superiore al linguaggio macchina che è il solo che la CPU intende. L'assembler è specifico per ogni CPU mappandosi le sue istruzioni negli elementi operazionali di base che la CPU fornisce.

25 Simulazione di una CPU minima Definiamo un insieme minimale di istruzioni Ogni istruzione sarà memorizzata in una cella di memoria standard da 32bit La CPU è simulata attraverso un serie di macro in linguaggio C e quindi useremo un compilatore C per arrivare all'esecuzione del programma Vedremo la rappresentazione in linguaggio macchina delle istruzioni e la loro versione in assembler.

26 La CPU simulata RAM CPU R0 DATI ALU R1 : R7 B U S C1 Cn IR PC RC La ALU riconosce la prossima istruzione e chiama il Cx dedicato Programma (in linguaggio macchina)

27 Istruzioni macchina Definiamo tre tipi di istruzioni macchina Trasferimento di dati tra la RAM e i registri della CPU: carica dalla RAM nel registro e viceversa Aritmetiche: somma, sottrazione, moltiplicazione e divisione Controllo: confronto tra valori, salto condizionato in un punto del programma, fine programma.

28 Flusso del programma Le istruzioni vengono eseguite nell'ordine nelle quali sono memorizzate nella RAM. Il terzo gruppo di istruzioni (confronto tra valori e salto) permette di modificare il flusso di esecuzione e scegliere di volta in volta le istruzioni desiderate.

29 Creazione del programma Per creare il nostro programma assembler dovremo scrivere un file di testo. Il testo dovrà rappresentare le istruzioni desiderate (cioè la semantica del nostro programma) usando una specifica sintassi. Queste istruzioni saranno poi tradotte nella sintassi del linguaggio macchina dal programma compilatore del linguaggio.

30 Istruzioni di trasferimento 1/2 LAYOUT 8 bit 4 bit 20 bit CODICE-OPER. N REG. INDIRIZZO DI RAM 32 bit LOAD(REGISTRO, INDIRIZZO RAM); SINTASSI SEMANTICA Carica il valore che recupera all'indirizzo di ram dato nel registro indicato CODICE MACCHINA:

31 Istruzioni di trasferimento 2/2 LAYOUT 8 bit 4 bit 20 bit CODICE-OPER. N REG. INDIRIZZO DI RAM 32 bit STORE(REGISTRO, INDIRIZZO RAM); SINTASSI SEMANTICA Carica il valore presente nel registro dato nell'indirizzo di RAM indicato CODICE MACCHINA:

32 Istruzioni aritmetiche 1/2 Eseguono somma, sottrazione, moltiplicazione e divisione usando i registri come operandi. Restituiscono il risultato nel primo dei due registri forniti. SEMANTICA LAYOUT 8 bit 4 bit 4 bit 16 bit CODICE-OPER. N REG. N REG. INUTILIZZATI 32 bit INTADD(REGISTRO,REGISTRO); FLOATDIV(REGISTRO,REGISTRO); SINTASSI

33 Istruzioni aritmetiche 2/2 INTADD FLOATADD INTSUB FLOATSUB INTMULT FLOATMULT INTDIV FLOATDIV CODICI CODICE MACCHINA: SOMMA IL CONTENUTO DEL REGISTRO R1 E R2 (CHE DEVONO CONTENERE VALORI INTERI) E RITORNA IL RISULTATO IN R

34 Istruzioni di confronto 1/2 Confrontano il contenuto di due registri R i e R j e: Se R i < R j mette '-1' nel registro RC Se R i = R j mette '0' nel registro RC Se R i > R j mette '1' nel registro RC SEMANTICA LAYOUT 8 bit 4 bit 4 bit 16 bit CODICE-OPER. N REG. N REG. INUTILIZZATI 32 bit

35 Istruzioni di confronto 2/2 INTCOMPARE FLOATCOMPARE CODICI INTCOMPARE(REGISTRO,REGISTRO); FLOATCOMPARE(REGISTRO,REGISTRO); SINTASSI CODICE MACCHINA: CONFRONTA IL CONTENUTO DEL REGISTRO R1 E R2 (CHE DEVONO CONTENERE VALORI INTERI) E RITORNA IL RISULTATO IN RC

36 Istruzioni di controllo del flusso 1/2 Permettono di saltare ad un'istruzione arbitraria e di continuare da quella istruzione l'esecuzione. Il tutto a seconda del contenuto del registro RC e quindi sulla base dell'ultima istruzione di confronto eseguita. BRLT BRNE BRLE BRGE BREQ BRGT CODICI BRANCH CODICE MACCHINA:

37 Istruzioni di controllo del flusso 2/2 LAYOUT 8 bit 4 bit 20 bit CODICE-OPER. n.a. INDIRIZZO DI RAM 32 bit SEMANTICA BRLT A: BRLE A: BREQ A: BRGT A: BRGE A: se RC=-1 pone PC=A altrimenti PC=PC+1 se RC<1 pone PC=A altrimenti PC=PC+1 se RC=0 pone PC=A altrimenti PC=PC+1 se RC=1 pone PC=A altrimenti PC=PC+1 se RC>-1 pone PC=A altrimenti PC=PC+1 BRANCH A: pone PC=A BRLT(etichetta); SINTASSI

38 Istruzione di fine programma 1/1 SEMANTICA L'istruzione termina il programma STOP; SINTASSI LAYOUT 8 bit 24 bit CODICE-OPER. n. a. 32 bit STOP CODICE

39 Esempio di linguaggio macchina Vediamo un programma in linguaggio macchina che: trasferisce il contenuto delle 2 parole della RAM di indirizzi 64 e 68 nei registri R0 ed R1. somma i contenuti dei registri R0 ed R1. trasferisce il risultato nella parola della RAM all indirizzo 60.

40 Rappresentazione in RAM RAM RAM xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 38 8 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx DATI xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx Copia 64 in R0 Copia 68 in R1 Somma R0 e R1 Copia R0 in 60 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx PROGRAMMA xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx

41 Limiti del linguaggio macchina I programmi in linguaggio macchina sono difficili da capire, scrivere e modificare Il programmatore si deve occupare dei dettagli particolari del computer che sta usando, ad esempio deve posizionare le singole zone di memoria che contengono i valori in uso. L'assembler è una prima soluzione a questi problemi.

42 Vantaggi dell'assembler Al posto dei codici macchina ci sono LOAD, INTADD, FLOATCOMPARE, etc. Al posto degli indirizzi di RAM per i dati del programma useremo dei nomi. Al posto degli indirizzi di RAM useremo dei nomi per rappresentare anche le posizioni di interesse all'interno del programma. Questo semplifica la rappresentazione dei cambi di flusso del programma. Si distingue tra tipi di dati: interi e virgola mobile.

43 Riassunto delle parole chiave Trasferimento: LOAD, STORE. Aritmetiche: INTADD, INTSUB, INTMULT, INTDIV, FLOATADD, FLOATSUB, FLOATMULT, FLOATDIV. Test: INTCOMPARE, FLOATCOMPARE. Salto: BRLT, BRLE, BREQ, BRGE, BRGT, BRANCH. Terminazione: STOP. Inizio/Fine del testo del programma: BEGIN, END

44 Versione assembler BEGIN; INT Z; INT X = 38; INT Y = -1; LOAD(R0,X); LOAD(R1,Y); INTADD(R0,R1); STORE(R0,Z); END; INIZIO TESTO DEL PROGRAMMA DICHIARAZIONI DEGLI IDENTIFICATORI DEI DATI ISTRUZIONI SUI DATI FINE TESTO DEL PROGRAMMA

45 Osservazioni Il programma è più leggibile. Il programma non è direttamente eseguibile dalla CPU. La CPU è in grado di eseguire solo il linguaggio macchina, quindi serve una traduzione prima dell'esecuzione.

46 Esempio Vediamo un altro esempio che fa uso delle istruzioni di controllo del flusso. Il nostro programma dovrà: caricare due valori dalla RAM, sommarli e mettere il risultato in RAM al posto del maggiore dei due, se sono uguali non importa dove metto il risultato.

47 maggiore.c BEGIN; INT X=38; INT Y=9; LOAD(R0,X); LOAD(R1,Y); LOAD(R2,X); INTADD(R2,R1); INTCOMPARE(R0,R1); BRGE(maggiore); STORE(R2,Y); STOP; maggiore: STORE(R2,X); STOP; END; RISULTATO IN Y DICHIARAZIONE E INIZIALIZZAZIONE VARIABILI IN RAM CARICAMENTO NEI REGISTRI SOMMA R0 R1? STOP RISULTATO IN X

48 Esempio Vediamo un altro esempio che utilizza le funzioni di controllo di flusso per realizzare un ciclo. Il programma calcola la potenza di un numero dato X all'intero dato N e mette il risultato nella variabile 'POW'

49 FLOAT X=1.7; INT N=4; FLOAT POW; INT Uno=1; INT Zero=0; FLOAT Unofl=1.0; LOAD(R0, Zero); LOAD(R1, Uno); LOAD(R2, X); LOAD(R3, N); LOAD(R4, Unofl); potenza.c NO DICHIARAZIONI INIZIALIZZAZIONI & INIZIALIZZAZIONI CARICO I VALORI NEI REGISTRI TEST: R0 = R3? SI Ciclo: INTCOMPARE(R3, R0); BREQ(Esci); FLOATMULT(R4, R2); INTSUB(R3,R1); BRANCH(Ciclo); Esci: STORE(R4,POW); FLOATVIEW(POW); STOP; MOLTIPLICA R4 * R2 E RISULTATO R4 SOTTRAI R3 - R1 E RISULTATO R3 COPIA R4 IN 'POW' STAMPA 'POW' FINE

50 Il linguaggio C Il linguaggio C è il principale strumento per la programmazione dei sistemi operativi e, ormai, il linguaggio compilato per antonomasia. Altri linguaggi per essere compilati vengono prima tradotti in C e poi compilati con il compilatore di questo linguaggio (ad esempio il Fortran). 50

51 Il linguaggio C Questo è un esempio di programma C. #include <stdio.h> int main(int argc, char *argv) { printf( Hello World\n ); } 51

52 Il linguaggio C cosa si nota: 1) #include -> inclusione di una libreria esterna (le definizioni); 2) main() -> il nome convenzionale per indicare il punto di inizio delle istruzioni. 3) la notazione è organizzata per funzioni (non matematiche, sono liste di istruzioni) quella iniziale è la main(). 4) ogni funzione e` un blocco di istruzioni 52

53 Il linguaggio C Quella del C è una notazione particolarmente stringente come accade spesso nei linguaggio compilati. Vediamo adesso un esempio semplice di come un frammento di codice C viene tradotto in assembler. NB: è possibile chiedere al compilatore C di produrre l'assembler al posto del linguaggio macchina. 53

54 Il linguaggio C partiamo da il programma più semplice possibile: int sum(int x, int y) { return x+y; } analizziamone l'assembler prodotto. 54

55 Traduzione in assembler.lfb0:.cfi_startproc pushq %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16 movq %rsp, %rbp.cfi_def_cfa_register 6 movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl -8(%rbp), %eax movl -4(%rbp), %edx addl %edx, %eax popq %rbp.cfi_def_cfa 7, 8 ret.cfi_endproc 55

56 Usare il compilatore C Il testo del programma in codice C questo dovrà essere memorizzato in un file con nome che finisce in '.c'. Ad esempio 'mioprogramma.c' Il comando per ottenere un programma di nome 'mioprogramma' è: prompt$ cc -o mioprogramma mioprogramma.c 56

57 Avviare il nostro programma Per avviare il nostro programma in teoria basterebbe digitarne il nome sulla shell: prompt$ mioprogramma in realtà l'esecuzione funziona in questa maniera solo se il programma sta in ben specificate directory e la nostra non è compresa. Il comando diventa allora: prompt$./mioprogramma 57

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione 1 Lessico, sintassi e semantica Lessico: l insieme di regole formali per la scrittura di parole in un linguaggio Sintassi: l insieme di regole formali per la scrittura di

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1 Il CPU UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) info@stoianov.it La struttura del Calcolatore UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) CPU INPUT OUTPUT MEMORIA CENTRALE MEMORIA ESTERNA info@stoianov.it

Dettagli

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1 Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Annamaria Bria 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS www.mat.unical.it/bria/informatica2011-12.html

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1 Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/

Dettagli

Programmazione al livello del CPU

Programmazione al livello del CPU Corsi di Laurea in Biologia e Biologia Molecolare Università di Padova, AA 2012/2013 Programmazione al livello del CPU www.stoianov.it info@stoianov.it 1 Esecuzione condizionale Eseguire blocco A o blocco

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 Data: 12-10-2016 Pag: 8 10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 1. Definizioni a) Linguaggi Naturali = i linguaggi degli esseri umani Lessico = le parole che si usano Sintassi = le regole con cui si

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?

Dettagli

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Cosa è un programma. Informatica di Base -- R.Gaeta 18 Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Programmazione. Andrea Passerini Informatica. Programmazione

Programmazione. Andrea Passerini Informatica. Programmazione Andrea Passerini passerini@disi.unitn.it Informatica Linguaggi di programmazione Il calcolatore è in grado di comprendere solo istruzioni in linguaggio macchina. Il linguaggio macchina non è adatto alla

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

la traduzione dei programmi ed introduzione a Java

la traduzione dei programmi ed introduzione a Java la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere

Dettagli

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì

Dettagli

AMBIENTI DI PROGRAMMAZIONE

AMBIENTI DI PROGRAMMAZIONE AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

Dettagli

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App. Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016 Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

CONCETTI FONDAMENTALI

CONCETTI FONDAMENTALI CONCETTI FONDAMENTALI Algoritmo Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio di programmazione Programma

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Lezione 2 Conosciamo i linguaggi di programmazione In questa lezione impareremo: che cos è un linguaggio

Dettagli

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione di Cassino e del Lazio Meridionale Corso di Informatica Linguaggi di Programmazione Anno Accademico 2014/2015 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

INFORMATICA. L informatica comprende:

INFORMATICA. L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

Programmazione: Sommario

Programmazione: Sommario Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Primi passi con JFlex

Primi passi con JFlex Primi passi con JFlex Luca Chiodini Abstract Ci proponiamo di muovere i primi passi nel mondo dell analisi lessicale e della produzione automatica di un analizzatore lessicale. Verrà mostrato l uso di

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli