Generalità Software1Luglio 2004 Generalità Software Luglio 2004.

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Recupero debito quarto anno Primo incontro
Evoluzione dei linguaggi di programmazione
I linguaggi di programmazione
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Linguaggi di programmazione
Algoritmi e Programmazione
Massa Laura Mela Enrica
Generalità Linguaggio e Macchina Astratta
1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.
Dr. Francesco Fabozzi Corso di Informatica
Introduzione alla programmazione
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
TRADUZIONE DEL PROGRAMMA Una volta che un programma sia stato scritto in C, esso non può essere eseguito senza unulteriore traduzione. Ciò perché qualsiasi.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Struttura dei sistemi operativi (panoramica)
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Fondamenti di Informatica
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Capitolo 1 (Deitel) Introduzione ai Computer
L' ARCHITETTURA DI VON NEUMANN
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lo sviluppo del software e i linguaggi di programmazione
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Linguaggi per COMUNICARE
prof. Antonella Schiavon ottobre 2009
Programma di Informatica Classi Prime
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Calcolatori Elettronici Assemblatore, Linker e Loader
Dal problema all’ algoritmo
la traduzione dei programmi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
LINGUAGGI DI PROGRAMMAZIONE Per comunicare comandi e dati ad un computer occorre un particolare linguaggio detto LINGUAGGIO MACCHINA, che è un insieme.
Architettura di un calcolatore e linguaggio macchina.
Scrivere e compilare programmi
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
L’esecuzione dei programmi
Linguaggi Diversi tipi di linguaggi:
Concetti Fondamentali sulla Programmazione
1 Macchine astratte, linguaggi, interpretazione, compilazione.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Il software Claudia Raibulet
Problemi, algoritmi e programmazione
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Programmazione dei Calcolatori Elettronici
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Programmazione orientata agli Oggetti Introduzione a Java.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Generalità Software1Luglio 2004 Generalità Software Luglio 2004

Generalità Software2Luglio 2004 IL PROGRAMMA Sia che sia fatto “ad hoc” dal programmatore o che sia acquistato, serve a risolvere il problema della comunicazione con il calcolatore Si comunica la modalità con cui risolvere un problema (cioè l’algoritmo) Il programma è quindi un insieme di istruzioni: –spostamenti di informazioni –scelte (fra diverse sequenze di istruzioni in base alla modalità con cui si è evoluto il programma) –operazioni aritmetiche e logiche –richiesta o presentazione di informazioni –salti (ad altri punti del programma)

Generalità Software3Luglio 2004 IL PROGRAMMA (Cont. 1) L’insieme delle istruzioni definite dalla CPU costituisce il linguaggio macchina Nel linguaggio macchina ogni istruzione (statement) è rappresentabile con una sequenza di cifre binarie ………. (32 se si sta lavorando con un processore a 32 bits) La difficoltà nel programmare in linguaggio macchina è ovviamente enorme.

Generalità Software4Luglio 2004 v = v(1), v(2), …. v(k), v(k+1), … Programma scritto in linguaggio ad alto livello (C) Programma in linguaggio assemblatore (per il MIPS) Programma nel linguaggio binario della macchina (per il MIPS) Swap (int v  , int k) {int temp; temp = v  k  ; v  k  = v  k+1  ; v  k+1  = temp; } Swap: mult $2, S5, 4 add $2, S4, S2 lw $15, 0 (S2) lw $16, 4 (S2) sw $16, 4 (S2) sw $15, 0 (S2) jr $ Compilatore C Assemblatore

Generalità Software5Luglio 2004 ASSEMBLATORE Per ovviare alle difficoltà di programmazione in linguaggio macchina si inventarono programmi in grado di tradurre notazioni simboliche in linguaggio macchina (codice binario) usando la macchina stessa. Questo facilita molto la programmazione add A, B, C L’insieme delle notazione simboliche costituisce il linguaggio Assembler. L’Assembler è un linguaggio “machine oriented”, per il quale è quindi necessario “pensare” come la macchina Anche il “programma traduttore” prende il nome di Assembler (più propriamente detto Assemblatore)

Generalità Software6Luglio 2004 LINGUAGGI AD ALTO LIVELLO (HIGH LEVEL LANGUAGE) Se è possibile scrivere un programma che traduce il linguaggio assembler in istruzioni binarie, perché non fare altrettanto considerando notazioni a livello più elevato, cioè il più possibile vicine alle “espressioni” usate nella vita di tutti i giorni Sono quindi consentite notazioni del tipo: C=A+ B Il programma che traduce le notazioni scritte in linguaggio ad alto livello in codice binario si chiama compilatore I linguaggi HLL sono orientati all'utente (user oriented)

Generalità Software7Luglio 2004 LINGUAGGIO AD ALTO LIVELLO (HIGH LEVEL LANGUAGE) (Cont. 1) Benefici: –poter ragionare con un linguaggio più vicino a quello naturale (anche se in inglese) –incrementare la produttività dei programmatori –essere indipendenti dalle caratteristiche del calcolatore per il quale si sta scrivendo il programma (portability)

Generalità Software8Luglio 2004 STRUMENTI DI PROGRAMMAZIONE Generazioni: macchina basso livello 1 : linguaggi macchina 2 : linguaggi assembler 3 : linguaggi di alto livello 4 : linguaggi di 4° generazione 5 : pacchetti personalizzabili uomo alto livello

Generalità Software9Luglio 2004 PARADIGMI DI LINGUAGGI DI PROGRAMMAZIONE LISP MLScheme Funzionali SIMULA C ++ Ada95 A oggetti Smalltalk Java Linguaggi FORTRAN BASIC C Ada Imperativi Macchina COBOL ALGOL APL Pascal GPSS Prolog Dichiarativi Visual BasicVisual C Visuali

Generalità Software10Luglio 2004 Grammatica definizione degli elementi costitutivi di un linguaggio Sintassi relazione fra le parole che compongono una frase e l’insieme delle norme che regolano queste relazioni Semantica significato della frase ELEMENTI DI UN LINGUAGGIO

Generalità Software11Luglio 2004 SINTASSI E SEMANTICA sintassi semantica Il cane mangia la melacorrettocorretto la cane mangia il melascorretto corretto la mela mangia il canecorrettoscorretto il mela mangia la canescorrettoscorretto

Generalità Software12Luglio 2004 SINTASSI E SEMANTICA (CONT. 1) Sintassi SI programma oggetto programma sorgente in L NO (mostra errori) Semantica programma corretto oggetto output input scorretto C Compilatore (grammatica di L Esecutore

Generalità Software13Luglio 2004 GESTIRE I PROGRAMMI Rendere riutilizzabili i programmi già scritti (reusability), organizzandoli opportunamente in librerie –librerie di sistema –librerie dell’utente Necessità di un programma particolare per la supervisione dell’esecuzione dei programmi, a sua volta scomposto in diverse funzioni (allocazione della memoria, schedulazione dei programmi, ecc.): il sistema operativo Sistemi operativi (operating systems - O.S.) –proprietari –standardizzati –open source

Generalità Software14Luglio 2004 SOFTWARE software applicativo per controllo di apparati per funzioni organizzative per produttività personale, ecc. Software di base (Sistema Operativo e ambienti di sviluppo) Software di Comunicazione hardware

Generalità Software15Luglio 2004 Software Programmi applicativi Programmi di sistema Utente Pacchetti standard Compilatori Ambienti di sviluppo Sistemi operativi Sistemi di comunicazione Assemblatori …… …… Gestione dei file Memoria virtuale Gestione dispositivo di ingresso/uscita …… …… …… LinkerLoader Job management InitiatorTerminator Supervisore programmi applicativi programmi di sistema firmware macchina fisica

Generalità Software16Luglio 2004 SISTEMI OPERATIVI SUNSolaris HPHP- UX IBMAIX MICROSOFTWINDOWS LINUXLinux Altri S.O. proprietari

Generalità Software17Luglio 2004 CICLO DI SVILUPPO progettistautente prototipo specifiche componenti da sviluppare o riusare Definizione e specifica del problema progetto realizzazione integrazione e verifica di sistema installazione e verifica in campo manutenzione Verifica di ogni componente

Generalità Software18Luglio 2004 PROGRAMMAZIONE In piccolo (singoli) problema  algoritmo  programma In grande (gruppi) programma- … programma-n software applicativo sistema h/w-s/w sistemista progettista programmatore

Generalità Software19Luglio 2004 SVILUPPO DI UN PROGRAMMA compilatore Digitazione Verifca debuggin Sistema runtime compilazione correzione esecuzione Listato ed Errori di sintassi Listato ed Errori di esecuzione

Generalità Software20Luglio 2004 PROCESSO DI PREPARAZIONE DI UN PROGRAMMA PER L’ESECUZIONE CON IL CALCOLATORE 1.Il programma scritto dal programmatore (Codice Sorgente o Source Code) viene memorizzato nell’Archivio dei Codici Sorgenti (o Source Code File). 2.Se il programma è scritto in linguaggio ad alto livello viene preso in carico dal relativo Compilatore, mentre se è scritto in Assembler viene preso in carico dall’Assemblatore. Se vengono riscontrati errori grammaticali il programmatore deve correggerli e tornare alla fase 1. Se il programma è corretto viene tradotto in linguaggio macchina e memorizzato nell’Archivio dei Codici Oggetto (o Object Code File).

Generalità Software21Luglio 2004 PROCESSO DI PREPARAZIONE DI UN PROGRAMMA PER L’ESECUZIONE CON IL CALCOLATORE (1) Sia l’Assemblatore che il Compilatore sono strutturati in 3 fasi: - analizzatore lessicale - analizzatore sintattico - generatore del codice 3.L’utente richiede quindi l’intervento del Linker. Questo ha il compito di mettere insieme i programmi (o codici) oggetto con cui l’utente intende costituire un unico Codice Caricabile (Loadable Code)

Generalità Software22Luglio 2004 PROCESSO DI PREPARAZIONE DI UN PROGRAMMA PER L’ESECUZIONE CON IL CALCOLATORE (2) Naturalmente può non riuscire o perché non trova tutti i programmi oggetto, oppure perché non riesce a risolvere i collegamenti fra gli stessi. In tal caso lo segnala all’utente. Se invece va tutto bene, il programma ottenuto unendo gli oggetti viene caricato nell’Archivio dei Codici Caricabili (Loadable Code File ) 4.L’utente richiede infine l’intervento del Loader che provvede a richiedere la memoria necessaria per eseguire il programma e ad attualizzare. nell’Archivio dei Codici Caricabili, gli indirizzi in base alla parte di memoria che sarà occupata dal programma.

Generalità Software23Luglio 2004 PROCESSO DI PREPARAZIONE DI UN PROGRAMMA PER L’ESECUZIONE CON IL CALCOLATORE (3) Carica il programma, a questo punto detto codice eseguibile o executable code, nella memoria principale e cede il controllo al programma di sistema (Initiator) che avvierà il programma utente all’indirizzo specificato come prima istruzione da eseguire. (Alla fine dell’esecuzione viene avviato il programma di sistema Terminator)