Please enable JavaScript.
Coggle requires JavaScript to display documents.
algoritmo, problema, analisi, PROGRAMMAZIONE, programma, Soluzione,…
algoritmo
definizione
Algoritmo è un elenco dettagliato di istruzioni progettato per svolgere una determinata attività o risolvere un problema paticolare.
origine del termine
La parola algoritmo deriva dal nome di un matematico arabo del IX secolo Al-Khwārizmī. Il suo nome è stato latinizzato in Algoritmi, Algoritmo in lingua italiana.
PROPRIETÀ
finitezza
L'algoritmo deve essere composto da un numero finito di istruzioni e terminiin un numero finito di passi.
-
-
-
Atomoicità
Ogni passo del algoritmo deve essere elementare, nn suddivisa in passaggi più piccoli
riproducibilità
un algoritmo deve essere replicabile, cioè se usato più volte deve ottenere sempre lo stesso risultato
problema
categorie
ricerca
Le possibili soluzioni devono soddisfare delle condizioni poste dal problema, che viene detta soluzione ammissibile
ottimizzazione
Alle soluzioni ammissibili è associata una misura e si deve determinare la soluzione ammissibile la cui misura è massima o minima, cioè quella che soddisfa meglio una determinata proprietà
decisione
L'output è fornito dal valore VERO o FALSO a seconda che l'input soddisfi o meno una determinata proprietà; la soluzione di questi problemi è una risposta SI o NO.
origine del termine
Il termine PROBLEMA deriva dal greco πρόβλημα (próblēma) = sporgenza, promontorio, impedimento, ostacolo dal verbo προβάλλω (probállō) = mettere davanti
-
analisi
-
astrazione
-
sui dati
ha il compito di semplificare le strutture definendo nuovi dati astratti, che pur mantenendo il contenuto informativo dei dati di partenza, sono organizzati mediante strutturazioni proprie a partire dalle tipologie di dati semplici (primitivi) messi a disposizione dai diversi linguaggi di programmazione
definizione
processo che permette di tenere nasscosti alcuni particolari evidenziando solo i dati considerati essenziali per risolvere il problema
PROGRAMMAZIONE
CATALOGAZIONE
ESECUZIONE
-
COMPILAZIONE INTERMEDIA
in tal caso si ha una situazione ibrida tra le due precedenti. Il codice viene prima compilato in un linguaggio intermedio e, successivamente, interpretato da un apposito engine che prende il nome di Virtual Machine o Runtime
COMPILATI
linguaggi basati sulla soluzione dei problemi con vincoli indicati nel programma, invece che sull’esecuzione di uno specifico predefinito. Il loro scopo è quello di evolversi ed attarsi alle situazioni contestuali, cosa che li rende la scelta naturale per la ricerca Robotica, Intelligenza Artificiale e Patterns Neurali
PARADIGMA
STRUTTURATA
realizza tutto quello che è possibile con i linguaggi procedurali senza l’uso dei salti condizionali, questo è dimostrato nel teorema dei due matematici italiani Böhm-Jacopini: qualsiasi algoritmo può essere trasformato in un algoritmo equivalente composto soltanto di combinazioni di sequenze, selezioni e iterazioni
ORIENTATA AGLI OGGETTI
in questo caso il fulcro dell’intero programma è la classe (e la relativa interfaccia) composta da attributi e metodi funzionali. L’istanza di una classe è definita oggetto, ovvero una entità con uno specifico stato
PROCEDURALE
il codice è suddiviso in subroutine (funzioni e/o procedure) che eseguono specifici compiti, per ridurre la complessità del programma nel suo complesso, adottato la strategia del divide-et-impera ed abbracciando un’astrazione di tipo funzionale in cui è sufficiente conoscere solo l’interfaccia della procedura tralasciandone i dettagli implementativi
DICHIARATIVA
-
programmazione logica
si basa sulla logica del primo ordine sia per rappresentare sia per elaborare l’informazione, e si scompone in Programmazione logica induttiva e Programmazione logica abduttiva.
GENERAZIONALE
3GL
linguaggi che spostano il focus verso il linguaggio naturale (più intuitivi dell’assembly e del linguaggio macchina). Questi linguaggi sono definiti come linguaggi di alto livello e tra essi abbiamo C, C++, Basic, Java, C#, ecc…
4GL
linguaggi dichiarativi, il cui rappresentate più illustre è SQL, utilizzato principalmente nei database relazionali
2GL
costituiscono una prima astrazione del linguaggio macchina (assembly), permettendo comunque di migliorare l’attività di sviluppo grazie all’utilizzo di un numero minore di istruzioni. Con essi nascono gli assembler, ovvero programmi in grado di tradurre il linguaggio assembly in linguaggio macchina
5GL
linguaggi basati sulla soluzione dei problemi con vincoli indicati nel programma, invece che sull’esecuzione di uno specifico predefinito. Il loro scopo è quello di evolversi ed attarsi alle situazioni contestuali, cosa che li rende la scelta naturale per la ricerca Robotica, Intelligenza Artificiale e Patterns Neurali
1GL
vari linguaggi macchina proprietari, decisamente complessi e fortemente legati all’architettura hardware specifica
definizione
L'insieme di quelle attività che, a partire da un problema, conducono alla stesura di un PROGRAMMA la cui esecuzione da parte di un calcolatore ha come risultato la soluzione del problema
programma
definizione
Un PROGRAMMA per calcolatore è l'implementazione di un algoritmo in un linguaggio adatto a essere "compreso" ed eseguito da un computer, generalmente viene indicato con il termine SOFTWARE
Soluzione
La soluzione di un problema consiste nella definizione della procedura ovvero le operazioni che devono essere eseguite per raggiungere lo scopo desiderato.
-