Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Modulo 5 - I Linguaggi di programmazione
Anno Accademico Corso di Informatica I Linguaggi di Programmazione Si illustrerà la funzione dei linguaggi di programmazione, senza peraltro scendere in dettagli tecnici. Scopo è solo quello di chiarire come si traduce un qualunque modello/algoritmo in modo comprensibile alla macchina.
Anno Accademico Corso di Informatica Argomenti -Cosa è un linguaggio di programmazione -Codice macchina -I principali linguaggi: -Basic -C -Fortran -Cenni su altre famiglie di linguaggi
Anno Accademico Corso di Informatica Cosa è un Linguaggio di Programmazione Il computer non sa eseguire che comandi binari, la cui difficoltà di utilizzo è estremamente elevata, anche perché a ciascun comando corrisponde unazione elementare e occorre tradurre qualunque operazione in una serie di passaggi elementari.
Anno Accademico Corso di Informatica Cosa è un Linguaggio di Programmazione I primi computer erano programmati direttamente in codice esadecimale, ottale o binario. Era unoperazione estremamente lunga e doveva tenere conto della struttura fisica della CPU e delle istruzioni elementari che questa era in grado di riconoscere.
Anno Accademico Corso di Informatica Cosa è un Linguaggio di Programmazione Ricordare che loperazione somma fosse un codice del tipo o 1463 (ottale) o 333 (esadecimale) non era certamente cosa facile e, peggio ancora, immaginate impostare i singoli comandi che possibilità di errore lasciava.
Anno Accademico Corso di Informatica Cosa è un Linguaggio di Programmazione Il primo passo fu quello di associare a ciascun codice esadecimale un codice mnemonico, un attimo più semplice da ricordare e da scrivere. Quindi il nostro inenarrabile 1463 ottale diveniva ADD. Semplificazione non da poco, che però ancora lasciava al programmatore la responsabilità di ricordare la struttura della CPU.
Anno Accademico Corso di Informatica I Linguaggi Assemblatori I linguaggi del tipo appena descritto, in cui ad ogni comando del linguaggio corrisponde una e una sola operazione della cpu, si dicono linguaggi assemblatori. Sono di utilizzo difficile, per specialisti, anche se dalla loro hanno il vantaggio di produrre codice estremamente efficiente, di cui sono noti tutti i dettagli.
Anno Accademico Corso di Informatica I Linguaggi Assemblatori Ogni tipologia di CPU ha un proprio linguaggio assemblatore o Assembler. Il che si traduce nella esigenza di riscrivere un programma ogni volta che si passa da una CPU a unaltra (da Z80 a 8085 a 8086 a pentium a etc…)
Anno Accademico Corso di Informatica I Linguaggi Evoluti Il desiderio reale era quello di giungere a definire un linguaggio che definisse le operazioni a un livello abbastanza alto, senza entrare nei dettagli operativi della singola CPU e che, al meglio, si avvicinasse al modo di scrivere formalmente un algoritmo.
Anno Accademico Corso di Informatica I Linguaggi Evoluti I primi linguaggi a vedere la luce furono il COBOL (Commercial Business Operative Language) e il Fortran (FORmula TRANslation). Il primo destinato a scrivere programmi gestionali con molti accessi a banche dati, il secondo destinato a programmi di calcolo scientifico.
Anno Accademico Corso di Informatica I Linguaggi Evoluti La sintassi di questi linguaggi è molto più semplice di quella di un assembler e permette di descrivere operazioni di livello alto, demandando al compilatore il compito di tradurre dette operazioni in sequenze di codici macchina.
Anno Accademico Corso di Informatica I Linguaggi Evoluti Esempio: X=SQRT (Y) Z=EXP (Y) W=X+Y+Z
Anno Accademico Corso di Informatica I Linguaggi Evoluti Le variabili che vengono utilizzate in un programma devono essere sempre dichiarate per permettere al compilatore di riservare le corrette zone di memoria e di trattarle in corso di esecuzione secondo la rappresentazione associata.
Anno Accademico Corso di Informatica I Linguaggi Evoluti I tipici linguaggi di prima generazione erano linguaggi dichiarativi e imperativi, nel senso che erano costituiti da una sequenza di istruzioni da eseguire in sequenza, salvo i passi condizionali inseriti nel flusso di esecuzione.
Anno Accademico Corso di Informatica I Linguaggi Evoluti I linguaggi, da quel momento in poi, si moltiplicarono in modo biblico. Ne nacquero di ogni tipo e per ogni esigenza. Vale la pena di ricordarne alcuni che rappresentano significative evoluzioni.
Anno Accademico Corso di Informatica I Linguaggi Evoluti LISP: permette di dichiarare secondo formalismi del lambda calcolo le funzioni da implementare e eseguirle. PROLOG: permette di scrivere con un formalismo simile a quello dei predicati logici le istruzioni.
Anno Accademico Corso di Informatica I Linguaggi Evoluti SmallTalk: primo linguaggio ad oggetti. Il paradigma ad oggetti ha avuto in seguito grossa diffusione e rappresenta a tuttoggi la modalità di programmazione più completa che si utilizzi.
Anno Accademico Corso di Informatica I Linguaggi comuni BASIC: è un linguaggio interpretato, cioè non viene tradotto in linguaggio macchina ma piuttosto viene eseguito passo passo da un interprete che provvede a dare istruzioni real time alla cpu. Questo lo rende un linguaggio interattivo, molto amichevole ma molto lento.
Anno Accademico Corso di Informatica I Linguaggi comuni È un linguaggio adatto a principianti, in quanto la sua interattività permette di provare ciò che si scrive in tempi molto rapidi e di correggerlo, ove ci fossero imperfezioni od errori. NB: Il Visual Basic, pur discendendo dal Basic, è piuttosto complicato, anche se rimane un linguaggio interpretato.
Anno Accademico Corso di Informatica I Linguaggi comuni Il linguaggio attualmente più utilizzato è il C. Nato nei laboratori Bell per sviluppi interni, è un linguaggio molto potente, a costo di perdere molti dei vincoli formali che solitamente rendono un linguaggio controllabile e sicuro.
Anno Accademico Corso di Informatica I Linguaggi comuni E un linguaggio sporco, di scarsa eleganza ma di elevata efficacia. Oggi, poi, nella sua versione ad oggetti, permette sviluppi estremamente sofisticati ma richiede competenze tecniche elevate.
Anno Accademico Corso di Informatica Ulteriori considerazioni Qualunque linguaggio è equipotente: tradotto in parole povere ciò che si può fare con un linguaggio lo si può fare con qualunque altro (Teorema di Church). Ciò significa che la scelta di un linguaggio deve essere basata su considerazioni di efficienza, di adeguatezza, etc.
Anno Accademico Corso di Informatica Ulteriori considerazioni Esempio: il C è estremamente adatto per sviluppi che richiedano forti interazioni con la macchina, come alternativa allassembler. Se, di contro, si deve verificare una teoria logica, il Prolog può essere più adeguato, mentre se la rappresentazione ad oggetti è centrale, meglio lo SmallTalk.
Anno Accademico Corso di Informatica Ulteriori considerazioni Un suggerimento a chi volesse imparare a programmare: il miglior linguaggio per questo tipo di attività è certamente il Pascal, che ha la caratteristica di essere estremamente formale, con un compilatore rigido che non deroga dalla sintassi standard.
Anno Accademico Corso di Informatica Considerazioni finali I linguaggi si classificano in: interpretati compilati. Esistono poi linguaggi imperativi, logici, simbolici, etc. I linguaggi più evoluti attuali di solito implementano il paradigma di programmazione ad oggetti.