I Linguaggi Di Luca Brugnone 13/11/2007 Linguaggio naturale Linguaggio utilizzato dall’uomo,composto da parole. Lontano dalla macchina. Linguaggio macchina Il linguaggio macchina è l’unico linguaggio comprensibile ai calcolatori,infatti viene utilizzato per scrivere i programmi eseguibili per computer. Può essere definito un linguaggio di programmazione, anche se questa espressione è utilizzata per indicare i linguaggi di alto livello con cui si scrivono programmi non direttamente eseguibili, ma che richiedono una traduzione in linguaggio macchina per mezzo di un compilatore. La CPU è il componente che è in grado di eseguire i programmi scritti in linguaggio macchina. Il linguaggio macchina è basato su un alfabeto detto binario perché comprende due soli simboli, 0 e 1. Un simbolo di questo alfabeto viene detto bit. Ogni modello di processore è in grado di comprendere un proprio linguaggio macchina. Come nel linguaggio naturale, nel linguaggio macchina i simboli dell'alfabeto utilizzato (1 e 0) sono organizzati in "parole" che a loro volta costituiscono "frasi". Le frasi del linguaggio macchina sono dette istruzioni,ogni istruzione ordina al processore di eseguire un'azione all'interno del computer. Assembly L'assembly ha lo scopo generale di consentire al programmatore di ignorare il formato binario del linguaggio macchina. Ogni codice operativo del linguaggio macchina viene sostituito, nell'assembly ,da una sequenza di caratteri che lo rappresenta, per esempio, il codiceoperativo per la somma viene trascritto come ADD. L'assembly è un linguaggio ideale per chi desidera sfruttare al meglio le potenzialità del computer. Programmando in Assembly si ha il controllo completo del computer,di ogni singolo bit e di ogni singolo registro. Purtroppo programmare in assembly non è facile,un banale errore può causare il crash del sistema. Per usare questo linguaggio è necessario conoscere l'hardware e la struttura della CPU. Il programma scritto in assembly non può essere eseguito direttamente dal processore,esso deve essere tradotto informa binaria, usando un compilatore detto assembler. Linguaggi ad alto livello Un linguaggio di programmazione ad alto livello è un linguaggio di programmazione direttamente eseguibile da un computer; i programmi scritti in un linguaggio ad alto livello possono essere eseguiti tramite un compilatore, un interprete, o da una combinazione di questi strumenti. L'idea di fondo è che i programmi ad alto livello possono essere ricondotti a programmi in linguaggio macchina in modo automatico. Quest'idea rivoluzionaria fu introdotta in informatica nella seconda metà degli anni cinquanta,grazie al lavoro di John Backus presso IBM,dove fu sviluppato il primo compilatore per il linguaggio FORTRAN (in seguito, Backus ricevette per questo motivo il premio Turing). Un linguaggio di programmazione può essere descritto "più ad alto livello" di un altro se si discosta in modo più radicale dalle caratteristiche tipiche del linguaggio macchina. I linguaggi ad alto livello più diffusi sono: Fortran,Cobol,Java,C##,pascal,basic. Fortran Il Fortran è un linguaggio compilato progettato principalmente per il calcolo scientifico e numerico. Ideato da John Backus,esso è uno dei primi linguaggi di programmazione essendo stato sviluppato a partire dal 1954. Il suo nome deriva da Formula Translation (o Translator), cioè traduzione/traduttore di formule (matematiche) in algoritmi computazionali. Ecco un esempio di Hello world: PROGRAM HELLO PRINT *, 'Hello, world' END Cobol Il COBOL è un linguaggio ad alto livello di tipo procedurale, orientato allo sviluppo di applicazioni commerciali e per l'elaborazione di grossi volumi di dati. Le istruzioni, molto simili a frasi della lingua inglese, sono organizzate in uno schema dalla struttura rigida, composto di sezioni e paragrafi. Caratteristica precipua dei programmi scritti in COBOL è la struttura sempre formata da quattro DIVISION, (divise a loro volta in SECTION), che devono sempre essere collocate nel seguente ordine: IDENTIFICATION DIVISION: contiene i dati identificativi del programma (nome, autore, data ecc.) ENVIRONMENT DIVISION: contiene i dati relativi alle macchine su cui è stato sviluppato e su cui girerà il programma. DATA DIVISION: Contiene la struttura dei dati che è organizzata in modo gerarchico. PROCEDURE DIVISION: Contiene le istruzioni. Un esempio di Hello world: 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. HELLOWORLD. 000300 DATE-WRITTEN. 02/05/96 21:04. 000400* AUTHOR BRIAN COLLINS 000500 ENVIRONMENT DIVISION. 000600 CONFIGURATION SECTION. 000700 SOURCE-COMPUTER. RM-COBOL. 000800 OBJECT-COMPUTER. RM-COBOL. 000900 001000 DATA DIVISION. 001100 FILE SECTION. 001200 100000 PROCEDURE DIVISION. 100100 100200 MAIN-LOGIC SECTION. 100300 BEGIN. 100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 100500 DISPLAY "HELLO, WORLD." LINE 15 POSITION 10. 100600 STOP RUN. 100700 MAIN-LOGIC-EXIT. 100800 EXIT. Java Il linguaggio Java è un linguaggio di programmazione orientato agli oggetti, derivato dal C++ (e quindi indirettamente dal C) e creato da James Gosling e altri ingegneri di Sun Microsystems. Il gruppo iniziò a lavorare nel 1991, il linguaggio inizialmente si chiamava Oak. Il nome fu successivamente cambiato in Java a causa di un problema di copyright (il linguaggio di programmazione Oak esisteva già nel 1991). Java fu annunciato ufficialmente il 23 maggio 1995 a SunWorld. Java venne creato per soddisfare quattro scopi: 1. essere orientato agli oggetti 2. essere indipendente dalla piattaforma 3. contenere strumenti e librerie per il networking 4. essere progettato per eseguire codice da sorgenti remote in modo sicuro Per facilitare il passaggio a questo linguaggio per i programmatori old-fashioned legati in particolare a linguaggi come il C la sintassi di base è stata mantenuta pressoché identica. Esempio di Hello World: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } C## Il C## (si pronuncia C sharp, sharp in inglese significa "in gamba" o più semplicemente diesis) è un linguaggio di programmazione sviluppato da Microsoft all'interno dell'iniziativa .NET, e successivamente approvato come standard ECMA. La sintassi del C# prende spunto da quella del Delphi (hanno il medesimo autore), del C++, da quella di Java ed a Visual Basic per gli strumenti di programmazione visuale e per la sua semplicità (meno simbolismo rispetto a C++, meno elementi decorativi rispetto a Java). Esempio di Hello World: using System; class HelloWorldApp { public static void Main() { Console.WriteLine("Hello World"); } }