IL SISTEMA NUMERICO BINARIO
Il sistema numerico binario è un sistema numerico posizionale in base 2. Esso utilizza solo due
simboli, di solito indicati con 0 e 1, invece delle dieci cifre utilizzate dal sistema numerico decimale.
Ciascuno dei numeri espressi nel sistema numerico binario è chiamato "numero binario".
In informatica il sistema binario è utilizzato per la rappresentazione interna dell'informazione dalla
quasi totalità degli elaboratori elettronici, in quanto le caratteristiche fisiche dei circuiti digitali
rendono particolarmente conveniente la gestione di due soli valori, rappresentati fisicamente da
due diversi livelli di tensione elettrica. Tali valori assumono convenzionalmente il significato
numerico di 0 e 1 o quelli di vero e falso della logica booleana.
Un numero binario è una sequenza di cifre binarie (dette bit). Ogni cifra in posizione n (contate da
destra verso sinistra iniziando da 0) si considera moltiplicata per 2^{n}, anziché per 10^{n}, come
avviene nella numerazione decimale.
La formula per convertire un numero da binario a decimale (dove con d_n si indica la cifra di
posizione n all'interno del numero, contate da destra verso sinistra iniziando da 0) è
Ad esempio
ASSEMBLER
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.
Il termine assembler deriva dal fatto che le istruzioni vengono convertite e montate una accanto
all'altra come se fossero in fila.
Ci sono molti tipi di linguaggi assembly e di conseguenza diversi assemblatori: esistono gli
assembler per programmare i microchip, per creare programmi sul Personal Computer, per telefoni
cellulari, ecc. Questo perché un assemblatore produce linguaggi macchina per una specifica
famiglia di processori (intel 8086, 80386, Motorola 68000, ecc.).
FORTRAN
Il Fortran (o FORTRAN: il nome maiuscolo è stato sostituito da quello con la sola iniziale
maiuscola a partire dal Fortran 90 - acronimo di Formula Translation o Translator ovvero
traduzione/traduttore di formule matematiche in algoritmi computazionali), è 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.
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), che non si è preferito o voluto migrare in altra tecnologia software.
In generale, le istruzioni del linguaggio COBOL sono da intendere come frasi scritte in inglese, che
terminano con un punto fermo. In certe situazioni, si riuniscono più istruzioni in un'unica «frase»,
che termina con un punto, ma in tal caso spesso si usa la virgola, e il punto e virgola per
concludere le istruzioni singole.
Le istruzioni del linguaggio si compongono in linea di massima di parole chiave, costanti letterali e
operatori matematici. Le parole chiave sono scritte usando lettere maiuscole (dell'alfabeto inglese)
e il trattino normale (-); dal COBOL2 si possono utilizzare indifferentemente le maiuscole e le
minuscole. In generale, i simboli che si possono usare nel linguaggio sono abbastanza limitati, con
l'eccezione del contenuto delle costanti alfanumeriche letterali, che teoricamente potrebbero
contenere qualunque simbolo (escluso quello che si usa come delimitatore) secondo le potenzialità
del compilatore particolare.
PASCAL
In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth. Si basa sul
linguaggio ALGOL e fu così chiamato in onore del matematico e filosofo francese Blaise Pascal,
inventore della prima macchina calcolatrice automatica.
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.
BASIC
Il BASIC, in informatica,[1] è un linguaggio di programmazione ad alto livello sviluppato nel 1964
presso l'Università di Dartmouth sul calcolatore GE-225. Ne furono coinventori i professori John
George Kemeny e Thomas Eugene Kurtz. Il primo programma in BASIC "girò" il 1º maggio 1964
alle ore 4:00.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.
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.
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.
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.Il C++ è molto diffuso e apprezzato, ma raramente è
usato al massimo delle sue potenzialità poiché la semantica del C++ è molto ricca di dettagli e
sfumature che condizionano il comportamento del codice, e che molto spesso i compilatori
implementano in maniera scorretta o incompleta: molte delle caratteristiche dello standard ISO del
linguaggio non sono ancora implementate nei compilatori attuali, anche se la situazione sta
lentamente migliorando. La grande ricchezza semantica del C++, insieme alle librerie che lo
accompagnano, lo rende un linguaggio estremamente espressivo e potente, ma che richiede molto
tempo per venire appreso e padroneggiato completamente. Il C++ fu standardizzato nel 1998
(ISO/IEC 14882:1998 "Information Technology - Programming Languages - C++", aggiornato nel
2003). C++11, conosciuto anche come C++0x, è il nuovo standard per il linguaggio di
programmazione C++ che sostituisce la revisione del 2003. L'ultima versione dello standard (nota
informalmente come C++14) è stata pubblicata nel 2014.
JAVA
In informatica Java è un linguaggio di programmazione orientato agli oggetti, specificatamente
progettato per essere il più possibile indipendente dalla piattaforma di esecuzione.
Java venne creato per soddisfare quattro scopi:
- essere orientato agli oggetti;
- essere indipendente dalla piattaforma;
- contenere strumenti e librerie per il networking;
- essere progettato per eseguire codice da sorgenti remote in modo sicuro.
PHP
PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti;
originariamente acronimo di "Personal Home Page"[3]) è 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.
Un esempio di software scritto in PHP è MediaWiki, su cui si basano progetti wiki come Wikipedia
e Wikizionario.
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.
ASP
In informatica, le Active Server Pages (Pagine Server Attive, in genere abbreviato in ASP) sono
pagine web contenenti, oltre al puro codice HTML, degli script che verranno eseguiti dal server
(elaborazione lato server) per generare il codice HTML runtime da inviare al browser dell'utente
(proprio per questo vengono in genere definite pagine web dinamiche). In questo modo è possibile
mostrare contenuti dinamici (ad esempio estratti da database che risiedono sul server web) e
modificarne l'aspetto secondo le regole programmate negli script, il tutto senza dover inviare il
codice del programma all'utente finale (al quale va inviato solo il risultato), con notevole risparmio
di tempi e banda. La tecnologia ASP comprende alcuni linguaggi di scripting per la
programmazione Web all'interno del cosiddetto paradigma del Web dinamico.