la traduzione dei programmi

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

C C++ &.
I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Ambiente Java.
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Evoluzione dei linguaggi di programmazione
Dal problema al programma
I linguaggi di programmazione
Linguaggi di programmazione
Programmazione e Laboratorio di Programmazione – Luca Tesei1 La Programmazione Cosè la programmazione? Concetti preliminari.
Generalità Linguaggio e Macchina Astratta
Dr. Francesco Fabozzi Corso di Informatica
I Linguaggi Di Luca Brugnone 13/11/2007
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.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Introduzione al linguaggio Java
Selezione (=scelta) con “if-else”
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Fondamenti di Informatica
Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università
Argomenti della lezione
Introduzione a:. Nella prima parte di questo corso si vedranno i CONCETTI di: CLASSE (programma) METODO (Algoritmi e dati) CONCETTI CLASSICI DI PROGRAMMAZIONE.
Programmazione in Java
Java Contardi Carlo A.S. 2008/09.
L’ingegneria del software
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Macchine astratte, linguaggi, interpretazione, compilazione
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Java come linguaggio di programmazione
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Linguaggi per COMUNICARE
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Dal problema all’ algoritmo
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
LINGUAGGI DI PROGRAMMAZIONE Per comunicare comandi e dati ad un computer occorre un particolare linguaggio detto LINGUAGGIO MACCHINA, che è un insieme.
Scrivere e compilare programmi
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Interpreti e compilatori
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.
Classi ed Oggetti in Java (Cenni). Richiami Cenni sull’ Implementazione, Macchine Astratte, Compilatore, Interprete Ruolo delle Classi in Java Oggetti.
Il software Claudia Raibulet
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
1 Java primo contatto Quando le classi fanno la differenza …
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
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.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

la traduzione dei programmi ed introduzione a Java

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

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 Nov 2002 Traduzione dei programmi

linguaggi di programmazione a 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 Nov 2002 Traduzione dei programmi

linguaggi di programmazione ad 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 programmazione ad alto livello Nov 2002 Traduzione dei programmi

linguaggi di programmazione ad 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 Nov 2002 Traduzione dei programmi

linguaggi di programmazione ad 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 Nov 2002 Traduzione dei programmi

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 Nov 2002 Traduzione dei programmi

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 Nov 2002 Traduzione dei programmi

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 Nov 2002 Traduzione dei programmi

Traduzione dei programmi 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 Nov 2002 Traduzione dei programmi

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

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 Nov 2002 Traduzione dei programmi

linguaggi di programmazione basso livello macchina, assembler alto livello svariati paradigmi imperativi, dichiarativi Nov 2002 Traduzione dei programmi

linguaggi di programmazione basso livello macchina, assembler alto livello procedurali imperativi orientati agli oggetti dichiarativi funzionali logici FORTRAN, PASCAL C, BASIC, COBOL C++, JAVA, ADA LISP, SCHEME PROLOG Nov 2002 Traduzione dei programmi

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

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

Traduzione dei programmi 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 Nov 2002 Traduzione dei programmi

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

Traduzione dei programmi primo programma Java public class Primo { public static void main(String args[]) { System.out.println("CIAO!"); } il nome della classe determina i nomi dei file Primo.java Primo.class Nov 2002 Traduzione dei programmi

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