I LINGUAGGI DI PROGRAMMAZIONE 1a Generazione (linguaggio binario) Il sistema binario è un sistema numerico posizionale in base 2, cioè che utilizza due simboli, tipicamente 0 e 1, invece dei 10 del sistema decimale tradizionale. E’ usato in informatica per la rappresentazione interna dei numeri, grazie alla semplicità di realizzare fisicamente un elemento con due stadi anziché un numero superiore, ma anche per la corrispondenza con i valori logici vero e falso. La conversione di un numero decimale in binario si effettua tramite l’algoritmo della divisione: si effettua la divisione intera del numero per 2, il resto della divisione costituisce la cifra meno significativa: si procede così sul quoziente fino a quando quest’ultimo non si annulla. 2a Generazione (linguaggio assembler) Il linguaggio assembly detto anche linguaggio assemblativo, è, tra i linguaggi di programmazione, quello più vicino al linguaggio macchina vero e proprio, pur essendo differente rispetto a quest'ultimo. Un assembler (assemblatore in italiano) è un software che trasforma le istruzioni mnemoniche dell'assembly in linguaggio macchina. Si tratta dunque di un compilatore per un particolare linguaggio assembly. 3a Generazione (Fortran, Cobol, RPG) Fortran: Primo linguaggio per cui `e stato scritto un compilatore (1954). Da allora, si `e molto evoluto: ultime versioni Fortran 90, Fortran 95 Fortran 2003. Il Fortran puo` essere definito come un linguaggio di programmazione di alto livello: i programmi, infatti, non vengono scritti direttamente nel linguaggio di macchina ma, in un linguaggio che e` ben comprensibile per chi scrive il programma stesso. Cobol: Il linguaggio COBOL nasce nel 1959, come linguaggio standard, tuttavia, questo linguaggio è eccezionale nella gestione dei dati, avvicinandosi alle funzionalità di un sistema di gestione di basi di dati. Il linguaggio COBOL è fatto per consentire la migrazione di programmi applicativi su architetture fisiche e sistemi operativi differenti; si basa convenzionalmente sulla lingua inglese ed è composto sommariamente da parole, istruzioni, gruppi di istruzioni, paragrafi e sezioni. RPG: Un linguaggio creato da IBM nel 1959 e già utilizzabile su uno dei primi minielaboratori. Il nome che significa Report Program Generator (programma generatore di stampa),è un sistema d’elaborazione principalmente orientato alle aziende, quindi con esigenze massicce di stampare tabulati e moduli commerciali. Il linguaggio ha un input da schede perforate, svolge determinati calcoli per mandare infine i risultati verso la stampante. 4a Generazione (SQL,DML) SQL: in informatica (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale(RDBMS) progettato per: creare e modificare schemi di database (DDL - Data Definition Language); inserire, modificare e gestire dati memorizzati (DML - Data Manipulation Language); interrogare i dati memorizzati (DQL - Data Query Language); creare e gestire strumenti di controllo ed accesso ai dati (DCL - Data Control Language). Nonostante il nome, non si tratta dunque solo di un semplice linguaggio di interrogazione, ma alcuni suoi sottoinsiemi si occupano della creazione, della gestione e dell'amministrazione del database. DML: In informatica Data Manipulation Language è una famiglia di linguaggi che consente di leggere, inserire, modificare o eliminare i dati in un database. I comandi DML all'inizio erano utilizzati solo all'interno di programmi scritti in altri Linguaggi di programmazione, ma in seguito all'affermazione di SQL sono oggi usati anche dagli utenti finali. 5a Generazione (Prolog, OOP, C++, Java) Prolog: Il Prolog (contrazione del francese PROgrammation en LOGique) è un linguaggio di programmazione che adotta il paradigma di programmazione logica. Il Prolog è impiegato in molti programmi di intelligenza artificiale, la sua sintassi e la semantica sono molto semplici e chiare (lo scopo primitivo era quello di fornire uno strumento di lavoro a linguisti privi di conoscenze informatiche). Il Prolog si basa sul calcolo dei predicati (precisamente il calcolo di predicati del primo ordine); tuttavia la sintassi è limitata a formule dette clausole di Horn che sono disgiunzioni di letterali del primo ordine quantificate universalmente con al più un letterale positivo. OOP: In informatica la programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi. È particolarmente adatta nei contesti in cui si possono definire delle relazioni di interdipendenza tra i concetti da modellare (contenimento, uso, specializzazione). Un ambito che più di altri riesce a sfruttare i vantaggi della programmazione ad oggetti è quello delle interfacce grafiche. Tra gli altri vantaggi della programmazione orientata agli oggetti: fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre permette una più facile gestione e manutenzione di progetti di grandi dimensioni l'organizzazione del codice sotto forma di classi favorisce la modularità e il riuso di codice 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: Uno dei principi fondamentali del linguaggio è espresso dal motto write once, run anywhere (WORA scrivi una volta, esegui ovunque): il codice compilato che viene eseguito su una piattaforma non deve essere ricompilato per essere eseguito su una piattaforma diversa. Il prodotto della compilazione è infatti in un formato chiamato bytecode che può essere eseguito da una qualunque implementazione di un processore virtuale detto Java Virtual Machine. Il linguaggio deriva gran parte della sua sintassi dai linguaggi Simula, C e C++, ma ha meno costrutti a basso livello e implementa in modo più puro (rispetto al C++) il paradigma object-oriented.