PARANORMAL GROUP - Approfondimenti sul mondo dell'ignoto

LINGUAGGI DI PROGRAMMAZIONE

« Older   Newer »
  Share  
view post Posted on 27/7/2003, 23:19
Avatar

Senior Member

Group:
Administrator
Posts:
27,872

Status:


CRONOSTORIA DEI LINGUAGGI DI PROGRAMMAZIONE


1946
Konrad Zuse, ingegnere tedesco, sviluppa il primo linguaggio di programmazione in assoluto: il Plankalkül, mentre se ne stava nascosto sulle Alpi della Baviera in attesa della fine della Seconda Guerra Mondiale.
Usò il suo linguaggio come opponente nel gioco degli scacchi sul suo computer Z3.
Il linguaggio era già in grado di gestire sia tabelle che strutture di dati.
Il Plankalkül rimase seppellito in qualche archivio in Germania per molto tempo.

1949
Viene sviluppato un primo linguaggio di uso comune, lo Short Code.
Deve essere compilato in codice macchina manualmente.
A dispetto del nome, le notti tenderebbero ad allungarsi parecchio, usando questo linguaggio!

1951
Grace Hopper (la famosa "nonnina del COBOL"), inizia lo sviluppo del compilatore A-O, noto anche come AT-3.
1952
Alick Glennie, sviluppa, parallelamente ai suoi studi, il compilatore AutoCode, che serve a compilare un linguaggio simbolico assembler per il computer Manchester Mark I.

1954
IBM inizia lo sviluppo del FORTRAN, basandosi sul linguaggio A-O.

1957
A-O viene pubblicato col nome Math-Matic, e inizia così l'utilizzo di un primo linguaggio di programmazione comunemente conosciuto.
Anche FORTRAN (FORmula TRANslator) è pubblicato.
L'uso primario del linguaggio è per calcolare espressioni matematiche.
Tra le sue doti la grande semplicità nelle funzioni di input/output e la sua succinta ed elegante codifica.
FORTRAN diventa così il primo linguaggio commerciale di alto livello.
Il leader del gruppo di sviluppo, John Backus passa quindi allo sviluppo di ALGOL e BNF.

1958
Viene presentata una nuova versione di linguaggio, il FORTRAN II.
Tra le sue nuove caratteristiche offre la gestione di sottoprogrammi e link a funzioni di codice macchina.
John McCarthy inizia lo sviluppo di LISP (LISt Processing, oppure, per gli amici "Lots of Irritating Superfluous Parentheses" :-) ).
Il linguaggio, grazie alle sue funzioni, è alla base di applicazioni per Intelligenza Artificiale.
Insieme ad altri viene usato nel gioco Abuse, i cui livelli e funzioni sono determinati dal codice LISP, compilato quando inizia il gioco.
Viene anche pubblicata la definizione di base di ALGOL 58, noto anche come IAL (International Algebraic Language).

1959
Nasce il COBOL (COmmon Business Oriented Language), alla conferenza del Data Systems and Languages (CODASYL).
COBOL è un linguaggio commerciale istituzionale, ancora utilizzato al giorno d'oggi in moltissime aziende.
E' pensato per gestire una grande quantità di dati, ma può essere valido anche per tanti altri scopi.
Anche se viene apprezzato dai tecnici, lo è senz'altro meno del BASIC, a causa della sua eccessiva verbosità.
LISP 1.5 è pubblicato.

1960
ALGOL 60, il primo linguaggio costruito a segmenti, è disponibile.
Diverse versioni di Pascal e di C saranno successivamente sviluppate traendo ispirazione proprio da ALGOL 60, che diventa il più noto linguaggio di programmazione in Europa, verso la fine degli anni '60.

1961
Keneth Iversson sviluppa APL (A Programming Language), che usa anche caratteri speciali e richiede periferiche compatibili per funzionare correttamente.
Il linguaggio comprende molte soluzioni speciali e interazioni, ma molte altre funzioni sono assenti. E' pensato quasi esclusivamente per applicazioni matematiche.

1962
Esordio del FORTRAN IV.
SNOBOL, (StriNg Oriented symBOlic Language), uno strano linguaggio con particolari trovate, è sviluppato presso i Bells laboratories.
Nel 1971, i compilatori FASBOL e SPITBOL (SPeedy ImplementTation of snoBOL) verranno poi sviluppati proprio sulla base di SNOBOL.
Il linguaggio è usato per gestire testi e formule.

1963
Viene rilasciata una nuova versione di ALGOL 60.
In IBM inizia lo sviluppo di PL/I, che dovrebbe includere le migliori funzionalità di ALGOL 60, FORTRAN e COBOL.

1964
APL/360, è la prima reale applicazione per APL messa in funzione.
John Kemeny and Thomas Kurtz inventano il BASIC (Beginners' All-purpose Symbolic Instruction Code) e il suo compilatore. Il primo programma BASIC gira alle 4 del mattino del primo maggio 1964.
PL/I è pubblicato. Questo linguaggio è ancora molto usato in ambienti IBM.
Sempre la IBM distribuisce anche il linguaggio RPG (Report Program Generator), specializzato nella creazione di report commerciali. Una precedente versione era stata comunque già annunciata nel 1960 per il sistema IBM 1401.
Le versioni RPG II e RPG III saranno poi pubblicate negli anni '70.

1965
SNOBOL3 è pubblicato ed entro l'anno successivo saranno sviluppati anche i compilatori per computer DEC -- per il PDP-6 e PDP-10.

1966
FORTRAN 66 è pubblicato. Sarà poco utilizzato perchè nuovi standard lo rimpiazzeranno molto presto.
Anche LISP2 viene rilasciato.
Inizia anche lo sviluppo di LOGO, che può essere paragonato a LISP, ma più orientato ai bambini e ai principianti.

1967
SNOBOL prosegue nello sviluppo ed esce una versione SNOBOL4.
Il linguaggio è usato, per esempio, nelle analisi e per le compilazioni di linguaggio di alto livello.
In Norvegia, a Oslo, viene annunciato Simula.
Si basa su ALGOL60, ma comprende anche la gestione delle classi.
Simula, originariamente pensato per simulazioni, diverrà più tardi un linguaggio completo centrato sulla programmazione a oggetti.

1968
Niklaus Wirth inizia lo sviluppo del Pascal, ancora usato a scopi educativi.
ALGOL 68 è pubblicato. Alcuni membri del comitato di standardizzazione sono restii ad approvarlo perchè lo giudicano pesante, con problemi pratici di utilizzo ed estremamente complesso.
COBOL diventa una versione certificata ANSI.
I laboratori Bells annunciano ALTRAN, un clone del FORTRAN.

1969
500 partecipano alla conferenza su APL nel quartier generale di IBM in New York.
La domanda di APL iè molto lontana dalle aspettative.
BCPL (Basic CPL) viene sviluppato in Inghilterra.
Il linguaggio si basa su CPL (Combined Programming Language) e getterà le basi dei successivi sviluppi dei linguaggi B e poi C.
BCPL è un linguaggio di basso livello, che comprende solo semplici tipi di dati.

1970
Charles Moore crea il Forth.
Il telescopio di Kitt Peaks è, per esempio, controllato da un programma FORTH.
Secondo Moore il Forth doveva essere un linguaggio di quarta generazione (fourth generation), ma siccome il suo sistema operativo prevedeva nomi di file di soli 5 caratteri, fu battezzato Forth.
In Francia parte lo sviluppo di PROLOG (PROgramming LOGic), che diventa il primo programma di intelligenza artificiale e di logica.
Si basa sul teorema SLD è comprende molti diversi linguaggi per scopi diversi.
Alla Xerox PARC inizia lo sviluppo di Smalltalk.
Smalltalk è un linguaggio object-oriented molto pulito.
Negli anni successivi saranno sviluppate le versioni Smalltalk-72, Smalltalk-74 and Smalltalk-76. Quest'ultimo ispirandosi anche a Simula.
Il programma Pascal fa la sua comparsa sui computer CDC-6000.

Icon è pubblicato. E il linguaggio B viene sviluppato per il sistema Unix PDP-11.
Il linguaggio B si ispira al BCPL.

1972
Dennis Ritchie crea il linguaggio "C", derivandolo dal "B".
Il compilatore C è incluso nel sistema operativo di Unix e il suo utilizzo crescerà in modo esplosivo anche al di fuori dei laboratori Bell.
Il C appare semplice, efficiente e flessibile.
Portare programmi scritti in C su altri sistemi operativi è più facile che con altri linguaggi.
Il C sembra sposare l'eleganza ed efficienza dei linguaggi macchina con la chiarezza e manutenibilità dei linguaggi di alto livello.
Entra in funzione la prima applicazione scritta in PROLOG.
Dopo appena 26 anni ricompare la documentazione di Plankalkül, il famoso primo linguaggio assoluto scritto da Zuse.

1974
COBOL acquisisce la sua seconda definizione ANSI.
Compare la documentazione del linguaggio C.

1975
Il dottor Wong sviluppa Tiny BASIC, che occupa solo 2K di memoria ed è caricabile da nastro perforato.
Può funzionare praticamente su qualsiasi macchina con processore 8080 o Zilog Z80.
In un tipico pc ci sono 4K di memoria, così con questo linguaggio 2K resterebbero disponibili.
Tiny BASIC è anche il primo programma freeware (cioè gratuito).
Nel suo interno furono trovate queste due buffe frasi: "All wrongs reserved" e "Copyleft".
Bill Gates e Paul Allen scrivono una loro versione di BASIC che vendono al MITS.
MITS produce microcomputer basati su Altair 8080.
Scheme, un derivato di LISP, è pubblicato.
Brian Kernigan descrive RATFOR (RATional FORtran), usabile come pre-compilatore del FORTRAN.

1976
Design System Language, predecessore del PostScript fa la sua comparsa.
E' un linguaggio interpretato, come il Forth, usato per gestire gli alberi dei database tridimensionali.

1977
MUMPS (Massachusets general hospital Utility Multi-Programming System) ottiene il suo riconoscimento ANSI-standard.
MUMPS era usato originariamente per salvare le cartelle dei pazienti per cui il linguaggio comprende solo caratteri di testo.
Verrà poi ridenominato con la lettera M ed è ancora usato da molte compagnie dove molti utenti devono accedere alle stesse informazioni, come nelle banche, nei magazzini e agenzie viaggi.
La Honeywell partecipa alla gara per progettare il nuovo linguaggio battezzato ADA e il team di Jean Ichbiahn vincerà con la sua soluzione.
Kim Harris e i suoi partner creano il FIG, (FORTRAN Interest Group). Svilupperanno il FIG-FORTRAN vendendolo per $20.
Kenneth Bowles pubblica USCD Pascal, che lavora su macchine PDP-11 e Z80.
Niklaus Wirth inizia a sviluppare il successore del Pascal, Modula (MODUlar LAnguage). Modula è un linguaggio fortemente segmentato, che si adatta bene alle esigenze di elaborazioni parallele.

1978
Esce il linguaggio CSP.

1980
Nasce il dBASE II.

1983
Distribuzione da Xerox di SmallTalk-80, ispirato a Lisp e Simula 67.
Linguaggio object-oriented.
Prima uscita del linguaggio ADA, derivato da Algol 68.

1986
E' disponibile una nuova versione del linguaggio C, il C ++.

1986
Annuncio di Eiffel, ispirato a SmallTalk- 80.
Eiffel è un linguaggio object-oriented che enfatizza il disegno e la costruzione di software di elevata qualità e riusabilità.

1987
Esce il Perl (Practical Extraction and Report Language), creato da Larry Wall.
Un linguaggio di script ottimizzato per fare la scansione arbitraria di file di testo, per estrarne informazioni e stampare report basati sui dati estratti.

1988
Nuovo linguaggio: Mathematica
Fa la sua comparsa OBERON, successore di Modula-2 e Pascal.
Forse il migliore programma mai disegnato, che scaturisce dalla genialità di Niklaus Wirth.
Esce il Quick Basic.

1989
Con l'avvento del Web viene reso disponibile un meta-linguaggio che ne rappresenterà la base di sviluppo dei siti: l'HTML.

1991
E' disponibile il linguaggio Python, un moderno interprete di script.
Il linguaggio è object-oriented in modo nativo, e non ha subìto l'aggiunta di qualche istruzione in più per diventarlo, come è successo ad altri linguaggi più antichi.
Il suo più diretto concorrente è il linguaggio Perl, ma dal quale si distingue egregiamente per maggioer facilità nello sviluppo di programmi di una certa dimensione e di frequente manutenzione.
Da Python deriverà Ruby nel 1993.
Di Python usciranno successive versioni, anno dopo anno.

1992
Microsoft annuncia il Visual BASIC.
Si tratta di un derivato del BASIC, con l'aggiunta della gestione object-oriented e event driven, ideale per l'ambiente Windows.

1995
Fa la sua comparsa Java 1, figlio di C++ e SmallTalk.
Il Turbo Pascal risorge a nuova vita in Delphi.

1998
Esce la versione Java 2 del famoso programma.

2000
Da Java 2 deriva il linguaggio "C#".


user posted image
(Albero genealogico dei linguaggi di programmazione e del loro sviluppo nel corso degli anni)



IL LIVELLO DEI LINGUAGGI

1) linguaggi di basso livello
Sono tutti quelli che comunicano direttamente con il computer, utilizzando i codici operativi dello stesso processore, quindi in "linguaggio macchina".
Questo modo di programmare dà al tecnico la più ampia libertà e potere, ma nello stesso tempo lo porta a scendere al più basso dei livelli dei linguaggi formali, ovvero deve parlare la stessa lingua operativa della macchina, adoperando una catena molto lunga di istruzioni elementari, quindi con molta difficoltà di scrittura e di verifica del corretto funzionamento.
Prima della nascita dei linguaggi formali di alto livello (high-level languages) questa era l'unica maniera per fare compiere un lavoro ad un computer.

2) linguaggi di alto livello
Sono invece tutti quelli che fanno uso di uno pseudo-linguaggio umano, utilizzando allo scopo parole-chiave o codici operativi ispirati quasi esclusivamente alla lingua inglese.
Ovviamente ciò facilita molto sia la stesura che la rilettura di un programma, ma non mette il computer in condizione di capire direttamente cosa vogliamo.
Per ottenere il risultato finale è dunque necessario applicare un "interprete" che traduca il nostro linguaggio simbolico e decisamente più sintetico, in reali istruzioni di macchina.
Nel tempo l'interpretazione del linguaggio simbolico (programma "sorgente") ha messo in evidenza la lentezza causata dalla traduzione contemporanea durante lo svolgimento del calcolo e perciò si è pensato di creare dei "compilatori" che svolgessero un ruolo molto più completo e produttivo.
Il compilatore è un programma (scritto in linguaggio macchina) in grado di leggere le istruzioni del sorgente, verificarne la correttezza linguistica, e sviluppare automaticamente le corrispondenti istruzioni in codice operativo di macchina (ottenendo così un programma "oggetto" o "eseguibile" che dir si voglia).
In questo modo abbiamo ottenuto un valido compromesso, tra il parlare come la macchina e il parlare con la nostra lingua naturale. Ovviamente i linguaggi simbolici impongono nuove regole di grammatica e sintassi, per cui dobbiamo comunque fare uno sforzo iniziale per apprenderne le esigenze, ma dopo ci troviamo la vita più facile perchè con termini sintetici riusciamo a ottenere ciò che vogliamo dal computer.



ATTRIBUTI DEI LINGUAGGI
Generalmente si tende a suddividere i linguaggi ad alto livello in 3 categorie:

- imperativi

- funzionali

- dichiarativi



Però la classificazione può anche essere più ampia, e soprattutto comprendere alcuni attributi particolari che ne definiscono meglio le capacità.


Linguaggi Imperativi: sono composti da una sequenza di istruzioni in grado di modificare il contenuto della memoria del computer o di determinare le modalità di esecuzione di altre istruzioni. Molto importante è l'istruzione di assegnazione.
Quasi tutti i linguaggi più comuni (RPG, Pascal, Basic, Fortran, C, Cobol, ecc.) agiscono in questo modo.

Linguaggi Funzionali: che servono a calcolare il valore di una funzione.
In un linguaggio funzionale puro l'assegnazione esplicita risulta addirittura completamente assente (si utilizza soltanto il passaggio dei parametri). In tale modello rivestono particolare importanza la ricorsione, in pratica l'utilizzo di funzioni che richiamano se stesse e, come struttura dati, la lista (sequenza ordinata di elementi).
Il più importante rappresentante di questa categoria è senz'altro il Lisp (LISt Processing).

Linguaggi Dichiarativi (o logici): dove il programma è considerato come la dimostrazione della verità di una asserzione.
Il sorgente è costituito da una sequenza di asserzioni di fatti e regole.
Non è necessario indicare esplicitamente il flusso di esecuzione, ma dato un obiettivo di partenza è il sistema che cerca di individuare i fatti e le regole rilevanti.
Il fatto che vi sia una netta separazione tra la parte dichiarativa (il cosa fare) e la parte procedurale (il come) rende un programma scritto in un linguaggio logico particolarmente leggibile.
I linguaggi logici risultano molto adatti a risolvere problemi che riguardano entità e le loro relazioni, mentre nelle normali applicazioni risultano essere di difficile utilizzo, anche perché, comportano un modo di programmare completamente diverso dal solito.
Il linguaggio più famoso di questo tipo è il Prolog (PROgramming in LOGic).

Altri attributi dei linguaggi

Linguaggi Strutturati: la programmazione strutturata è una tecnica il cui scopo è di semplificare la stesura dei programmi, limitando l'uso dei controlli a pochi casi semplici, tutti con un solo ingresso e una sola uscita.
Tale metodo è stato adottato da molti linguaggi anche preesistenti.
Ad esempio per evitare l'uso indiscriminato del famoso GOTO (salto incondizionato) sono state introdotte istruzioni di controllo strutturato del flusso, come i blocchi IF-THEN-ELSE, DO WHILE, CASE, FOR, ecc.
L'adozione di nuove regole di strutturazione non impedisce, in casi in cui sia ritenuto veramente utile, l'utilizzo dei vecchi comandi di salto (GOTO), ancora in uso, per esempio, per uscire da una routine in caso di errore.

Linguaggi Object-Oriented: il programma opera su insiemi di oggetti (insiemi di dati e regole che manipolano questi dati) che comunicano tra loro e verso l'esterno mediante messaggi.
L'Object-Oriented ha adottato nuovi concetti come l'incapsulamento, l'ereditarietà e il polimorfismo.
Oltre a linguaggi specializzati che implementano i principi di tale metodologia, come Smalltalk, ad esempio, sono nate delle estensioni dei linguaggi già esistenti, che li integrano (ad es. C++ per il C, il Visual BASIC, Visual RPG, ecc.).

Linguaggi Event driven: per programmare in ambienti di tipo Windows è necessario provvedere alla gestione contemporanea del possibile verificarsi di tutta una serie di eventi (movimento del mouse, click, comandi da tastiera, ecc.)
In un ambiente guidato da eventi non determinabili a priori, ma appunto "event driven" non esiste più una sequenza determinata di comandi da eseguire, ma ad ogni evento bisogna promuovere una determinata azione.
Per questo motivo anche il linguaggio di programmazione deve poter essere in grado di gestire questi fatti segnalati dal sistema, ma non tutti i linguaggi lo sanno fare.
Il grande successo che ha riscosso il Visual Basic della Microsoft, o MS Access, derivano anche da queste loro spiccate attitudini, che permettono di creare facilmente applicazioni sotto Windows, fornendo anche la capacità di governare un flusso di tipo event driven.




SCHEMA EVOLUTIVO DELLE GENERAZIONI DEI LINGUAGGI DI PROGRAMMAZIONE

1GL linguaggi di Prima generazione
Basati sul codice macchina (in binario)

11100101

11110000

11001101


2GL linguaggi di Seconda generazione
Simbolici di tipo Assembly

Esempi: IBM BAL, VAX Macro.

calc: decL R5

pushL R5

calls #1, recfib

movL R0, R6

decL R5

pushL R5

calls #1, recfib

addL R6, R0

ret

.end


3GL linguaggi di Terza generazione
Linguaggi procedurali, con termini in lingua inglese
I programmatori devono specificare il "cosa" e "come" desiderano mandare in output.

Esempi: COBOL, RPG, FORTRAN, Pascal, Ada, C, BASIC, PL/I.


4GL linguaggi di Quarta generazione
Non procedurali, ma ancora basati sulla lingua inglese. Contengono dizionari di dati integrati, database relazionali dinamici, consentono rapidi sviluppi del sistema tramite anche prototipizzazioni
I programmatori (e a volte gli utenti) specificano il "cosa" dell'output desiderato, lasciando al software il compito di stabilire il "come".

Esempi: FOCUS, Powerhouse



access admissions

set report device printer

set report device disc

set report name AD32

select if term = "961" and (app-status="AC" or app-status="PP")

sort on ad-source on name

report id name ad-source class hs-code entrance-code app-status

footing at ad-source skip 2 "Total for: " ad-source "=" count skip 3

final footing "Total enrollment " count

set report nolimit

go


?GL linguaggi della prossima generazione?
L'evoluzione dei linguaggi di programmazione e la disponibilità di tools di sviluppo non finiscono certo con la 4^ generazione. Si è detto che la programmazione Object-Oriented rappresenta una nuova generazione di strumenti.
Lo sviluppo O-O si basa sull'uso di "oggetti" che rappresentano sia la struttura dei dati che dei processi che possono agire su di essi.
La maggior valenza degli oggetti deriva dal fatto che una volta definiti sono riutilizzabili infinite volte, riducendo drasticamente lo sforzo di programmazione.
Successive generazioni di programmi potranno apparire sempre meno vincolati ad un linguaggio di tipo tradizionale, con le sue regole grammaticali e la sua sintassi.



Tra tutti i vari linguaggi che si sono succeduti nel corso degli anni, prenderò in esempio alcuni tra i più conosciuti, i più utilizzati, i più stabili, e vi parlerò brevemente di loro.


BASIC

Il BASIC (ovvero: Beginner's All-purpose Symbolic Instruction Code) è un linguaggio molto potente come strumento per i programmatori principianti, che è stato sviluppato a Dartmouth College nel 1964, sotto la direzione di J. Kemeny e T. Kurtz.
Venne implementato per il computer GE 225, con lo scopo di fornire un linguaggio veramente molto semplice da imparare e facile da tradurre.
BASIC consente di realizzare un'ampia gamma di applicazioni e dispone di molte versioni.
Comunque, più si pone attenzione alle tecniche di programmazione e alla soluzione di problemi e più la sintassi specifica è facile da seguire.

Funzioni principali del linguaggio BASIC
- loops
- input da tastiera
- applicazioni guidabili da menu
- comandi di sistema: utilizza parole atte a fare svolgere immediatamente uno specifico task
- programmazione strutturata
- subroutines
- funzioni integrate nel linguaggio
- funzioni definibili dall'utente
- Schiere, sorting e ricerche

Aree applicative
- disegnato per applicazioni più interattive che di tipo batch, con il grande vantaggio di essere facilmente implementabile, vista anche la possibilità di utilizzo in forma interpretata piuttosto che compilata.


Altri fatti legati al BASIC

Paul Allen e Bill Gates dettero in licenza il loro BASIC alla M.I.T.S. per il computer Altair.
La versione occupava un totale di 4Kb di memoria, compreso il codice e i dati usati per il codice sorgente.
Successivamente Gates e Allen portarono il loro BASIC si altre piattaforme, tra cui Apple, Commodore e Atari.
Alla fine degli anni '70 è la volta del MS DOS che viene fornito con un interprete BASIC.
L'IBM aveva una sua versione denominata BASICA, mentre la versione fornita con MS DOS si chiamava GW-BASIC e girava su qualsiasi macchina che potesse far girare anche il DOS.
Ma non c'erano differenze tra i due linguaggi, solo che IBM voleva proteggere i suoi personal computer dai cloni in circolazione.
Microsoft decise di realizzare anche un compilatore in modo da far girare i programmi senza il ricorso all'interprete BASIC.
La nuova soluzione si chiamò QuickBasic, che venne distribuito fino alla versione 4.5.
Poi Microsoft volle implementare ulteriormente il linguaggio e iniziò a distribuire il PDS BASIC (Professional Development System), che terminò con la versione 7.1.
Ma il PDS BASIC non venne sfruttato appieno per le sue notevoli capacità e Microsoft era ormai impegnata sulle interfacce grafiche, cosicché realizzò un Visual BASIC sia per DOS che per Windows.
Le differenze tra il QuickBASIC e il VB per DOS erano assolutamente minime.
Nel frattempo un signore chiamato Robert S. Zale aveva progettato un suo compilatore BASIC che fu poi distribuito dalla Borland Inc. come TurboBASIC, ma Zale si mise a distribuire il prodotto anche per conto suo, chiamandolo PowerBASIC, che ora è arrivato alla versione a 32 bit.
PowerBASIC è uno dei compilatori più potenti sul mercato, che comprende idee come le variabili senza segno, un Inline Assembly Language Code e svariate altre simpatiche aggiunte al linguaggio BASIC.



IL C

Il linguaggio C fu sviluppato al Bell Laboratories nel 1972 da Dennis Ritchie.
Molti dei suoi principi e idee erano presi dal precedente linguaggio B e il B aveva ereditato certe caratteristiche da BCPL e CPL.
Il CPL (Combined Programming Language) era stato creato con lo scopo di creare un linguaggio capace di operare ad alto livello, con programmazione indipendente dalla macchina, ma che ancora consentisse al programmatore di controllare il comportamento dei singoli bit di informazione.
Il guaio maggiore di CPL era che occupava troppo spazio per poter girare in molte applicazioni.
Nel 1967 venne creato il BCPL (Basic CPL) proprio per ovviare a questo problema con una versione ridotta, senza perdere le sue funzioni di base.
Nel 1970, Ken Thompson, presso i Bell Laboratories, portò ancora più avanti il progetto realizzando appunto il linguaggio B, che era una versione ancora più scalata del BCPL, scritta appositamente per essere usata come linguaggio di sistema.
E per ultimo, nel 1972, un collaboratore di Ken Thompson, Dennis Ritchie, restituì alcune generalità del BCPL al linguaggio B, con lo scopo di sviluppare una nuova versione, che venne ovviamente denominata "C".
La potenza e flessibilità del C apparve subito evidente e per questo il sistema operativo di Unix, scritto in assembly, venne riscritto immediatamente in C.
Fino alla fine degli anni '70, il C invase molti college e università per il suo stretto legame con Unix e la disponibilità di un compilatore. Presto molte organizzazioni indipendenti iniziarono ad usare una loro versione di C, creando notevoli problemi di compatibilità. Come risposta l'ANSI (American Standards Institute) nel 1983 formò un comitato per stabilire una definizione standard del C, che divenne così un ANSI Standard C.
Oggi il C è diffusissimo, insieme ad una ricca raccolta di librerie di funzioni.

Aree applicative
Il C è usato in molte applicazioni, ma in particolare in ambiente Unix e per sviluppo di giochi.



IL C++

E' un'estensione del C, sviluppato da Bjarne Stroustrup all'inizio degli anni '80, presso i Bell Laboratories.
Il C++ fornisce una serie di funzioni che potenziano il C, ma, cosa ancora più importante, fornisce le capacità di gestione della programmazione di tipo object-oriented, con ampio utilizzo delle classi.

Aree applicative del C++
- Software Engineering
- grafica



IL COBOL

COBOL (Common Business Oriented Language) è stato uno dei più vecchi linguaggi di programmazione ad alto livello.
Sviluppato nel 1959 da un gruppo di professionisti riuniti alla Conference on Data Systems Languages (CODASYL).
Da allora ha avuto molte modifiche e miglioramenti. Nel tentativo di superare le numerose incompatibilità tra le varie versioni, l'American National Standards Institute (ANSI) annunciò uno standard nel 1968, che produsse l'ASN-COBOL.
Nel 1974 venne pubblicata una revisione con molte funzioni che non erano state previste nel '68.
Nel 1985 esce, sempre dall'ANSI, un'ulteriore revisione con nuove funzioni.
Il linguaggio continua ad evolversi ancora oggi, che è disponibile in una versione object-oriented inclusa nel COBOL 97.

Aree applicative
- ideale per la soluzione di esigenze gestionali aziendali (Business)



IL PASCAL

Il linguaggio PASCAL è stato inizialmente sviluppato da Niklaus Wirth, membro dell'International Federation of Information Processing (IFIP).
Si dedicò al PASCAL per fornire funzioni che risultavano carenti in altri linguaggi del tempo.
Il suo principale obiettivo per il PASCAL era che si presentasse molto efficiente da implementare e da far girare, consentendo lo sviluppo di programmi ben strutturati e ben organizzati, che servissero da esempio per l'insegnamento della programmazione.
Il PASCAL è diretto discendente di ALGOL 60, che lo stesso Wirth aiutò a sviluppare.
PASCAL contiene anche componenti derivanti da ALGOL 68 e ALGOL-W.
La pubblicazione originale del linguaggio avvenne nel 1971, con una successiva revisione nel 1973.
Fu il programma prescelto per l'insegnamento dagli anni '60 alla fine degli anni '80.

Le funzioni principali

Built in Data Types- Pascal contiene i suoi tipi di dati, che sono: Integer, Real, Character, e Boolean.
User defined Data Types - ha l'abilità di definire tipi scalari di dati così come subrange di quei tipi.
Provides a defined set of Data Structures- Le data structures includono Arrays, Records, Files and Sets.
Has a strong data typing element - il compilatore Pascal può diagnosticare un'assegnazione incompatibile di tipo di variabile.
Supports Structured Programming - tramite l'utilizzo di sottoprogrammi, chiamate a procedure e funzioni.
Simplicity and Expressivity - poichè il linguaggio è semplice ie naturalmente espressivo iconsente un efficace insegnamento dei metodi di programmazione .

Aree applicative
- insegnamento della programmazione



IL JAVA

Il linguaggio Java è derivato da un linguaggio chiamato OAK, che fu sviluppato nei primi anni '90 alla Sun Microsystem come linguaggio piattaforma-indipendente predisposto per applicazioni di intrattenimento come console per video game e VCR per comunicazioni.
OAK fu impiegato per la TV via cavo, per ordinare i programmi da vedere.
Mentre quel tipo di spettacolo on-demand tramontava, il World Wide Web, invece, riscontrava sempre più interesse. A quel punto i tecnici sviluppatori di OAK ci si buttarono a capofitto, trasformando il programma OAK nel nuovo Java.

Le funzioni principali
Platform Independence - il compilatore Java non produce un codice oggetto nativo per una determinata piattaforma, ma piuttosto delle istruzioni byte code da usare con il JVM (Java Virtual Machine).
Object Orientation - Java è un puro linguaggio object-oriented, il chè significa che in Java qualsiasi cosa è vista come oggetto e tutto deriva da una classe principale.
Rich Standard Library - una delle più interessanti funzioni di Java è la libreria standard.
Applet Interface - oltre ad essere in grado di creare applicazioni autonome, gli sviluppatori che usano Java possono creare dei programmi scaricabili da una pagina web per essere eseguiti sul browser del visitatore.
Familiar C++-like Syntax - uno dei motivi della rapida ascesa di Java è la somiglianza della sintassi con altri linguaggi come il C++ .
Garbage Collection - Java non coinvolge il programmatore ad occuparsi di liberare la memoria allocata dinamicamente. Ciò rende Java più facile da scrivere e meno soggetta ad errori in memoria.


Aree applicative

-World Wide Web Applets
-Cross-Platform Application Development
-Other Network Applications




E con questo, concludo la discussione legata ai linguaggi di programmazione, per dedicarmi alla storia delle interfacce grafiche della storia dell'informatica.
 
Top
MorpheusMX
view post Posted on 2/2/2017, 12:14




MAMMA MIA!!!! questa guida è FANTASTICAAAA!!!

HO CErcato un sacco su internet una lista di tutti i linguaggi di programmazione con la loro spiegazione ma questa è veramente ben fattaaaa!! Hai spiegato anche i PARADIGMI di programmazione come il funzionale e il procedurale (che preferisco) e poi anche il linguaggio JAVA e il C che io adoro anche se non riesco bene a programmare con questi linguaggio qui comunque sia grazie infinite perchè grazie a questo sito e a imparareaprogrammare.it un altro sito di programmazione sto riuscendo a capire un sacco di cose in più sulla programmazione sopratutto che linguaggio scegliere dato che sono molto indeciso, vorrei studiare il linguaggio migliore ma da questa lista sembrano tutti molto bellissimi!! quindi non so anche con quale linguaggio inizierò a programmare ma spero di iniziare presto cosi almeno divento bravo come te!
 
Top
1 replies since 27/7/2003, 23:19   298 views
  Share