LINGUAGGI DI PROGRAMMAZIONE
Transcript
LINGUAGGI DI PROGRAMMAZIONE
Cos’è Un linguaggio di programmazione è un linguaggio dotato di un insieme di regole per scrivere programmi per computer, ovvero un insieme di istruzioni che a partire da un insieme di dati di input, applicando una funzione di trasformazione descritta, appunto, dalle istruzioni, produca un insieme di dati di output. In un linguaggio di programmazione si possono distinguere: L'insieme delle parole chiavi: un insieme di parole che hanno un significato particolare per chi deve tradurle in istruzioni eseguibili o deve eseguirle e a ciascuna delle quali corrisponde una azione ben definita. Le parole chiavi non possono essere usate se non per indicare le azioni ad esse associate I caratteri speciali: un insieme di caratteri con significati particolari. Per esempio, in C++, sono caratteri speciali: il carattere punto e virgola (;) che chiude una istruzione o il carattere virgola (,) che delimita i componenti di un elenco o il carattere spazio che distingue un componente (una parola) dall'altro. Anche in questo caso, tali caratteri, non possono essere utilizzati se non con quel significato particolare. Un insieme di regole sintattiche: un modo di mettere assieme le parole così da formare frasi per indicare le azioni che devono essere compiute. Una volta note le caratteristiche di un linguaggio di programmazione, si può tradurre un algoritmo in frasi (affermazioni, statement) di quel linguaggio. GENERAZIONI I GENERAZIONE (anni ’50) BINARIO II GENERAZIONE (anni ’60) ASSEMBLY III GENERAZIONE (a partire dagli anni ’70) FORTRAN COBOL PASCAL BASIC RPG IV GENERAZIONE (a partire dagli anni ’80) C C++ JAVA PHP V GENERAZIONE (a partire dagli anni ’90) LISP PROLOG SMALT TALK BINARIO LINGUAGGIO MACCHINA=LIVELLO PIU’ BASSO DI DESCRIZIONE DI UN PROGRAMMA Il sistema numerico binario è considerato tra le più grandi invenzioni del matematico tedesco Gottfried Wilhelm Leibniz; benchè caddè ben presto nel dimenticatoio e solo nel 1847 verrà riscoperto, grazie al matematico inglese G. Boole, che aprirà l’orizzonte alle grandi scuole di logica matematica del ‘900 e soprattutto alla nascita del calcolatore elettronico. ASSEMBLY Il linguaggio Assembly è tra tutti i linguaggi di programmazione, il più vicino all'hardware, più vicino al linguaggio macchina vero e proprio. Tale linguaggio è detto mnemonico proprio perché ogni istruzione è formata da una sequenza di caratteri che ricordano il tipo di operazione da eseguire ed è necessario un programma (assemblatore o ASSEMBLER) che lo traduca nel linguaggio comprensibile da una calcolatore (codice esadecimale decodificato all’interno della specifica CPU). FORTRAN Fortran nacque nel 1953 da un'idea di John Backus. L'informatico statunitense, in quel momento impegnato nel laboratorio di ricerca e sviluppo IBM di San Josè, presentò ai suoi superiori un progetto per lo sviluppo di un linguaggio di programmazione che andasse al di là del linguaggio macchina e fosse più vicino alla sintassi e alla semantica del linguaggio naturale. In questo modo, sosteneva Backus, la programmazione sarebbe stata più semplice e intuitiva e il tempo di realizzazione dei programmi sarebbe drasticamente calato. Il linguaggio resta indipendente dall'ambiente operativo della macchina utilizzata. COBOL In informatica il COBOL (acronimo di COmmon Business-Oriented Language, ossia, letteralmente, "linguaggio comune orientato alle applicazioni commerciali") è uno dei primi linguaggi di programmazione ad essere stato sviluppato. Nonostante sia un linguaggio datato il COBOL è tuttora presente in molte applicazioni software commerciali di tipo bancario, specie lato mainframe (es. CICS). PASCAL Il Pascal è un linguaggio di programmazione inizialmente basato sul concetto di programmazione strutturata, caratterizzato da una estrema rigidità, poi esteso anche alla programmazione orientata agli oggetti. Le sue peculiarità sono date dall'intenzione del suo creatore, Niklaus Wirth, di creare un linguaggio che, a differenza del BASIC, forzasse da parte del programmatore uno studio accurato dell'algoritmo e che fosse dotato di funzionalità e strutture dati avanzate. Questi elementi lo rendono uno dei linguaggio più usati a livello didattico, soprattutto nelle scuole. BASIC Il BASIC, almeno nelle versioni di Kemeny e Kurtz che costituiscono il cosiddetto "Dartmouth BASIC", fu progettato per essere un linguaggio semplice da imparare. Le istruzioni erano poche e non complesse. Il BASIC offriva inoltre pochi costrutti strutturati, quindi orientati alla creazione di programmi chiari e comprensibili. Fu pensato inoltre come un linguaggio algoritmico, adatto cioè a programmare algoritmi. RPG RPG oppure RPG IV è un linguaggio di programmazione nativo per minicomputer IBM della serie iSeries, denominata anche, più comunemente, AS/400. La sua versione più recente comprende l'uso di prototipi di funzioni e procedure, binding statico e dinamico dei dati, accesso a librerie di routine scritte in C, uso di funzioni contenute in DLL compilate a partire da altri linguaggi, e supporta totalmente codice dotato di sintassi ricorsiva e rientrante. C Il C è un linguaggio di programmazione compilato. Ciò vuol dire che è necessario utilizzare un "compilatore" per trasformare il codice sorgente in un programma eseguibile dal sistema operativo. Il livello di programmazione offerto dal C è relativamente basso, pertanto è possibile creare programmi molto performanti e per questo motivo viene utilizzato in molte applicazioni che necessitano di prestazioni elevate (sistemi operativi, giochi per PC, applicazioni embedded, ecc.). La sintassi è molto semplice, ma per diventare esperti programmatori, è necessaria moltissima pratica. Uno dei punti forti del C è sicuramente la gestione della memoria: è il programmatore stesso infatti che alloca determinati blocchi di memoria e si occupa della loro deallocazione. Inoltre è un linguaggio molto flessibile, con tipi di dati che permettono di costruire strutture dati anche molto complesse. Il C è un linguaggio procedurale. Ciò vuol dire che non esistono classi, oggetti, eventi, ecc. come per esempio nel C++, Java e molti altri linguaggi di più alto livello. L'elemento "portante" dei programmi C è costituito infatti dalle funzioni o procedure. C++ Il C++ è un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. È stato sviluppato (in origine col nome di "C con classi") da Bjarne Stroustrup ai Bell Labs nel 1983 come un miglioramento del linguaggio C. Tra i miglioramenti principali troviamo: l'introduzione del paradigma di programmazione a oggetti, funzioni virtuali, overloading degli operatori, ereditarietà multipla, template e gestione delle eccezioni. JAVA In informatica Java è un linguaggio di programmazione orientato agli oggetti, specificatamente progettato per essere il più possibile indipendente dalla piattaforma di esecuzione. PHP PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page") è un linguaggio di programmazione interpretato, originariamente concepito per la programmazione di pagine web dinamiche. L'interprete PHP è un software libero distribuito sotto la PHP License. Attualmente è principalmente utilizzato per sviluppare applicazioni web lato server, ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica. LISP e PROLOG Sono linguaggi sviluppati in progetti di Intelligenza Artificiale (già predecessori linguaggi funzionali quale il Lisp nel ‘58, linguaggi logici quali il Prolog nel 70) in cui si sono incorporate alcune tecniche di ragionamento deduttivo ed appartengono ad un livello gerarchicamente ancora più elevato di descrizione di programmi sempre più distante dall’hardware. A cura di BORIOTTI FRANCESCA, 3E