0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
117 visualizzazioni3 pagine
Linguaggi Di Programmazione
I linguaggi di programmazione possono essere classificati in linguaggi di basso livello come i linguaggi macchina e assemblatore e linguaggi di alto livello. I linguaggi di alto livello rendono più semplice lo sviluppo delle applicazioni rispetto ai linguaggi di basso livello ma richiedono l'uso di traduttori come compilatori e interpreti per essere eseguiti.
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
117 visualizzazioni3 pagine
Linguaggi Di Programmazione
I linguaggi di programmazione possono essere classificati in linguaggi di basso livello come i linguaggi macchina e assemblatore e linguaggi di alto livello. I linguaggi di alto livello rendono più semplice lo sviluppo delle applicazioni rispetto ai linguaggi di basso livello ma richiedono l'uso di traduttori come compilatori e interpreti per essere eseguiti.
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3
LINGUAGGI DI PROGRAMMAZIONE
Il calcolatore è: uno strumento programmabile per rappresentare, memorizzare ed elaborare
informazioni. Un sistema costituito da molte componenti. Studiare l’architettura di un sistema significa: individuare ciascun componente del sistema; comprendere i principi generali di funzionamento di ciascun componente e comprendere come le varie componenti interagiscono. GERARCHIA DEL SOFTWARE ▸ Sei livelli di astrazione separano l’utente dall’hardware sottostante: 0 Circuiti digitali 1 Logica di controllo 2 Macchina hardware ▸ ISA – Instruction Set Architecture 3 Software di base ▸ Sistema operativo / ▸ librerie 4 Linguaggio assemblativo 5 Linguaggi di programmazione 6 Programmi applicativi. ▸rI linguaggi di programmazione sono classificati in genere in due categorie:i linguaggi di basso livello e i linguaggi di alto livello. Nella prima categoria rientrano i linguaggi macchina e i linguaggi di tipo assemblativo. I costrutti di questi linguaggi sono molto semplici,”di basso livello” appunto,di conseguenza risulta complesso usarli per scrivere programmi,che fra l’altro saranno eseguibili solo su dispositivi che condividono lo stesso linguaggio macchina. Dall’altra parte,un programma scritto in linguaggio di basso livello è direttamente eseguibile dal processore,risulta perciò particolarmente efficiente sia per i tempi di esecuzione brevi,sia per la ridotta occupazione di memoria. LINGUAGGIO MACCHINA Costituito dall’insieme delle istruzioni dei singoli processori,composte da successioni numeriche che rappresentano i codici operativi del processore e i dati su cui essi operano. ▸ Formato binario. Le istruzioni sono indistinguibili dai dati su cui operano. ▸ Non consente l’uso di etichette o simboli per indicare locazioni di memoria o istruzioni adibite a compiti specifici. ▸ Difficile da modificare. ▸ Difficile creare dati. I dati possono solo essere rappresentati nel loro formato interno. I calcolatori della prima generazione potevano essere programmati soltanto in linguaggio macchina! L’insieme delle istruzioni del linguaggio macchina di un processore firmano l’Instruction Set Architecture (ISA). LINGUAGGIO ASSEMBLATIVO ▸ Orientato sia alla macchina che all’utente ▸ Linguaggio di seconda generazione, contrapposto al linguaggio macchina o di prima generazione ▸ Le istruzioni sono indicate con etichette comprensibili che vengono tradotte nel codice binario corrispondente da un software traduttore. ▸ Codici mnemonici: le istruzioni macchina sono sostituite da codici alfanumerici,detti mnemonici,in quanto descrittivi dell’operazione che identificano. ( Es: ADD – addizione SUB – sottrazione LOAD, STORE – carica da memoria, memorizza in memoria JUMP – salta ad istruzione successiva) ▸Rapporto 1:1 con il linguaggio macchina ▸ Ogni istruzione in linguaggio assemblatore è tradotta esattamente nella sua corrispondente in linguaggio macchina ▸ Specifico per una particolare classe di microprocessori LINGUAGGI AD ALTO LIVELLO I linguaggi di programmazione di alto livello sono progettati con l’obiettivo di rendere più efficiente,rapido e semplice,lo sviluppo delle applicazioni informatiche. ▸ Grazie alla gerarchia del software è possibile scrivere programmi in un linguaggio più vicino all’utente del linguaggio macchina. ▸ L’utente è ancora un programmatore esperto, profondo conoscitore della macchina e del suo funzionamento. ▸L’avvento del PC avvicina alla macchina nuovi utenti/ programmatori. Spinta verso nuovi linguaggi di programmazione, migliori intermediari tra utente e macchina; nuovi linguaggi favoriscono ulteriormente la formazione di nuovi LINGUAGGI D’ ALTO LIVELLO VS LINGUAGGIO ASSEMBLATIVO ▸Linguaggio assemblativo: gestione manuale dei movimenti dei dati tra la memoria e il processore; visione microscopica dell’algoritmo; il linguaggio assemblativo è specifico della macchina; le istruzioni sono molto distanti dal linguaggio naturale. ▸Linguaggi ad alto livello: gestione automatica del movimento dei dati; visione macroscopica dell’algoritmo; uso di operazioni primitive più potenti, che possono essere combinate per costruirne altre; portabilità dei programmi da una macchina ad un’altra ;le istruzioni sono vicine al linguaggio naturale e usano la notazione matematica standard. La distinzione tra linguaggi di programmazione di basso e di alto livello può essere elaborata ancora in riferimento all’evoluzione storica dei linguaggi stessi:i linguaggi macchina appartengono alla prima generazione,i linguaggi assemblativi alla seconda e i linguaggi di alto livello hanno caratterizzato la terza generazione. Vari linguaggi di alto livello,considerati di quarta generazione,sono stati progettati per specifici ambiti applicativi. Sono infine considerati di quinta generazione i linguaggi che consentono di descrivere il problema da risolvere,e lasciano al calcolatore l’onere di formulare il procedimento di risoluzione appropriato per il problema descritto. ▸ Il programma scritto in linguaggio di alto livello (codice sorgente) deve essere tradotto in linguaggio macchina da un apposito software detto traduttore. Le istruzioni vengono dunque trasformate in istruzioni scritte in linguaggio macchina per poter essere eseguite. TRADUTTORI ▸ Compilatori effettuano la traduzione del programma dal linguaggio di programmazione sorgente al codice macchina, generando un programma eseguibile che permane, dopo la traduzione, come file a se stante. Programmi più efficienti. Necessitano una nuova traduzione in caso di errori run-time. ▸ Interpreti effettuano la traduzione istruzione per istruzione del programma sorgente, generando il codice macchina passo passo, senza creare un programma eseguibile statico. Programmi meno efficienti. Correzione interattiva degli errori. COMPILAZIONE: Compilatore ▸ trasforma il programma sorgente in codice oggetto,4 fasi di lavoro: -Analisi delle stringhe di testo (token) - Analisi della correttezza sintattica delle frasi - Analisi della correttezza “semantica” cioè della coerenza rispetto alle altre frasi - Generazione del codice binario. Include e/o richiama l’assemblatore. Assemblatore▸ trasforma direttamente il codice assemblativo in linguaggio macchina. ▸ Linker: collega al codice oggetto del programma altri frammenti di codice oggetto (librerie). ▸ Le librerie sono i codici di accesso alle funzioni del Sistema Operativo. ▸ Loader: non è un passo di traduzione; carica il file eseguibile in memoria centrale per l’esecuzione; rilocazione del codice; gestione della memoria. INTERPRETAZIONE: ▸ Le quattro fasi vengono realizzate istruzione per istruzione. ▸ Non c’è il loader perché ogni istruzione tradotta è eseguita direttamente. ▸ Le librerie utilizzate sono le cosiddette run-time. Pronte per essere eseguite direttamente, e non da collegare ad altri codici oggetto. ▸ Linguaggi di prima generazione: Linguaggio macchina ▸ Linguaggi di seconda generazione: Linguaggi assemblativi ▸ Linguaggi di terza generazione (di alto livello) Esistono diversi paradigmi di programmazione nell’ambito dei quali i vari linguaggi trovano collocazione. ▸ paradigma imperativo-procedurale (linguaggi quali: FORTRAN, Cobol, Pascal, C, Ada) ▸ paradigma orientato agli oggetti (C++, Java) ▸ paradigma funzionale (LISP) ▸paradigma dichiarativo. ▸ Altri paradigmi di programmazione ▸ Linguaggi per applicazioni specifiche (SQL – Structured Query Language, Perl – Practical Extraction and Report Language, HTML – Hypertext Markup Language) ▸ Programmazione parallela ▸ Programmazione logica (PROLOG)