+ All Categories
Home > Documents > la traduzione dei programmi

la traduzione dei programmi

Date post: 25-Feb-2016
Category:
Upload: cyma
View: 66 times
Download: 3 times
Share this document with a friend
Description:
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 descritto da numerosi programmi differenti - PowerPoint PPT Presentation
20
la traduzione dei programmi ed introduzione a Java
Transcript
Page 1: la traduzione dei programmi

la traduzione dei programmi

ed introduzione a Java

Page 2: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 2

programmi descrizioni di algoritmi effettuate

tramite linguaggi di programmazione lo stesso algoritmo, fissato un

linguaggio di programmazione, può essere descritto da numerosi programmi differenti

ogni programma è costituito da una sequenza ordinata di operazioni (istruzioni)

Page 3: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 3

linguaggi di programmazione definiti per codificare algoritmi hanno una precisa sintassi, che deve essere

rigorosamente rispettata ciascun linguaggio prevede un insieme

(repertorio) di istruzioni la codifica di un algoritmo deve essere effettuata

utilizzando appropriatamente tali istruzioni i linguaggi differiscono in base alla tipologia

di istruzioni può variare sensibilmente il livello concettuale di

tali istruzioni

Page 4: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 4

linguaggi di programmazionea basso livello quando il linguaggio di

programmazione sfrutta il repertorio delle istruzioni della CPU o altro repertorio concettualmente allo stesso livello si parla di linguaggio di programmazione a basso livello il livello è basso poiché le istruzioni

usate sono elementari, semplicissime

Page 5: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 5

linguaggi di programmazionead alto livello ragionare in termini di istruzioni macchina è

lungo e faticoso, porta facilmente ad errori e in pratica non consente di affrontare problemi complessi o, quanto meno, articolati

è possibile concepire linguaggi di programmazione che fanno uso di istruzioni concettualmente più complesse ed evolute rispetto alle istruzioni macchina: vengono detti linguaggi di programmazionead alto livello

Page 6: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 6

linguaggi di programmazionead alto livello /2 consentono di formulare algoritmi

che sfruttano operazioni meno elementari e dunque consentono di ragionare ad un più alto livello concettuale si possono affrontare problemi più

complessi

Page 7: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 7

linguaggi di programmazionead alto livello /3 un linguaggio ad alto livello sarebbe

di per sé inutile senza la possibilità di effettuare (automaticamente) una traduzione che sostituisca a ciascuna istruzione di alto livello una sequenza opportuna di istruzioni di basso livello (istruzioni macchina) che sia sostanzialmente equivalente all’istruzione di alto livello

Page 8: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 8

processo di traduzione

dato un programma scritto in un linguaggio ad alto livello (programma sorgente), la traduzione consiste nella costruzione di un programma equivalente che fa solo uso di istruzioni macchina

Page 9: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 9

processo di traduzione /2i traduttori sono programmi che effettuano automaticamente il processo di traduzione in pratica, ad ogni istruzione di “alto

livello” occorre sostituire una sequenza di opportune istruzioni di basso livello che producano lo stesso effetto di quella ad alto livello

sono in grado di rilevare gli eventuali errori sintattici

Page 10: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 10

compilatori ed interpreti esistono due approcci alla traduzione

compilazione, in cui il traduttore (compilatore) accetta in input un programma sorgente scritto in un linguaggio ad alto livello e produce in output un programma eseguibile, equivalente a quello dato

ogni eseguibile è specifico per una CPU! interpretazione, in cui il traduttore (interprete)

considera singolarmente ciascuna istruzione di alto livello, la traduce e la esegue

si usa di fatto una macchina virtuale

Page 11: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 11

compilatori la compilazione viene fatta in linea di

principio una sola volta ogni esecuzione del programma tradotto

sarà sensibilmente più rapida rispetto all’esecuzione tramite un interprete più saranno le esecuzioni e maggiore sarà il

vantaggio della compilazione la compilazione, passando anche

attraverso complesse fasi di ottimizzazione, può impegnare significativamente le risorse dell’elaboratore

Page 12: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 12

interpreti vantaggiosi nel caso di una sola

esecuzione (o poche) non penalizzanti nel caso di

elaborazione leggera hanno il pregio dell’immediatezza e

semplificano la successiva attività di debugging (correzione degli errori)

spesso un interprete è corredato da un compilatore per lo stesso linguaggio (l’inverso di norma non accade)

Page 13: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 13

compilatori vs. interpreti Tc = tempo compilazione Te = tempo esecuzione del compilato Tv = tempo esecuzione in macchina

virtuale Tv >> Te

N = # previsto esecuzioni confrontare Tc + N∙Te con N∙Tv

Page 14: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 14

linguaggi di programmazione basso livello

macchina, assembler alto livello

svariati paradigmi imperativi, dichiarativi

Page 15: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 16

linguaggi ad alto livello

linguaggi di programmazione

imperativi

dichiarativi

procedurali

orientati agli oggetti

elaborazione parallela / distribuita

logici

funzionali

basi di datiFORTRAN, PASCALC, BASIC, COBOL

C++, JAVA, ADA

PROLOG

LISP

Page 16: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 17

ciclo edita-compila-correggi-esegui-correggi

editing programma sorgente

compila sorgente

esegui programma

errori?

funziona?

no

no

WOW!

debu

ggin

g

Page 17: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 18

linguaggio Java alto livello orientato agli oggetti molto “trendy”

utilizzato dapprima solo nel Web, poi praticamente in tutte le situazioni

portatile e diffuso traduzione sui generis

Page 18: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 19

la traduzione dei sorgenti Java

programma in

esecuzione

sorgente Java

file .java

bytecodefile .class

compilatorejavac

interpretejava

macchina virtuale Java (Java Virtual

Machine, JVM)

Page 19: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 20

primo programma Java

il nome della classe determina i nomi dei file Primo.java Primo.class

public class Primo {public static void main(String args[]) {

System.out.println("CIAO!");}

}

Page 20: la traduzione dei programmi

Nov 2002 Traduzione dei programmi 21

esecuzione primo programma

tramite JCreator semplice, ma si perde “visibilità”

tramite linea di comando DOS “manuale”, ma universale

numerose altre possibilità…


Recommended