Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

49
Fabio Aiolli PROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software

Transcript of Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Page 1: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

1

PARTE 4

La Macchina Software

Page 2: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

2

Macchina Hardware e Macchina Software

macchinahardware

Agli albori dell'informatica, si programmava in binario, cioe` in linguaggio macchina, "scrivendo" i programmi direttamente nella RAM

sistema operativo

applicativi

Adesso ci sono vari livelli e ogni livello rappresenta il supporto alla programmazione per il livello sovrastante

Page 3: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

3

Istruzioni (funzionalita’) elementari

Programmi complessi

Istruzioni di alto livello

Page 4: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

4

macchina hardware

utente

macchina software

"traduce" per l'utente in linguaggio macchina

Page 5: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

5

Software• La CPU è in grado di interpretare ed eseguire

istruzioni elementari espresse nel proprio Linguaggio Macchina, quali "leggi il dato presente in una locazione di memoria", "somma due valori", "scrivi questo dato in una locazione di memoria“ e poco altro! I ‘mattoncini della LEGO’ ;-)

• Windows, Word ed Excel sono dei software (‘intere costruzioni della LEGO’)– Windows e` un sistema operativo– Word ed Excel sono delle applicazioni (o programmi

applicativi); esistono le versioni per Windows e per Mac

Page 6: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

6

La macchina software:

• facilita l'input/output

• permette la programmazione in linguaggi ad alto livello, come C/C++/Java

• rende disponibili programmi applicativi per compiere operazioni molto complicateTutto viene alla fine "eseguito" dalla

macchina hardware!

Page 7: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Sistemi Operativi

Sistema operativo: insieme di programmi (software di base) che gestiscono l’hardware

CPUMemoria RAMMemoria di massa (Hard Disk)Dispositivi di I/O

Software applicativo: insieme dei programmi scritti da sviluppatori o dall'utente

Page 8: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Vari SO

Fino agli anni 1980 molti SO (dedicati alle varie macchine)Successivamente convergenza su pochi SO anche portabili su architetture diverse:

DOS (Microsoft), non esiste piu'Unix (Sun e altri), portabileLinux (open source), portabileWindows (Microsoft)Mac OS (Apple)SO dedicati, per macchine mainframe (es. IBM AS400)

Page 9: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

9

SO mono/multitasking

• I primi SO erano monotasking: ovvero in grado di gestire l’esecuzione di un solo programma per volta

• Solo alla terminazione di un programma era possibile eseguire un altro programma

• MS-DOS era monotasking

• Tutti i SO moderni sono multitasking: Windows, Linux, Unix, MacOSX, BSD, ...

Page 10: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

10

Gestione della memoria RAM

• Una parte della RAM viene riservata per il SO

• I programmi per poter essere eseguiti devono essere caricati -- almeno in parte -- in RAM assieme ai loro dati. Di questo compito se ne occupa un programma del kernel del SO detto caricatore (loader)

• Sappiamo che ci possono essere piu' processi concorrenti, cioe' piu' programmi simultaneamente in esecuzione che si contendono la CPU e si suddicidono la RAM

• La RAM e' una risorsa finita e generalmente "scarsa", quindi vi sono dei limiti al caricamento in RAM dei programmi

Page 11: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

11

• Il gestore della memoria deve essere in grado di suddividere la RAM per assegnarne delle porzioni a ciascun programma

• I programmi in linguaggio macchina fanno riferimento a degli indirizzi logici o virtuali di memoria e non ad indirizzi assoluti (cioe' fisici)

• Il caricatore deve quindi rilocare i programmi, cioe' trasformare gli indirizzi logici in indirizzi fisici, cioe' indirizzi delle locazioni di memoria ove il programma viene effettivamente caricato in RAM

Page 12: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

12

Il gestore della memoria offre al programma la visione di una memoria virtuale, diversa da quella fisica: cio' rende in particolare possibile l'esecuzione di programmi che richiederebbero piu’ della memoria disponibile (tecnica dell’overlay)

Page 13: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

13

Registri

Cache

Memoria Principace (RAM)

Memoria Secondaria (di massa)

Gerarchia di Memoria

Page 14: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

14

Gestore della memoria secondaria

• Il gestore della memoria di massa e' denominato file system. Si occupa di:

– Fornire programmi per accedere e gestire i file

– Rendere trasparente (cioe` nascondere) la struttura fisica della memoria di massa (dell'hard disk)

– Ottimizzare l’occupazione della memoria di massa (dell'hard disk)

Page 15: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

15

File• Un file e' l'unità logica di informazione di un file system• Fisicamente:

– e' una sequenza di byte che contiene informazioni tipicamente "omogenee"

– Es.: programma, testo, immagine, …• Tutti i dati del file system sono organizzati in file• I file sono memorizzati nelle memorie di massa, tipicamente

l'hard disk• Per ogni file vengono memorizzate varie ulteriori informazioni

– identificatore: nomefile.estensione– data di creazione e ultima modifica– dimensione– posizione effettiva dei dati nella memoria di massa– diritti di accesso– etc

Page 16: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

16

Estensioni dei file• .exe : programma eseguibile• .txt : file di testo• .doc : file di Microsoft Word• .xls : file di Microsoft Excel• .jpg, .gif : file di immagini• .wav, .mp3 : file di suoni• .mpg, .avi : file di filmati• .c, .cpp, .java : file di programmi C, C++, Java

Page 17: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

17

Organizzazione dei file

• I file sono organizzati logicamente in modo gerarchico

• E' una organizzazione logica che non e' in relazione con la loro organizzazione fisica, cioe' la loro posizione fisica nella memoria di massa

• Directory: e' un insieme di file e altre directory

Page 18: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

18

Organizzazione ad albero• I dischi fissi possono essere divisi in partizioni• Una partizione e' organizzata gerarchicamente come

un albero rovesciato (come quello genealogico)• Nodi e collegamenti padre-figlio tra nodi • Nodo dell'albero: file o directory• Nodi divisi per livelli• Collegamenti tra nodi di livelli vicini: nodo sopra =

padre, nodo sotto = figlio• Ogni nodo ha un solo padre• Padre più in alto = radice• I nodi che sono file non hanno figli• Cammino assoluto o relativo (per file)

directory

file

Page 19: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

19

Indirizzo (o percorso) dei file in Windows

A

ED

CB

F

d e

a

b c

hgf

partizione ZDirectory corrente

Z:\A\c

Z:\a

Z:\A\C\D\ff

Z:\A\C\E\h..\E\h

Z:

Page 20: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

20

Indirizzo (o percorso) dei file in Unix/Linux

A

ED

CB

F

d e

a

b c

hgf

Directory corrente

/A/c

/a

/A/C/D/f./ff

/A/C/E/h../E/h

/

Page 21: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

21

Operazioni su file

• Creazione• Apertura• Chiusura• Cancellazione• Copia • Rinomina• Visualizzazione• Scrittura• Modifica• …

Page 22: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

22

PARTE 5

Il processo di programmazione

Page 23: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

23

Problemi e algoritmi

• La programmazione e' la disciplina che si occupa della risoluzione di problemi tramite programmi scritti in qualche linguaggio di programmazione

• Il problema e' una definizione sintetica di cio' che il programma deve realizzare dal punto di vista dell'utente

• La soluzione fornisce un'idea dell'approccio che deve essere seguito per risolvere il problema, tenendo anche in considerazione quale software gia' esistente potrebbe essere riutilizzato

• L'algoritmo e' una descrizione precisa e non ambigua di una sequenza di passi da seguire per risolvere un problema. L'algoritmo e' quindi un raffinamento della soluzione. Gli algoritmi possono essere espressi in molti modi

• Il programma e' una (possibile) descrizione dell'algoritmo espressa usando un particolare linguaggio di programmazione. Si intende che il programma debba essere completo ed eseguibile

• Per i banali problemi che vedremo, useremo direttamente il linguaggio C per descrivere gli algoritmi. Quindi, per noi, algoritmi=programmi

Page 24: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

24

Il processo di programmazione

• Il processo di programmazione comprende tutte le attivita' necessarie per sviluppare dei programmi in modo che siano memorizzati e preparati per l'esecuzione

• Per sviluppare programmi su un computer e' necessario un ambiente di sviluppo che almeno comprenda, oltre al sistema operativo, un editor ed un compilatore

Page 25: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

25

Editor e compilatori• Un programma e' un testo che consiste in una sequenza di

istruzioni scritte in un particolare linguaggio di programmazione. Tale "testo" viene creato e salvato come un file su disco tramite un editor.

• Una volta che e' stato scritto e memorizzato, il (testo del) programma viene dato in input al compilatore

• Il compilatore ha una duplice funzione:– Controlla la validita' del programma: segnala gli errori di

sintassi. Questi errori devono essere corretti tramite l'editor ed il programma corretto deve quindi essere nuovamente compilato

– Se il programma non contiene errori, il compilatore traduce il programma in linguaggio macchina

Page 26: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

26

Esecuzione dei programmi

• Il compilatore naturalmente non e' in grado di scoprire gli errori logici o di esecuzione (i ben noti bug) del programma: in tali casi, il programma risulta essere sintatticamente corretto ma non si comporta come ci si aspetta

• Il programma viene eseguito (o "fatto girare") attraverso un comando al sistema operativo che lo carica in memoria e quindi diventa un processo in esecuzione

• Gli errori logici possono essere prevenuti seguendo delle buone regole di programmazione

• Spesso gli errori logici si individuano mandando in esecuzione il programma ed osservandone il comportamento tramite degli insiemi di test affidabili

• Una volta rilevato e corretto un errore logico, si dovrebbero nuovamente eseguire i test sul suo comportamento, in quanto le presunte "correzioni" potrebbero aver introdotto nuovi errori

• Il processo di rilevazione e correzione degli errori logici di un programma viene chiamato debugging

Page 27: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

27

HelloWorld in C

#include<stdio.h>

main() { printf(“Hello World!\n”); }

Nome file: helloword.c

gcc helloword.c -o helloword.exe

Page 28: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

28

Token

I token sono unita’ sintattiche di base del C

– Parole chiave– Identificatori– Costanti– Costanti stringa– Operatori– Simboli di interpunzione

Page 29: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

29

Parole chiave (Keyword) del C

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Page 30: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

30

La libreria standardInput e Output <stdio.h>

Test dei caratteri <ctype.h>

Funzioni su stringhe <string.h>

Funzioni Matematiche <math.h>

Funzioni Utilita’ <stdlib.h>

Funzioni Diagnostiche <assert.h>

Liste argiomenti variabile <stdarg.h>

Salti non locali <setjmp.h>

Segnali <signal.h>

Funzioni Date e Ore <time.h>

Limiti dei tipi di variabile <limits.h>

Page 31: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

31

Tipi di Dato

Un singolo byte char

Numero Intero int

Numero Intero corto short

Numero Intero lungo long int

Numero in virgola mobile (singola precisione)

float

Numero in virgola mobile (doppia precisione)

double

Numero in virgola mobile (precisione estesa)

long double

Interi con segno signed {char/int}

Interi senza segno unsigned {char/int}

Page 32: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

32

Sequenze di Escape

\a bell \\ backslash\b backspace \? punto interrogativo\f formfeed \' apice singolo\n a capo \” apice doppio\r ritorno carrello \ooo carattere ottale\t tabulazione orizzontale \xhh carattere esadecimale\v tabulazione verticale

Page 33: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

33

Dichiarazioni di variabilitipo nome_della_variabile [ =

inizializzazione];

Esempi:● int a;● int a = 2;● int a, b;● float f = 2.345;● char c = 'X';● char messaggio[] = “Questa e' una stringa”;

Facendo precedere il tipo dal qualificatore const, si ottiene una “variabile costante”, il cui valore non potrà essere cambiato

const double pi = 3,141592653;

Page 34: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

34

Operatori

Operatori● Aritmetici: +, -, *, /, %● Relazionali: >, >=, <, <=, ==, !=● Logici: &&, ||, !● Incremento e decremento: ++, --● bitwise: &, |, ^, <<, >>, ~● Assegnazione: =, +=, -=, *=, ecc.● Condizionale ternario: expr1 ? expr2 :

expr

Page 35: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

35

Conversioni di Tipo

Quando un'espressione coinvolge valori di tipo diverso, essi vengono convertiti ad un tipo comune:

• automaticamente ad un tipo “più grande”, che quindi non fa perdere informazione

• esplicitamente, mediante un operazione di cast. Obbligatoria se non e' possibile una conversione implicita automatica.

Page 36: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

36

If (else)

if (condizione) {/* blocco eseguito se lacondizione e' vera */

} else {/* blocco eseguito se lacondizione e' falsa */

}

Page 37: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

37

Operatori Logici

Expr1 Expr2Expr1 &&

Expr2Expr1 || Expr2

! Expr1

Zero Zero 0 0 1

Zero Non Zero 0 1 1

Non Zero Zero 0 1 0

Non Zero Non Zero 1 1 0

Page 38: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

38

Valutazione short-circuit

La valutazione degli operatori logici && e || avviene in maniera short-circuit, cioè da sinistra verso destra e si interrompe non appena il risultato diventa noto.

(a != 0) && (++i < 10)(a!=0) || (++i < 10)

Page 39: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Fabio Aiolli PROGRAMMAZIONE Introduzione

39

Switch Case

switch (espressione) {case espr-costante1: istruzioni1case espr-costante2: istruzioni2case espr-costante3: istruzioni3case espr-costante4: istruzioni4...default: istruzioni_default

}

Page 40: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Laboratorio I

Page 41: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Comandi principali di Linux (1)

• Sintassi: [comando] –[opzioni] [argomenti]• ls mostra il contenuto di una director

– l versione lunga– a mostra anche i files nascosti che iniziano con “.”– t presenta in ordine di modifica (dal piu’ recente al

meno recente)• man [comando] invoca il manuale con le infomazioni

sul comando– per scorrere le pagine del manuale freccia in giu’ e in su– per uscire dal manuale: q

Fabio Aiolli PROGRAMMAZIONE Introduzione

41

Page 42: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Comandi principali di Linux(2)

• mkdir x crea una nuova directory con nome x• rmdir x elimina la directory x

– solo se e’ vuota• cd x (change directory) mi porta all’interno della directory indicata

dal path x– esempio cd /d1/d3/ mi porta dentro d3 che e’ una sottodirectory

di d1– path puo’ essere

• relativo da dove mi trovo a dove voglio andare• assoluto dalla home a dove devo andare

– ./ indica la directory corrente (dove mi trovo)– ../ indica le directory che contiene la directory corrente– cd da solo mi porta sempre alla home

• emacs nomefile & invoca l’editor emacs aprendo un file chiamato nomefile

Fabio Aiolli PROGRAMMAZIONE Introduzione

42

Page 43: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Emacs

• Permette di scrivere dei testi e fornisce numerose funzionalita’ per la gestione dei testi

• Salvataggio• Ricerca di una parola • Rimpiazzamento di una parola• Cambiare i font• Visualizzazione della sintassi attraverso colori

– importante per programmare– funziona solo se il file ha l’estensione giusta – per i programmi in C l’estensione e’ .c

Fabio Aiolli PROGRAMMAZIONE Introduzione

43

Page 44: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Comandi principali di Linux(3)

• cp x y crea una copia del file x chiamata y• mv x y rinomina il file x chiamandolo y• pwd (print working directory) stampa il cammino

(path) dalla home alla directory in cui ci si trova• rm x elimina il file x• Alcune scorciatoie della shell

– tasti con freccie in su e in giu’ per scorrere la storia dei comandi precedentemente inseriti

– tasto tab per completare automaticamente comandi e nomi da inserire

Fabio Aiolli PROGRAMMAZIONE Introduzione

44

Page 45: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Esercizio 1

1. creare due directory, ad esempio d1 e d2

2. spostarsi dentro d13. creare il file dataoggi.txt dentro d14. scrivere la data di oggi nel file5. salvare il file dataoggi.txt6. copiare dataoggi.txt nella directory

d2 Fabio Aiolli PROGRAMMAZIONE

Introduzione45

Page 46: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Esercizio 2

• Creare dentro d2 una directory d3• Spostarsi in d3• Aprire con emacs il file mese.txt

dentro d3• Scrivere dentro il file il mese corrente• Salvare il file• Spostare il file mese.txt dentro d2• Eliminare d3Fabio Aiolli PROGRAMMAZIONE

Introduzione46

Page 47: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Il compilatore …in breve

• Il compilatore – input: progamma in C– output: programma il linguaggio macchina pronto per essere eseguito

• Fasi del compilatore1. Analisi lessicale e sintattica: vengono riconosciute le parole

chiave ei costrutti fondamentali del linguaggio2. Analisi semnatica: viene dato un significato alle istruzioni

del programma3. Assembly: viene generato il codice assembler4. Linking e loading: viene generato il codice in linguaggio

macchina, vengono creati i collegamenti necessari e vengono caricati i dati in memoria necessari

Fabio Aiolli PROGRAMMAZIONE Introduzione

47

Page 48: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Compilatore per C

• gcc comando che invoca il compilatore per programmi scritti in C

• gcc x.c –o y compila x.c e mette l’eseguibile nel file y

• gcc –E x.c si ferma dopo la fase di preprocessing

• gcc –S x.c si ferma dopo la fase dell’assemblaggio

• gcc –c x.c si ferma prima della fase del linking

Fabio Aiolli PROGRAMMAZIONE Introduzione

48

Page 49: Fabio AiolliPROGRAMMAZIONE Introduzione 1 PARTE 4 La Macchina Software.

Cygwin

• Emulatore della shell di Linux per Windows• Per scaricarlo: www.studenti.math.unipd.it• cliccare su “Software di laboratorio”• poi su “ Contenuto del CD Software …”

• con Cygwin potete usare i comandi visti in classe e il compilatore gcc

• per scrivere I programmi potete usare l’editor che preferite

Fabio Aiolli PROGRAMMAZIONE Introduzione

49