Lezione 1: La programmazione

20.11.2018


-Analisi dei requisiti:
I requisiti per la scrittura del programma dipendono dal compito che ci viene richiesto. 
Tali requisiti devono essere tratti dal problema da risolvere e non devono mai essere dati per scontati.

-Definizione degli algoritmi
Un algoritmo è un insieme di passi computazionali definiti in modo univoco che porta alla soluzione di un problema

-Implementazione
Implementare significa scrivere in codice gli algoritmi precedentemente definiti

-Test
Un programma deve essere provato con lo scopo di farlo crashare. Questo serve a evitare che incombano problemi senza preavviso. Il test serve quindi per correggere i problemi.

-Manutenzione
Gli ambienti cambiano, vengono rese disponibili nuove API e si può sempre trovare il modo di migliorare un programma dunque è necessaria una manutenzione nel tempo se si vuole restare attuali.

Linguaggi di programmazione

Sono dei linguaggi formali, che hanno lo scopo di comunicare col pc.
L'unico linguaggio comprensibile al calcolatore è il linguaggio macchina e viene detto linguaggio di basso livello. I linguaggi che siete abituati a conoscere (a meno che non siate già ingegneri o informatici, ma in questo caso non sareste qui) si dicono di alto livello e sono necessari per evitare di dover strutturare codice diverso per ogni macchina e di dover gestire i singoli bit che vengono coinvolti nel codice.
Vengono detti di alto livello semplicemente perchè sono utilizzabili a un livello di astrazione più alto. Nei linguaggi di alto livello noi non andiamo a operare direttamente sui processi fisici che portano la macchina a effettuare i calcoli ma andiamo solo a implementare gli algoritmi.

Linguaggi interpretati e compilati

I linguaggi compilati vengono completamente tradotti prima di essere eseguiti, mentre in quelli interpretati quando il programma viene lanciato si esegue una riga alla volta. Se qualcuno ha esperienza con Matlab potete avere un idea di cosa si intende con linguaggio interpretato, in questi linguaggi si utilizza un interprete che gestisce le caratteristiche del linguaggio macchina relativo alla singola macchina. Sia con Matlab che con Python possiamo scrivere una riga di codice e premere invio per eseguirla. 
In c o c++  invece devo prima compilare il programma per poterlo lanciare.
I linguaggi compilati hanno la possibilità di utilizzare un debugger in compilazione e quindi possiamo renderci conto preventivamente di aver sbagliato qualcosa, mentre in quelli interpretati si blocca in esecuzione al primo errore.

Perchè java è figo?

Java è sia interpretato che compilato, si compila il linguaggio java per passare a un altro linguaggio intermedio che poi viene interpretato in linguaggio macchina. 
Questo rende possibile la portabilità del medesimo codice su diversi sistemi operativi, in quanto poi per usare il programma su qualsiasi sistema basta che il dispositivo in questione abbia l'interprete installato. Tra l'altro ci sono cosi tante librerie che è quasi impossibile che si debba partire a fare qualcosa da zero.

JVM "Java Virtual Machine"

Solitamente i programmi java si scrivono su un ide ma in realtà potremo scrivere tranquillamente su un file .txt e poi cambiare l'estensione del file in '.java', successivamente. Vengono compilati per diventare codici in bytecode che hanno estensione '.class'. Il codice con estensione .class è quello che poi verrà interpretato dalla JVM (Java virtual machine) per poter eseguire il bytecode.
La java virtual machine è sfruttata anche da altri linguaggi che compilando il codice in bytecode esattamente come farebbe Java.

IDE  "Integrated Development Environment"

Conviene usare gli IDE per programmare in quanto rendono più semplice e veloce la scrittura, oltre che segnalare errori di sintassi e evidenziare le parole chiave "keyword".

JDK "Java Development Kit"

Per utilizzare java come sviluppatori ci serve un JDK (java development kit) che contiene un compilatore, un interprete, un gestore della documentazione, un gestore dei file e un debugger.

JRE "Java Runtime Enviroment"

E' l'ambiente per l'esecuzione dei programmi java, scaricandola otteniamo una java virtual machine le librerie standard e un launcher per le applicazioni java.

 2018 SolinasMakerShow
Creato con Webnode
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia