Anteprima
Vedrai una selezione di 20 pagine su 121
Informatica generale Pag. 1 Informatica generale Pag. 2
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 6
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 11
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 16
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 21
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 26
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 31
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 36
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 41
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 46
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 51
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 56
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 61
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 66
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 71
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 76
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 81
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 86
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 91
1 su 121
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Linguaggi di programmazione e ambiente di programmazione

I programmatori, per descrivere gli algoritmi, utilizzano i linguaggi di programmazione. Questi linguaggi consentono di scrivere gli algoritmi sotto forma di programmi che possono essere compresi dal calcolatore. Il computer esegue le istruzioni passo per passo, ma se queste non sono state inserite nell'ordine corretto, l'elaboratore non completerà il suo compito.

Ogni linguaggio di programmazione ha il suo ambiente di programmazione, che è costituito da un insieme di strumenti che facilitano la scrittura dei programmi e la verifica della loro correttezza. L'ambiente di programmazione include:

  • Editor: utilizzato per la creazione di file che contengono testi, ovvero sequenze di caratteri. Gli editor di un ambiente di programmazione sono utilizzati per costruire i programmi sorgente.
  • Compilatore/Interprete: il compilatore traduce il programma scritto in un linguaggio di programmazione in un linguaggio macchina comprensibile dal calcolatore, mentre l'interprete esegue il programma direttamente.
  • Debugger: strumento utilizzato per individuare e correggere gli errori presenti nel programma.
  • Librerie: raccolta di codice predefinito che può essere utilizzato per semplificare la scrittura del programma.

Cioè i programmi scritti in un linguaggio di programmazione di alto livello;

- Compilatore: opera la traduzione di un programma sorgente in un programma oggetto, scritto in un linguaggio direttamente eseguibile dall'elaboratore. Nel corso della traduzione, il compilatore può trovare errori ed in tal caso il programma eseguibile non viene generato. Il programmatore sarà informato sulla natura degli errori trovati dal compilatore e viene aiutato nella correzione del programma sorgente.

- Interprete: a volte al posto del compilatore viene usato un interprete. Esso esegue direttamente il codice sorgente senza tradurlo nel linguaggio macchina. L'interprete è quindi una sorta di processore di alto livello in grado di eseguire in modo diretto codice sorgente di alto livello. Per linguaggi normali come il C, FORTRAN e l'ADA l'esecuzione tramite interprete è meno efficiente della compilazione del codice sorgente seguita dall'esecuzione del programma oggetto.

programma oggetto.- Linker: uno specifico problema applicativo può essere affrontato tramite un programma unicooppure tramite vari programmi (moduli) coordinati tra loro. In questo caso ciascun modulo puòessere compilato separatamente; un linker collega insieme vari programmi oggetto, ciascuno deiquali prodotto usando il compilatore, in un programma eseguibile che può quindi essere mandato inesecuzione.

- Debugger: controllore dell’esecuzione che serve per eliminare errori presenti in un programma. Ilprogramma viene controllato nel corso della sua esecuzione per esempio bloccando la suaevoluzione normale e mostrando il contenuto della memoria; questo controlla e aiuta a scoprire glierrori che sfuggono al compilatore verificandosi solo in corso di esecuzione.

GENERAZIONE E LIVELLI

La generazione indica il periodo di ideazione diun linguaggio di programmazione. Il livelloindica il grado di vicinanza con il linguaggiomacchina (insieme di 0 e 1).

I LINGUAGGI

MACCHINA - LA PRIMA GENERAZIONE

Linguaggio di programmazione = sintassi rigida + parole in numero fisso

Prima generazione: linguaggi macchina = istruzioni e dati sono solamente composti di numeri; questo è di fatto l'unico linguaggio che la CPU comprende.

Non è altro che un insieme di numeri singolarmente selezionati, interpretati ed eseguiti dal processore.

I LINGUAGGI ASSEMBLATIVI - LA SECONDA GENERAZIONE

Seconda generazione: linguaggi assemblativi = le istruzioni e i dati sono sostituiti da espressioni mnemoniche della loro funzione; questo linguaggio va tradotto in una macchina tramite un assemblatore. In questi linguaggi ad ogni istruzione numerica viene assegnato un nome mnemonico convenzionale, più facile da memorizzare. L'assemblatore memorizza le istruzioni mnemoniche e utilizza una tabella interna che converte negli equivalenti codici numerici del linguaggio macchina i relativi codici sorgente, che vanno poi a costituire il cosiddetto codice oggetto.

salvato in un file separato. Nonostante siano stati tra i primi ad essere creati, vengono ancora ampiamente utilizzati, soprattutto in caso di lavori veloci o di assenza di linguaggi più evoluti in diversi campi.

Esempio di tabella:

I LINGUAGGI PROCEDURALI - LA TERZA GENERAZIONE
I linguaggi assemblativi non sono tuttavia abbastanza per la creazione di programmi di una certa complessità. Entrano qui in gioco i linguaggi procedurali.
I linguaggi procedurali = la sintassi e le parole si arricchiscono di elementi che "riassumono" funzioni più complesse in un'unica istruzione. Il codice assomiglia sempre più a espressioni del linguaggio naturale.
Sono stati i primi programmi di programmazioni indipendenti dall'hardware, eseguibili su tutti i tipi di computer. Nei linguaggi possiamo citare Basic, FORTRAN, COBOL, Pascal, C, C++ e Java. Poiché le istruzioni scritte con un linguaggio procedurale sono più astratte e sintetiche serve un

traduttore cheriesca a decifrarle in linguaggio macchina.- un traduttore si occupa di sciogliere le espressioni complesse (codice sorgente) in codice oggetto,ossia in linguaggio macchina;- il traduttore si chiama compilatore se produce una versione del programma in linguaggio macchinache poi viene eseguita; interprete se esegue la tradizione in progressione col codice sorgente.

LO PSEUDOCODICE

Il compilatore traduce il programma nello pseudocodice intermedio. Questo linguaggio ha una complessità tra un linguaggio assemblativo e un linguaggio ad alto livello. Ha il vantaggio di essere tuttavia indipendente dal tipo di macchina che andiamo ad utilizzare. Ogni elaboratore ha un suo specifico interprete dello pseudocodice. Quando viene lanciato, l'interprete esegue un'istruzione alla volta in modo rapido.

ALGORITMO E STRUTTURA DATI

L'algoritmo è l'insieme dei passi necessari per eseguire e portare a termine un compito determinato, agendo su determinati dati e

strutture dati.I programmi possono essere costituite da righe di codice, anche in quantità elevata. Nella maggiorparte sono scritte da più persone, ciascuna delle quali ne sviluppano diverse parti. Per larealizzazione di programmi cosi complessi è indispensabile che tutti seguano la stessa tipologia diprogrammazione, per questo nel corso degli anni sono stati sviluppati diversi metodi per dare allaprogrammazione un’impronta più rigorosamente scientifica. Il punto di partenza è la distinzione trastruttura dei dati e algoritmi. I dati trattati reali devono essere inseriti e registrati attraverso unprocesso di astrazione nel nostro elaboratore, si crea la struttura dei dati, un’astrazione del mondoreale. Le strutture vengono manipolate dal programma per ottenere il risultato desiderato, se sivuole creare un elenco, bisogna impartire l’ordine al nostro processore dividendolo in una serie dipassi che questo deve eseguire per portarlo

correttamente a compimento, gli algoritmi. Se una struttura dati è organizzata bene gli algoritmi saranno semplici e affidabili. TIPI DI PROGRAMMAZIONE • A BLOCCHI: il codice è scritto in piccoli blocchi, di norma inferiori ad una pagina, con un solo punto di ingresso, l'inizio, e uno di uscita, il fondo. Nei vecchi codici l'istruzione GOTO permetteva di saltare da una parte all'altra del programma. Nella programmazione strutturata a blocchi l'istruzione GOTO non viene mai usata. • MODULARE: il programma è costituito da parti indipendenti sviluppate da programmatori diversi, che hanno in comune la sola interfaccia esterna. Per facilitare l'assemblaggio ogni modulo nasconde i dettagli della sua implementazione e rende visibili soltanto le proprietà necessarie alle altre unità del programma che quindi non possono accedere alle sue informazioni interne, consente ai programmatori di apportare modifiche interne senza

modificare l'interfaccia esterna. Utile non solo nella programmazione di gruppo ma anche nel caso in cui sia solo un programmatore a programmare tutti i moduli, aiutando a dimenticare tutti i dettagli di ciascuno a fine implementazione, considerando ciascuna parte come prefabbricate.

  • A OGGETTI: questa programmazione consiste nel rappresentare il mondo reale tramite una combinazione di strutture dati e procedure che operano su tali strutture estrapolando e restituendo informazioni. Ad es. la struttura "data: {giorno, mese, anno}". Nella lettura dei dati potranno essere comprese strutture private, utilizzate dalla struttura dati ma non visibili all'esterno dell'oggetto. I principali vantaggi della programmazione ad oggetti sono l'affidabilità e la facilità di gestione, di particolare importanza nei progetti complessi affidati a team di programmatori. Il capostipite dei linguaggi utilizzati per questo tipo di linguaggi fu small talk, creato

Appositamente per questo stile ma di fatto poco diffuso, C++, evoluzione ad oggetti del linguaggio C ha avuto maggiore diffusione, ma anche Java è un validissimo candidato.

I DIAGRAMMI DI FLUSSO E PSEUDOCODICI

Un diagramma di flusso è un grafico che permette di illustrare un processo in tutte le sue fasi e di fatto viene utilizzato dai team di programmatori per scambiarsi idee e pareri su come portare avanti la realizzazione di un progetto di programmazione. Abbiamo diversi simboli, collegati da linee di flusso, per ogni parte del diagramma:

Gli pseudocodici sono semplici forme di scrittura del codice di programmazione affine alla lingua parlata, descrivibile quasi come la scaletta che si prepara prima di fare un discorso. In termini di accuratezza è una via di mezzo tra la descrizione del processo in forma scritta e il codice vero e proprio. Ogni fase del programma è scritta tanto accuratamente quanto nel codice finale, ma senza di questo lo pseudocodice non richiede

una sintassi tanto impegnativa, quindi il programmatore può concentrarsi maggiormente sulla struttura complessiva del programma.

CONCETTI DELLA PROGRAMMAZIONE TRADIZIONALE

Immaginiamo un programma come una serie di istruzioni divise in tre parti distinte:

  1. la prima parte è costituita da istruzioni dichiarative che descrivono i dati elaborati dal programma, la sua terminologia personalizzata, i nomi impiegati per fare riferimento ai dati ad esempio;
  2. la seconda parte è costituita da istruzioni imperative che descrivono le azioni da eseguire, sono i passi che costituiscono gli algoritmi;
  3. la terza parte sono i commenti, migliorano la leggibilità del programma, spiegando le sue funzionalità in forma più comprensibile agli utenti.

Molti linguaggi consentono di mescolare dichiarative e imperative, ma la distinzione concettuale permane ed è buona idea separarle almeno complessivamente.

VARIABILI E TIPI DI DATI

Variabile, cambiando il valore memorizzato

In una posizione di memoria durante l'esecuzione dipro
Dettagli
Publisher
A.A. 2021-2022
121 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher chiaraaamarc di informazioni apprese con la frequenza delle lezioni di Informatica generale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Vocaturo Alberto.