Please enable JavaScript.
Coggle requires JavaScript to display documents.
PROBLEMI, storia del linguaggio C, ALGORITMO, ANALISI, PROGRAMMAZIONE,…
PROBLEMI
CATEGORIE
-
-
decisione
L'otput (la soluzione) è fornito dal valore vero o falso (0 e 1 oppure sì e no) a seconda che L’imput soddisfi o meno una determinata proprietà o condizione.
definizione
Situazione difficile (questione o questito) che si deve affrontare e risolvere partendo da dei dati iniziali noti per arrivare a una soluzione o possibili soluzioni (goal)
-
storia del linguaggio C
ken Thompson
Nel 1969 inizIò a lavorare su un computer di nome PDP-7 presso i Bell Laboratories utilizzando il linguaggio assembler; prese spunto dal CPL (Combined Programming Language) e dal BCPL (Basic CPL) per cerare il linguaggi B che risultava, però, essere ancora troppo pesante per l'Hardware a disposizione perchè occupava troppo spazio per poter girare in molta applicazioni
Dennis Ritchie
Nel 1972 ottimizzò ulteriormente il linguaggio B inventando il linguaggio C che permise di riscrivere quasi totalmente lo UNIX di Thompson, questa volta per un computer più avanzato il PDP-11, in tempi rapidissimi. La potenza e flessibilità del C apparve subito evidente e per questo il sistema operativo di Unix, scritto in assembly venne riscritto immediatamente in C
Il Libro Bianco
Nel 1978 Kerringham e Ritchie scrivono "il C Programme Language" o come viene comunemente chiamato il "Libro Bianco"
ANSI89
Nel 1989 si arrivò allo standard ISO/IEC 9899-1999 che venne usato come base per tutti i compilatori
compilatori
pcc
compilatore sviluppato da Johnson tra il 1973 e il 1980 rilevante la nascita delle prime librerie (#include<stolio.h> standard I/O library)
gcc
evento dell'ANSI89 nasce il gcc che effettua il processing del sorgente, la complicazione vera e propria, l'assemblamento ed il linking
Linking:
ha il compito di collegare tutti i file oggetto risolvendo eventuali dipendenze e creano il programma
-
Processing:
ha i seguenti compiti:
- rimuove eventuali commenti presenti nel sorgente
- interpretare speciali direttivi per il processore denotante da # come #include o #define
- controllare eventuali errori del codice
-
DEBUGGING ERROR
warming: avvertimento
segnalazione di errori lievi che non compromettono la traduzione, il compilatore genera il codice oggetto
fatal error: errori gravi
non consente di proseguire la compilazione del sorgente, il compilatore sospende la sua esecuzione e non viene generato il codice oggetto
COMPILATORE:
E' un programma che prende un file contenete programma scritto in C e lo trasforma in un File eseguibile. Un programma in C viene scritto in un linguaggio convenzionale.
-
ALGORITMO
PROPRIETÀ
-
-
non ambiguità:
I passi dell'algoritmo non possono essere interpretati in altri modi quindi comprensibile e realizzabile.
-
atomicità:
I passi dell'algoritmo devono essere elementari, cioè non possono essere ulterioremente divisibili.
riproducibilità:
Ogni volta che viene eseguito l'algoritmo con gli stessi dati di partenza si deve arrivare allo stesso risultato
definizione
sequenza di azioni valida per un insieme di dati iniziali ben definiti che eseguita da un opportuno eseguitore (processore) trasformi in un numero finito di passi elementari e non ambigui i dati iniziali nel risultato finale
origine del termine
deformazione del nome del matematico arabo Abū Jaʿfar Muḥammad ibn Mūsā al-Khwārizmī 780 850 d.c al-Khwārizmī viene latinizatto in algorismus è di origine persiana
ANALISI
classificazione MODELLI
prescrittivi
impongono un particolare comportamento in previsione dell'obbiettivo da raggiungere (esempio: ricetta medica)
-
-
-
descrittivi
riconoscono in modo semplice la realtà eliminando gli elementi superflui (esempi: tabelle e grafici)
astrazione
funzionale
separare la struttura interna (come fatto) da come appare all'estremo (cosa si fa) in modo da nascondere l'aspetto fisico e considerare solamente come interagisc (con il resto del mondo)
su dati
ha il compito di semplificare le strutture definendo nuovi dati astratti, mantenendo il contenuto dei dati iniziali
definizione
processo che permette di nascondere alcuni particolari evidenziando solo i dati essenziali del problema.
-
PROGRAMMAZIONE
CATALOGAZIONE
generazionale
3 GL
Linguaggi di alto livello C++BASIC, Java): linguaggi naturali più intuitivi dei precedenti.
-
2 GL
Nascono gli assembler: programmi in grado di tradurre in linguaggio assembly e e in linguaggio macchina.
5 GL
Linguaggi: basati seulla soluzipne dei problemi adattandosi a situazione contestuali come robotica, intelligenza artificaile patterns neurali.
-
esecuzione:
Interpretati:
Linguaggi:di scripting come Bash, Perl, PHP e non vengono compilati ma interpretato in Roon Time.
-
Compilati:
Linguaggi il cui codice deve essere tradotto in linguaggio macchina attraverso un compilatore (in C si usa il GCC).
paradigma
Strutturale
Utilizza il teorema Böhm Jacopini (il teorema di Böhm Jacopini dice che ogni algoritmo può essere composto soltanto combinando strutture di sequenza, selezione e interazione).
-
Orientata agli oggetti
OOP (object oriented programing) basato sulle classi contenenti attributi (sostantivi) e metodi (verbi) che identificano oggetti come C++, Giava.
-
-
definizione
Insieme delle attività che, partendo da un problema, conducono alla stesura di un programma tramite un linguaggio preciso e codificato.
Programma
definizione
Implemantazione di un algoritmo in un linguaggio adatto ad essere compreso ed eseguito da un'elaboratore (ovvero software)
-
-