0 corrisponde alla mancanza di tensione (cioè 0 Volt); 1 corrisponde invece alla presenza di tensione (in genere 5 Volt);

Documenti analoghi
Corso di Informatica

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Dispensa di Informatica I.1

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Linguaggio C. Fondamenti. Struttura di un programma.

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Linguaggi e Paradigmi di Programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Architettura hardware

Origini e caratteristiche dei calcolatori elettronici

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Al giorno d oggi, i sistemi per la gestione di database

FONDAMENTI di INFORMATICA L. Mezzalira

La Macchina Virtuale

Protezione. Protezione. Protezione. Obiettivi della protezione

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

I LINGUAGGI DI PROGRAMMAZIONE

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Corso di PHP. Prerequisiti. 1 - Introduzione

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Introduzione alla programmazione in C

INFORMATICA 1 L. Mezzalira

LINGUAGGI DI PROGRAMMAZIONE

Informazione e dato. Gabriella Trucco

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Esercizi su. Funzioni

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Linguaggi di programmazione

Laboratorio di Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

I sistemi di numerazione

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Informatica - A.A. 2010/11

Uso di base delle funzioni in Microsoft Excel

Esame di INFORMATICA

Database. Si ringrazia Marco Bertini per le slides

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Lezione V. Aula Multimediale - sabato 29/03/2008

PSG Table Builder Manuale Utente. PSG TABLE BUILDER Manuale Utente

Approccio stratificato

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

introduzione I MICROCONTROLLORI

Ing. Paolo Domenici PREFAZIONE

Organizzazione degli archivi

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

SISTEMI DI NUMERAZIONE E CODICI

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Il Web Server e il protocollo HTTP

1. BASI DI DATI: GENERALITÀ

Novità di Access 2010

COMPETENZE INFORMATICHE DI BASE PER ADULTI

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Richiami di informatica e programmazione

Corso di Informatica

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

Il database management system Access

Corso di PHP. Prerequisiti. 1 - Introduzione

Il Sistema Operativo (1)

Elettronica dei Sistemi Programmabili

Programmazione ad Oggetti. Java Parte I

Appunti sulla Macchina di Turing. Macchina di Turing

Concetti di base di ingegneria del software

Corso sul linguaggio SQL

Strumenti di modellazione. Gabriella Trucco

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Strutturazione logica dei dati: i file

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Laboratorio Matematico Informatico 2

LINGUAGGI DI PROGRAMMAZIONE

C. P. U. MEMORIA CENTRALE

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

Java: Compilatore e Interprete

Base di dati e sistemi informativi

Lezione 9. Applicazioni tradizionali

Introduzione ai database relazionali

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Convertitori numerici in Excel

Cosa è un foglio elettronico

Architettura del calcolatore

Volumi di riferimento

Transcript:

Linguaggio binario utilizziamo comunemente il sistema decimale per contare ed eseguire calcoli, attraverso l uso di 10 simboli che vanno da 0 a 9. Al contrario, per contare ed effettuare calcoli (ma non solo), i computer eseguono un altro sistema che è chiamato sistema binario, proprio perché è costituito da 2 soli simboli: 0 ed 1. Questa scelta è stata fatta perché i computer (ed in generale tutti i circuiti elettronici) capiscono solamente questi due simboli, che in pratica corrispondono agli stati in cui può trovarsi un circuito elettrico: 0 corrisponde alla mancanza di tensione (cioè 0 Volt); 1 corrisponde invece alla presenza di tensione (in genere 5 Volt); Mediante l uso di queste due sole cifre, è possibile rappresentare però non solo i numeri, ma anche parole, immagini, video, suoni, ed in generale qualsiasi tipo di informazione digitale. Il computer, infatti, prima converte, ad esempio, un numero, un simbolo o una parola in questo sistema binario, esegue i calcoli e una volta convertiti i risultati dal sistema binario a quello decimale, restituisce quindi le immagini, i video, l audio e qualsiasi altro tipo di informazione. Linguaggio 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 in forma mnemonica; per esempio, il codice operativo per la somma potrebbe essere trascritto come ADD e quello per il salto come JMP. In secondo luogo, i dati e gli indirizzi di memoria manipolati dal programma possono essere scritti, in assembly, nella base numerica più consona al momento: esadecimale, binaria, decimale, ottale ma anche in forma simbolica, utilizzando stringhe di testo (identificatori). Il programma assembly risulta in questo modo relativamente più leggibile di quello in linguaggio macchina, con il quale mantiene però un totale (o quasi totale) isomorfismo. Il programma scritto in assembly non può essere eseguito direttamente dal processore; esso deve essere tradotto nel linguaggio macchina (binario) corrispondente, usando un programma compilatore detto Assembler. Linguaggio fortran Il Fortran è uno dei primi linguaggi di programmazione, essendo stato sviluppato a partire dal 1954, da un gruppo di lavoro guidato da John Backus. Il primo manuale di riferimento per il programmatore del FORTRAN I, "The FORTRAN automatic coding system for the IBM 704 EDPM", scritto dallo stesso Backus, è del 1956; il compilatore fu pubblicato nel 1957.Il Fortran è un linguaggio quasi sempre compilato, imperativo, con tipizzazione statica delle variabili, progettato principalmente per il calcolo scientifico e numerico; vi sono state però anche implementazioni con codice interpretato. Un tipo particolare di Fortran compilato è il Fortran FLAG (Fortran Load And Go), sviluppato da Bob Richardson, programmatore presso la Rice University, molto usato negli anni settanta per l'esecuzione di programmi non troppo complessi.

Grazie sia agli innumerevoli programmi applicativi sviluppati nel corso degli anni, sia alle immense librerie di funzioni (richiamabili anche da programmi scritti con altri linguaggi di programmazione), il Fortran è tuttora molto usato. Di esso esistono varianti per il calcolo parallelo (usate nel calcolo scientifico: simulazione di fluidi, interazioni fra particelle, previsioni meteorologiche, ecc.); inoltre, anche se progettato originariamente come linguaggio procedurale, alcune sue versioni più recenti consentono di usare anche costrutti propri della programmazione orientata agli oggetti. Linguaggio cobol Ogni programma COBOL deve contenere quattro divisioni, anche se queste dovessero essere vuote, rispettando l'ordine seguente: 1. IDENTIFICATION DIVISION 2. ENVIRONMENT DIVISION 3. DATA DIVISION 4. PROCEDURE DIVISION La divisione IDENTIFICATION DIVISION serve a identificare il programma. Vi si possono includere informazioni generali, come il nome del programma stesso, la data di edizione, la data di compilazione, il nome dell'elaboratore per il quale è stato scritto e altre annotazioni. La divisione ENVIRONMENT DIVISION specifica le apparecchiature usata e i file che servono al programma. La divisione DATA DIVISION contiene la descrizione dei file e dei record relativi, creati o utilizzati dal programma, assieme a tutte le altre variabili e costanti che servono al programma. La divisione PROCEDURE DIVISION specifica il procedimento elaborativo da applicare ai dati. Le «azioni» descritte nel programma COBOL sono espresse in termini di istruzioni, che possono essere riunite in gruppi di istruzioni e poi in paragrafi. Linguaggio pascal Le caratteristiche principali del Pascal sono una sintassi molto chiara e molto rigida con l'obbligo di dividere il programma in sezioni ben definite (uses, implementation) e di dichiarare in anticipo tutte le variabili usate nel programma (var, const); permette l'uso di tipi di dati complessi e definibili dal programmatore (i record) tramite la sezione type; permette (con alcune rigidità) l'uso dei puntatori e l'allocazione dinamica della memoria (new e dispose). Il Pascal è pertanto classificato come linguaggio semidinamico, in quanto gestisce i puntatori, permettendo di creare liste di variabili di dimensione non nota all'atto della compilazione, ma questi possono essere solo di un tipo alla volta, il tipo usato per definire la variabile puntatore stessa. Al posto delle subroutine di uso comune nei linguaggi di allora, il Pascal introduce le procedure e le funzioni, che estendono il concetto di subroutine incapsulando al loro interno le variabili e i dati locali, ed esponendo solo i valori in ingresso ed in uscita. Inoltre, nella sua formulazione originale, era privo dell'istruzione GOTO, aggiunta poi in seguito con riluttanza.

Linguaggio 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. Per questo si differenziò dalla maggior parte dei linguaggi suoi coetanei enfatizzando la semplicità d'uso piuttosto che la potenza espressiva. Nacque infatti, come dice il suo nome, per poter essere usato anche da principianti (il 75% degli studenti dell'università di Dartmouth era iscritto a facoltà umanistiche). Le istruzioni erano poche e non complesse. Il BASIC offriva inoltre (non per scelta degli autori, ma solo perché era figlio del suo tempo) pochi costrutti strutturati, quindi orientati alla creazione di programmi chiari e comprensibili. Fu pensato inoltre come un linguaggio algoritmico, adatto cioè a programmare algoritmi. Fu anche progettato per essere un linguaggio facilmente trasportabile su calcolatori diversi dal GE-225 su cui giravano le prime versioni. Concepito e realizzato originariamente come linguaggio compilato, molte delle sue versioni più note fanno tuttavia uso di interpreti. Linguaggio RPG Un programma RPG inizia tipicamente con una File Specification, contenente la lista di tutti i file da scrivere, leggere o modificare, seguita da una Input Specification, con le strutture dei dati (data Structures) e le matrici. Segue la Calculation Specification che racchiude la parte più importante del programma, ed infine la Output Specification, usata, fra l'altro, per impostare l'aspetto dei report stampati. Una delle modalità di funzionamento più caratteristiche del linguaggio è il cosiddetto ciclo (The Cycle): ogni programma RPG gira all'interno di un loop (letteralmente anello, cioè gruppo di istruzioni eseguite ciclicamente), che può essere usato, ad esempio, per esaminare uno alla volta tutti i record di un file. In alternativa il ciclo può ripetersi per un numero indefinito di volte, finché non viene interrotto dal verificarsi di un evento, oppure a seguito di un esplicito comando dell'utente. Altra caratteristica dell'rpg è che, molto più del COBOL e del FORTRAN, il modo in cui il codice è scritto è strettamente dipendente da come il testo è incolonnato. In altre parole anche gli spazi vuoti all'interno del codice devono avere un'esatta dimensione. Tutto questo era valido fino a qualche anno fa. Ultimamente il linguaggio si è evoluto e permette anche la scrittura in formato libero. Linguaggio C Il C è un linguaggio di programmazione relativamente minimalista; la sua semantica utilizza un insieme ristretto di concetti relativamente semplici e vicini al funzionamento dell'hardware dei calcolatori; molte istruzioni C sono traducibili direttamente con una singola istruzione di linguaggio macchina (per esempio, gli operatori di autoincremento e autodecremento). Nel linguaggio un ruolo centrale viene svolto dal concetto di puntatore, che viene generalizzato fino a coincidere con l'indirizzamento indiretto, un modo di accedere alla memoria hardware caratteristico di tutte le moderne CPU. Questo rende il C un linguaggio particolarmente efficiente. D'altra parte, rispetto al linguaggio assembly il C ha in più una struttura logica definita e leggibile, funzioni in stile Pascal e soprattutto il controllo sui tipi (in fase di compilazione), che manca completamente in assembly.

La sintassi del C è piuttosto versatile e il linguaggio è in forma libera, permettendo di scrivere istruzioni complesse in poche righe di codice, o di creare programmi criptici e illeggibili (offuscamento del codice). In definitiva, il successo del C fu decretato dall'essere un linguaggio creato da programmatori esperti, per essere usato da programmatori esperti. Questa grande libertà, la complessità sintattica del linguaggio (che come abbiamo visto contiene poche istruzioni di base) e il ruolo centrale dei puntatori, che è necessario usare praticamente fin dai primi programmi, ne fanno viceversa un linguaggio ostico e sconsigliabile ai neofiti, che cadono quasi subito in una serie di trappole che, se pure ovvie per un esperto, sono molto difficili da individuare per un principiante. Il suo successivo larghissimo utilizzo portò alla nascita di diversi dialetti e quindi alla necessità di definirne uno standard: a questo scopo nell'estate del 1983 venne nominato un comitato con il compito di creare uno standard ANSI (American National Standards Institute) che definisse il linguaggio C una volta per tutte. Il processo di standardizzazione, il quale richiese sei anni (molto più del previsto), terminò nel dicembre del 1989, e le prime copie si resero disponibili agli inizi del 1990. Questa versione del C è normalmente chiamata C89. Lo standard venne anche adottato dall'international Organisation for Standardisation (ISO) nel 1999 con il nome di C Standard ANSI/ISO. Nel 1995 fu adottato l'emendamento 1 al C Standard che, fra le altre cose, ha aggiunto nuove funzioni alla libreria standard del linguaggio. Usando come documento base il C89 con l'emendamento 1, e unendovi l'uso delle classi di Simula, Bjarne Stroustrup iniziò a sviluppare il C++. Il risultato finale del continuo sviluppo del C fu lo standard promulgato nel 1999, noto come ISO C99 (codice ISO 9899). Con l'ultima versione C11 (2011) vengono lievemente rivisti alcuni comandi. Linguaggio java Uno dei principi fondamentali del linguaggio è espresso dal motto write once, run anywhere (WORA): 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. Al 2014, Java risulta essere uno dei linguaggi di programmazione più usati al mondo, specialmente per applicazioni client-server, con un numero di sviluppatori stimato intorno ai 9 milioni. 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. Linguaggio java PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di

programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre 3.000 funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, MariaDB, Oracle, Firebird, IBM DB2, Microsoft SQL Server solo per citarne alcuni tra cui anche database NoSql come per esempio MongoDB, e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e.net e si può dire che esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL ed altro. Fornisce un'api specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite. Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL che raccoglie tutte le estensioni conosciute scritte in C. PHP non ha ancora un supporto nativo per le stringhe Unicode o multibyte; il supporto Unicode è in fase di sviluppo per una futura versione di PHP, e consentirà di usare caratteri non ASCII in stringhe e nomi di funzioni, classi e metodi.