1 / 20

la traduzione dei programmi

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

cyma
Télécharger la présentation

la traduzione dei programmi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. la traduzione dei programmi ed introduzione a Java

  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) 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 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 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 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 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 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 Traduzione dei programmi

  9. processo di traduzione /2 i 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 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 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 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) 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 Traduzione dei programmi

  14. linguaggi di programmazione • basso livello • macchina, assembler • alto livello • svariati paradigmi • imperativi, dichiarativi Traduzione dei programmi

  15. linguaggi ad alto livello logici PROLOG dichiarativi funzionali LISP basi di dati linguaggi di programmazione FORTRAN, PASCAL C, BASIC, COBOL procedurali orientati agli oggetti C++, JAVA, ADA imperativi elaborazione parallela / distribuita Traduzione dei programmi

  16. ciclo edita-compila-correggi-esegui-correggi sì editing programma sorgente errori? compila sorgente no debugging funziona? esegui programma no sì WOW! Traduzione dei programmi

  17. 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 Traduzione dei programmi

  18. file .class sorgente Java bytecode compilatore javac file .java interprete java la traduzione dei sorgenti Java macchina virtuale Java (Java Virtual Machine, JVM) programma in esecuzione Traduzione dei programmi

  19. 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!"); } } Traduzione dei programmi

  20. esecuzione primo programma • tramite JCreator • semplice, ma si perde “visibilità” • tramite linea di comando DOS • “manuale”, ma universale • numerose altre possibilità… Traduzione dei programmi

More Related