• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Introduzione alla programmazione

R3tr0s

Utente Guru
Autore del topic
User Legend
15 Giugno 2008
12.570
91
Miglior risposta
0
INTRODUZIONE ALLA PROGRAMMAZIONE

Linguaggio di programmazione
Noi usiamo un linguaggio per comunicare: l’italiano, l’inglese, il francese, il tedesco ecc... Lo sfruttiamo per esprimere i nostri pensieri ad altri esseri umani che lo comprendono, cioè comunichiamo con loro. Il linguaggio di programmazione non è altro che la ‘lingua’ con cui il programmatore comunica con il computer e gli da istruzioni. Come ogni altra lingua, esso dispone di regole per la sintassi, di parole e di potenzialità che altri non possiedono. Vedremo di capire, con uno sguardo d’insieme la sintassi e le regole del linguaggio Pascal.


Termini specifici
Prima di iniziare la guida vera e propria è doveroso dare una piccola descrizione di alcuni termini usati nel suo corso che non tutti magari conoscono:

File: area di memoria contenente dati;

Estensione: è il tipo di file. Infatti un file di testo, non è la stessa cosa di un file musicale. L’estensione è la sigla che li contraddistingue, che di solito è formata da 3 lettere dopo un punto alla fine del nome. Per visualizzare le estensioni dei file, puoi scaricare il software freeware xp-AntiSpy. Spesso, però, quando il computer non riconosce un tipo di file, appare la sua sigla sotto il nome. Per avere sottomano una tabella con le estensioni principali, puoi scaricare da questo sito 'Guida alle estensioni', nella sezione Appunti, sottosezione Pascal;

Codice sorgente o sorgente: è il file in cui viene scritto il programma con un linguaggio di programmazione;

Compilatore: è il software che converte le istruzioni contenute nel sorgente, sottoforma di testo, in un programma vero e proprio, un’applicazione in formato eseguibile (*.exe o altre volte anche *.com). Per compilare i tuoi programmi scritti in Pascal avrai bisogno di un compilatore adatto

Parola riservata: di solito le parole riservate vengono evidenziate dal compilatore in modo differente rispetto alle altre. Infatti queste parola sono importanti perchè usate per definire delle istruzioni particolari. Pertanto il loro nome è inutilizzabile come variabile.

Libreria: insieme di metodi, istruzioni, operatori, variabili, costanti, classi, procedure o funczioni raccolte in un solo file, che può essere richiamato da un programma Pascal per usufruire delle operazioni che in esso sono descritte;

Implementazione: implementare una procedura o una funzione vuol dire definirne il corpo, ossia le istruzioni e le operazioni che la compongono e ne definiscono il funzionamento.

1_SEZIONE PASCAL
2_SEZIONE VISUAL BASIC 06
3_SEZIONE VISUAL BASIC.net
4_SEZIONE HTML
(altre sezioni in aggiornamento)

PASCAL

INTRODUZIONE A PASCAL
Intestazione
Un programma scritto in Pascal deve avere delle parti essenziali per il suo funzionamento. Ognuna di queste parti contiene istruzioni particolari. L'intestazione, in particolare è una delle parti più importanti.
Vediamo un esempio dell'intestazione di un programma in Pascal:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Allora: la parola program è una parola riservata che indica al compilatore il tipo di file prodotto in output. In particolare indica che una volta compilato, il sorgente dovrà essere un programma eseguibile. La parola 'MioProgramma' non è importante, ma ha un fine puramente descrittivo: infatti ha la funzione di ricordare al programmatore di che programma si tratta fornendone il titolo. Benchè non essenziale, dopo 'program' deve sempre essere dichiarato il nome del programma.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


La parola riservata unit indica al compilatore che il prodotto in output sarà una libreria. Per ulteriori informazioni vedere la parte dedicata alla scrittura delle librerie.


Dichiarazione
In questa parte vengono definite le librerie, le variabili ed eventualmente le procedure e le funzioni.
La libreria essenziale e più usata si chiama crt.

Le variabili sono aree di memoria in cui sono posti valori numerici o di parole (stringhe). Esistono parecchi tipi di dati, qui c’è l’elenco completo dei più conosciuti:
Byte = occupa 1 byte e può assumere valori da 0 a 255;
Shortint = occupa 2 bytes e può assumere valori da -128 a 127;
Word = occupa 2 bytes e può assumere valori da 0 a 65535;
Integer = occupa 2 bytes e può assumere valori da -32768 a 32767;
Longint = occupa 4 bytes e può assumere valori da -2147483648 a 2147483647;
Real = occupa 6 bytes e può assumere valori da -2,9e+39 a 1,7e+38 (11-12 cifre decimali);
Boolean = occupa 1 bit e può assumere due valori, true o false;
Char = occupa 1 byte e può assumere il valore di un carattere;
String = occupa un numero variabile di bytes (minimo 10), che varia a seconda della sua lunghezza. Può contenere sequenze di caratteri (frasi);
Text = serve per modificare i file (assume valori solo tramite la procedura assign).

Un esempio di dichiarazione:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


La parola riservata uses indica al compilatore quali libreria includere, mentre la prola riservata var indica al compilatore che dopo di essa si comincerà a dichiarare delle variabili, quindi di tenersi pronto per allocare della memoria (ossia disporre un pezzo della memoria RAM per le variabili).

VISUAL BASIC 06

Visual Basic (formalmente abbreviato VB) è un linguaggio di programmazione event driven, la cui sintassi deriva dal BASIC.
Sviluppato dalla Microsoft, il Visual Basic è particolarmente noto per:
la sua semplicità d'uso (non utilizza formalità di punteggiatura tipica di quasi tutti gli altri linguaggi);
il suo ambiente di lavoro RAD che permette di realizzare in breve tempo interfacce GUI anche complesse;
il pratico accesso alle basi dati;
la creazione di controlli ActiveX con il linguaggio stesso (nelle precedenti versioni si doveva usare il linguaggio C).
Tramite l'integrazione dei controlli VBX (nelle versioni a 16 bit), dei controlli OCX (presenti nelle versioni a 32 bit) e dei collegamenti OLE presenti nell'ambiente di lavoro o realizzati da altri programmatori è possibile ampliare le potenzialità del linguaggio, aggiungendo nei propri progetti nuove funzioni o funzioni più complete.
Il Visual Basic è stato (e lo è tuttora, anche se sta venendo lentamente soppiantato da Visual Basic .NET) uno dei linguaggi più utilizzati al mondo.


l Visual Basic è stato progettato per essere utilizzabile da tutte le categorie di programmatori, sia principianti sia esperti. Il progetto di base è una finestra standard di Windows vuota, che dispone solo dei pulsanti fondamentali riduci a icona, ingrandisci e chiudi. La finestra può essere, quindi, popolata con gli elementi tipici di cui sono costituite le interfacce dei programmi: pulsanti, caselle di testo, checkbox, ecc. Questi elementi vengono posizionati sulla finestra semplicemente utilizzando la tecnica del "drag and drop" (trascina e lascia); una barra degli strumenti mostra tutti i controlli che sono disponibili. La finestra e i controlli hanno delle proprietà, una serie di attributi che ne descrivono ogni caratteristica, e degli eventi, che sono richiamati quando l'utente e il sistema interagiscono con loro. Al momento della creazione di un controllo o di una finestra, le loro proprietà vengono inizializzate con dei valori predefiniti. Successivamente, i valori di alcune proprietà potranno essere cambiati "al momento" (design time) oppure durante l'esecuzione del programma (run time), creando così un'interfaccia dinamica.
Un'applicazione Visual Basic può essere formata da una o più finestre, o da una singola finestra che ne contiene altre (applicazione MDI). I controlli forniscono le funzionalità di base per l'applicazione; il programmatore potrà sfruttare queste funzionalità per eseguire calcoli o generare degli eventi e inserire logica addizionale negli eventi predefiniti. Per esempio, una ComboBox automaticamente visualizza la sua lista e permette all'utente di selezionare un elemento; un gestore di evento è chiamato quando un elemento viene selezionato. Qui il programmatore può scrivere il codice da eseguire sulla base dell'elemento selezionato.
In alternativa, un componente Visual Basic può non avere un'interfaccia utente, ma interagire con altri programmi implementando una serie di funzionalità. In questo caso parliamo di un processo lato "server" o di un modello "add-in".
Il Visual Basic ha creato il primo mercato commerciale di componenti riutilizzabili; esistono migliaia di componenti di terze parti disponibili per gli sviluppatori. Il Visual Basic rende semplice sviluppare e riutilizzare componenti, comunque non è semplice riutilizzare finestre create per un'applicazione all'interno di un'altra per la natura stessa del linguaggio.
SE VOLETE SEGUIRE UNA GUIDA APPROFONDITA SU VISUAL BASIC 06 LEGGETE LA GUIDA DI FIREFOX

link: http://www.sciax2.it/forum/showthread.php?t=44007 (grazie firefox)


VISUAL BASIC.net

Introduzione
A differenza del Visual Basic classico, il VB.NET, che da alcuni è considerato un vero e proprio nuovo linguaggio, utilizza le classi del FrameWork.Net, acquisendo così il titolo di un linguaggio ad oggetti a tutti gli effetti. Un linguaggio ad oggetti, come lo sono il C++ od il Java, presenta degli aspetti peculiari caratteristici: sono tre, l'ereditarietà, il polimorfismo (e l'overloading) e l'incapsulamento. Essendo magari qualcuno che ora sta leggendo questa guida ancora inesperto nella programmazione, affronteremo solo più avanti approfonditamente tali aspetti, anche se è essenziale conoscerli.
Il VB.NET offre una completa gestibilità delle DLL del Framework, facilitando molte operazioni, con la semplicità della sintassi del codice.

La guida
Questa guida non spiega solo la sintassi, ossia le regole con cui il codice sorgente viene scritto, ma si ripropone di illustrare anche i controlli che si andranno ad usare nella creazione dei programmi, poichè nel 99% dei casi chi scrive in .NET lavora con un IDE (Integrated Development Environment) che consente di disegnare la veste grafica del programma.

Programmare
Come per le lingue che esistono nel mondo, ci sono differenti linguaggi di programmazione, ognuno con i suoi vantaggi e le sue pecche. Il programmatore mette per iscritto il programma, scrivendo il codice sorgente (vedi sotto).

Alcuni termini da conoscere
Codice sorgente o sorgente: l'insieme di tutte le istruzioni che il programmatore scrive e fa eseguire al programma.
Compilatore: il programma che si usa per creare il programma finito (un eseguibile *.exe) a partire dal solo codice sorgente. Ormai tutti i compilatori hanno funzioni per segnalare errori vari nel codice.
Parole riservate: di solito vengono evidenziate dai compilatori in un colore diverso e sono parole predefinite intrinseche del linguaggio, che servono per scopi ben precisi e quindi non possono essere usate come nomi di variabili.

ifferenze con altri linguaggi che lavorano in ambiente DOS (console) come il Pascal od il C. Infatti, in questi ultimi, il programma è scritto tutto, dall'inizio alla fine, in blocco, senza distinzioni tra le varie parti. Nel VB invece il programma viene scritto per Eventi. Un evento viene generato ogniqualvolta succede qualcosa nel programma, ad esempio il click di un pulsante, la chiusura di una finestra ecc... Ecco perchè ogni pezzo di sorgente è scritto in una differente parte del codice.
Quindi, se si volesse schematizzare la struttura otterremmo qualcosa di questo tipo:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Se avete scaricato il compilatore da me consigliato all'inizio della lezione o avete SharpDevelop, il codice iniziale verrà automaticamente scritto all'inizio di un nuovo programma.

Come creare un nuovo progetto
Siccome ora ci soffermeremo un po' sulla sintassi del VB.NET scriveremo solo programmi che lavorano in ambiente DOS, ossia senza interfaccia grafica. In breve arriveremo alla parte più interessante, però.
Comunque, per iniziare a scrivere un programma innanzitutto e soprattutto si deve aprire un nuovo project. Quindi dal menù File cliccate su New Project: apparirà una finestra con diversi tipi di applicazioni (se state usando SharpDevelop come compilatore dovete selezionare sulla sinistra la cartella Vb.NET) che impareremo poi a realizzare: per ora facciamo click su Console Application, dopo aver immesso nella casella di testo sottostante il nome del nostro programma, ad esempio 'Module1'.
Ora avremo automaticamente scritto:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Il modulo è l'unità che contiene tutte le operazioni di una applicazione console (che abbiamo, già detto, lavora in DOS), mentre Main è la procedura generale, nella quale andremo a scrivere tutto il codice. Tutti i programmi console iniziano sempre da Main. Questo tipo di progetto è molto simile a linguaggi di ambiente DOS come Pascal o C.

Le variabili
Una variabile è uno spazio di memoria RAM (Random Access Memory) in cui vengono allocati dei dati dal programma, ed è possibile modificarne od ottenerne il valore facendo riferimento ad un nome che si definisce arbitrariamente. Forse è meglio che vediamo in pratica come effettivamente si dhichiara una variabile.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Facendo correre il programma avremo una schermata nera su cui è visualizzato il numero 80. Perchè? Ora vediamo.
Come avrete notato le variabili si dichiarano in un modo specifico, sempre uguale, che è questo:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Dove <nome> è il nome con cui ci si riferisce ad una variabile e <tipo> il tipo della variabile. Esistono molteplici tipi di variabile, fra cui i più noti:

Byte: intero a 8 bit che può assumere valori da 0 a 255

Char: valore a 8 bit che può assumere i valori di ogni carattere della tastiera (compresi quelli speciali)

Int16 o Short: intero a 16 bit che può assumere valori da -32768 a +32767

Int32 o Integer: intero a 32 bit da -2147483648 a +2147483647

Int64 o Long: intero a 64 bit da circa -922000000000000000 a +9220000000000000000

Single: decimale da circa -3,4e+38 a +3,4e+38, con un intervallo minimo di circa 1,4e-45

Double: decimale da circa -1,79e+308 a +1,79e+308, con un intervallo minimo di circa 4,9e-324

Boolean: valore a 1 bit che può assumere due valori, True (vero) e False (falso)

String: valore di minimo 10 bytes, composto da una sequenza si caratteri. Se vogliamo, possiamo associarla ad un testo.

Object: rappresenta un qualsiasi tipo


Con le variabili si può fare di tutto, ma per lo più si eseguono operazioni aritmetiche, che possono coinvolgere tutti i segni di operazione.

+ : addizione

- : sottrazione

* : prodotto

/ : divisione

\ : divisione tra interi

mod : restituisce il resto di una divisione intera

= assegna alla variabile posta a sinistra il valore posto dopo l'uguale

& : una stringa con un numero



Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Esistono poi anche degli speciali operatori di assegnamento, che velocizzano l'assegnazione di valori, alcuni sono:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Le frasi poste dopo un apice (') sono dette Commenti e servono per spiegare cosa viene scritto nel codice. Ciò che è scritto in un commento NON influisce in nessun modo con quello che è scritto nel sorgente, ma ha una funzione ESCLUSIVAMENTE esplicativa.

Le costanti
Abbiamo visto che il valore delle variabili può essere modificato a piacimento. Ebbene quello delle costanti, come il nome suggerisce, no. Esistono per semplificare le operazioni. Per esempio, invece di digitare 3,1415926535897932 per il Pi greco, potete dichiarare una costante di nome Pi che abbia quel valore ed utilizzarla nelle espressioni. Esempio:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Le istruzioni
Tutti i comandi che abbiamo impartito al computer e che abbiamo genericamente chiamato con il nome di istruzioni (come Console.WriteLine()) hanno dei nomi più specifici: sono Procedure o Funzioni. Le procedure e le funzioni accettano dei Parametri passatigli tra parentesi (se i parametri sono di più vengono separati da virgole). Le procedure semplicemente fanno eseguire istruzioni al computer, le funzioni restituiscono un valore, ad esempio:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

HTML




L'HTML (HyperText Markup Language - "Linguaggio di contrassegno per gli Ipertesti") non è un vero e proprio linguaggio di programmazione (come C, C++, Java...) e nemmeno un linguaggio di scripting (come PHP, JavaScript...), questo è solamente il linguaggio con cui potete indicare ad un Browser dove deve posizionare i vari testi, immagini, tabelle e tutte le altre cose che si possono inserire in una pagina HTML.

Ma l'HTML non viene considerato un vero linguaggio di programmazione soprattutto perché non possiede strutture logiche come "if", "for", "while" e costrutti simili che si trovano in quasi tutti i linguaggi. In parole povere, con l'HTML non puoi fare ragionamenti del tipo "se succede questo fai questo, altrimenti fai quell'altro".

Ci sono 2 tipi di estensioni che si possono trovare lavorando con l’HTML:

file.html
o
file.htm

La più “moderna” è .html, ma comunque non c’è differenza tra i 2 tipi. Il .htm veniva usato prima perché i vecchi sistemi operativi permettevano massimo 3 lettere per indicare l’estensione di un file.

Comunque tutti i file di cui parleremo in questa guida saranno .html.
Inoltre lavorando con l’HTML ci sono altre estensioni che potrebbero essere incontrate. Le più comuni sono:

.css – Acronimo di Cascading Style Sheet (Foglio di Stile a Cascata) può essere interno o esterno ad un file html ed è usato per definire i vari tag HTML.



JAVA

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. La piattaforma di programmazione Java è fondata sul linguaggio stesso, sulla Macchina virtuale Java (Java Virtual Machine o JVM) e sulle API Java.

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 (strutture di controllo, operatori e così via) è stata mantenuta pressoché identica.

La prima caratteristica, l'orientamento agli oggetti, si riferisce a un moderno metodo di programmazione e progettazione, la programmazione orientata agli oggetti (OOP).

L'idea alla base della OOP è di rappresentare, nella progettazione del software, le entità reali o astratte che compongono il problema sotto forma di oggetti. Gli oggetti sono caratterizzati da delle proprietà (definite variabili o campi di istanza o di esemplare) e di metodi applicabili sugli oggetti stessi, che possono ad esempio modificarne lo stato o estrarne informazioni.

I programmi scritti in Java possono essere unicamente orientati agli oggetti, di conseguenza tutto il codice deve essere necessariamente incluso in una classe.

Sebbene Java possa operare sia su oggetti che su tipi di dati primitivi, è considerato un linguaggio ad oggetti puro, ovvero nel quale gli oggetti sono le entità di base del linguaggio, anziché essere costruiti partendo da costrutti ad un inferiore livello di astrazione.


Una classe estende sempre una e una sola altra classe (ovvero non esiste ereditarietà multipla), ma può a sua volta essere estesa da un numero arbitrario di classi. Se non si utilizza la clausola extends, la classe estende comunque una superclasse implicita, la classe Object.

Questo sistema rende disponibile un modo per creare gerarchie di classi ben definite, ad esempio una classe Quadrilatero può definire alcuni comportamenti generali per tutte le figure geometriche con 4 lati, tuttavia si può presentare la necessità di aver bisogno di caratteristiche più specifiche per i nostri oggetti, quindi si creerà una classe Quadrato che estende la classe Quadrilatero da cui deriva tutti gli attributi (le variabili di istanza) e tutti i comportamenti (i metodi), salvo poi riscrivere (tramite overriding) quei comportamenti che sono prettamente associati ai quadrati (ovvero legati alla proprietà specifica dei quadrati di avere 4 lati uguali).

L'overriding si attua semplicemente scrivendo all'interno della classe che estende (in questo caso la classe Quadrato) il metodo che vogliamo riscrivere, utilizzando la stessa firma del relativo metodo della superclasse (deve avere lo stesso nome e gli stessi attributi, in numero e tipo).

Java adotta un modello di ereditarietà basato sull'ereditarietà singola; in altre parole, una classe può estendere una sola superclasse. Su questo punto Java si differenzia dal C++, basato sul modello dell'ereditarietà multipla. Dopo l'avvento di Java, l'ereditarietà singola si è gradualmente affermata come modello standard di ereditarietà nelle tecnologie object-oriented, ed è stata abbracciata, per esempio, anche dai linguaggi del framework .NET Microsoft.


L'utilizzo di una interfaccia in Java consente di trattare in modo omogeneo tutti gli oggetti che forniscono un dato insieme di servizi, a prescindere dalla loro implementazione (e quindi dalla loro particolare classe di appartenenza). Dal punto di vista sintattico, una interfaccia Java consiste principalmente di una lista di dichiarazioni di metodi che tutte le classi che implementano l'interfaccia devono fornire.

public class Quadrato implements FiguraGeometrica
dove l'interfaccia FiguraGeometrica potrebbe essere dichiarata come segue:

public interface FiguraGeometrica {
public int calcolaPerimetro();
public int calcolaArea();
}
Si noti che nella dichiarazione di un metodo in un'interfaccia le parole chiave public e abstract sono sempre implicite e, dunque, facoltative. Con l'implementazione dell'interfaccia, la classe Quadrato deve contenere al suo interno i metodi calcolaPerimetro e calcolaArea propri (o possono essere ereditati dalla superclasse). L'utilizzo delle interfacce viene usato quando si hanno delle gerarchie di oggetti, o oggetti semplici che possiedono delle operazioni comuni (metodi), ma l'implementazione di queste sono differenti una dall'altra


C E DERIVATI...


C

Fu ideato nei Bell Laboratories della AT&T nel 1972 da Dennis Ritchie come evoluzione del linguaggio B di Ken Thompson usato per la scrittura dei primi sistemi operativi UNIX. Lo stesso Thompson nel 1970 si era a sua volta ispirato al linguaggio BCPL di Martin Richards, anch'esso pensato per scrivere sistemi operativi e software di sistema. La definizione formale si ha nel 1978 a cura di B. W. Kernighan e D. M. Ritchie. Nel 1983 iniziò il lavoro di definizione di uno standard da parte dell'American National Standards Institute, che rilasciò nel 1990 lo Standard ANSI C (ISO C89).

Il C è tecnicamente un linguaggio di programmazione ad alto livello. Tuttavia, poiché esso mantiene evidenti relazioni semantiche con il linguaggio macchina e l'assembly, risulta molto meno astratto di linguaggi anche affini (appartenenti allo stesso paradigma di programmazione), come per esempio il Pascal. Per questo motivo, talvolta viene anche identificato con la locuzione (più ambigua) linguaggio di medio livello, se non addirittura (in modo certamente improprio) come macro-assembly, o assembly portabile.

Il C è rinomato per la sua efficienza, e si è imposto come linguaggio di riferimento per la realizzazione di software di sistema su gran parte delle piattaforme hardware moderne. La standardizzazione del linguaggio (da parte dell'ANSI prima e dell'ISO poi) garantisce la portabilità dei programmi scritti in C (standard, spesso detto ANSI C) su qualsiasi piattaforma.

Oltre che per il software di sistema, il C è stato a lungo il linguaggio dominante in tutta una serie di altri domini applicativi caratterizzati da forte enfasi sull'efficienza. Esempi tipici sono le telecomunicazioni, il controllo di processi industriali e il software real-time. Oggi il predominio del C in questi contesti è in parte diminuito a seguito dell'avvento di competitor significativi, primo fra tutti il C++; tuttavia, il tempo in cui il C si potrà considerare obsoleto appare ancora molto lontano.

Il C ha, e continua ad avere, anche una notevole importanza didattica, sebbene, per la sua complessità semantica e per le forti relazioni di tale semantica con il funzionamento dell'hardware dei computer, non si tratti di un linguaggio particolarmente intuitivo per i principianti, e in special modo a quelli sprovvisti di un adeguato background sull'elettronica dei calcolatori. Se un tempo scuole superiori e corsi universitari adottavano il C come linguaggio di riferimento a causa della sua importanza tecnica, oggi questa scelta trova un'ulteriore motivazione nella crescente importanza di linguaggi che dal C derivano (per esempio C++, Java e 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.

Inoltre la grammatica e la sintassi del C sono molto libere e flessibili, permettendo di scrivere istruzioni complesse e potenti in poche righe di codice (ma anche istruzioni assolutamente criptiche e illeggibili). 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.

Grazie alla particolare efficienza del codice prodotto dai suoi compilatori, il C venne utilizzato per riscrivere la maggior parte del codice del sistema UNIX, riducendo l'uso dell'assembly ad un piccolo gruppo di funzioni. La sua importanza tuttavia, crebbe solo dopo il 1978 con la pubblicazione da parte di Brian Kernighan e Dennis Ritchie del libro The C Programming Language nel quale il linguaggio venne definito in modo preciso.

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).

C++

Il linguaggio di programmazione C++ fu originariamente derivato dal C. Tuttavia, non tutti i programmi C sono programmi validi in C++. Via via che il C e il C++ evolvevano indipendentemente, sono aumentate le loro incompatibilità [1]. L'ultima versione del C, C99, creò un numero di conflitti in più. Le differenze rendono difficile la scrittura di programmi e librerie che funzionino sia in C che in C++, e creano confusione in chi programma in entrambi i linguaggi. La disparità rende difficile per entrambi i linguaggi l'adozione di caratteristiche dall'altro.


OBJECT C

Il linguaggio Objective C deve la sua popolarità alla Apple che lo ha scelto come base per il suo sistema operativo Mac OS X.

È un linguaggio orientato agli oggetti e a differenza del C++ mantiene la piena compatibilità con il C

D

A differenza del C++, che mantiene quasi una completa compatibilità all'indietro con il C, il D rompe la compatibilità con il C. Esso abbandona alcune caratteristiche del C considerate indesiderabili, incluso il preprocessore, e aggiunge alcune, ma non tutte, estensioni del C++. Tra l'altro non fornisce l'ereditarietà multipla


Perl

Perl è un linguaggio di programmazione ad alto livello, dinamico, procedurale e interpretato, creato nel 1987 da Larry Wall. Perl ha un singolare insieme di funzionalità ereditate da C, scripting shell Unix (sh), awk, sed e in diversa misura da molti altri linguaggi di programmazione, compresi alcuni linguaggi funzionali


Benché sia molto noto come linguaggio per lo sviluppo di CGI, Perl è stato creato inizialmente come ausilio ai sistemisti, come linguaggio di manipolazione di testo e file. Infatti è anche detto Practical Extraction and Report Language, ma questo è un acronimo assegnato dopo la creazione del nome o, in inglese, un "backronym". Pertanto secondo la documentazione stessa di Perl, non vi si dovrebbe mai riferire come "PERL", ma come "Perl" o "perl" a seconda che si intenda il linguaggio in quanto tale o una specifica implementazione rispettivamente. È anzi questa un'informazione utilizzata negli ambienti perlistici per distinguere "chi è del giro" da chi non lo è.

Si è evoluto nel tempo, anche grazie ad un potente sistema di moduli, in un linguaggio a carattere più generale, comprendente l'elaborazione di immagini, l'interrogazione di banche dati, i processi di comunicazione via rete, ed utilizzabile in tutti quegli ambiti in cui non siano strettamente necessarie le performance di un linguaggio compilato più a basso livello, offrendo al contempo tempi di sviluppo molto più rapidi. È quindi anche utilizzato per la prototipizzazione di programmi da implementarsi in altri linguaggi.

Il linguaggio è stato pensato per essere pratico (facile da usare, efficiente, completo) oltre che bello e "magico" (è questo un concetto tipicamente perlistico); esso non è mai stato pensato per essere compatto, elegante o minimale, infatti il suo motto più distintivo è riassunto nell'acronimo TMTOWTDI (There is More Than One Way To Do It), che in inglese molto indicativamente significa "c'è più di un modo per farlo". Tuttavia uno dei suoi maggior pregi è che grazie a tale ricchezza consente di risolvere con grande semplicità ed eleganza problemi che con altri linguaggi richiederebbero notevoli sforzi. Infatti Larry Wall ama ripetere che uno dei suoi obiettivi è "rendere le cose facili, facili e quelle difficili, possibili".

Perl supporta sia il paradigma procedurale che quello ad oggetti, ha potenti funzioni per l'elaborazione dei testi ed è dotato di una della maggiori collezioni di moduli prodotte dalla sua vasta comunità di utenti.

Se a prima vista il Perl appare largamente derivato dal C, in verità ha ricevuto questa somiglianza mediata dai linguaggi di scripting delle shell. Perl è un linguaggio procedurale non tipizzato con variabili, espressioni, assegnamenti, blocchi delimitati da graffe, strutture di controllo e subroutine. Queste ultime possono essere intese come funzioni e il Perl ha numerose doti mediate dai linguaggi funzionali.

Le variabili hanno un prefisso ($ per variabili scalari, @ per array, % per hash) detto sigillo e se questo in parte ha determinato la ricchezza sintattica del Perl, permette l'interpolazione delle variabili nelle stringhe. Come le shell Unix, Perl è dotato di molte funzioni di serie per i compiti più comuni come ordinamento ed accesso al sistema operativo. (In verità solo 279 nel nucleo principale del perl, contro le oltre 3000 del PHP).

Perl ha preso i vettori associativi (conosciuti come 'hash') da awk e le espressioni regolari da sed. Queste semplificano e facilitano molto il parsing ed i compiti di trattamento del testo e dei dati.

Inoltre c'è la possibilità di integrare codice scritto in C in un programma Perl così come viceversa (aggiungere o riscrivere parti in C/C++ in applicazioni o package Perl, o inserire un embedded Perl in programmi C). In verità con i moduli Inline:: sono diversi i linguaggi in cui possono essere definite le funzioni di un sorgente Perl.

Perl è comunemente ritenuto un linguaggio interpretato, ossia che per essere eseguito viene interpretato al momento dell'esecuzione. In realtà, la prima cosa che fa l'interprete è di trasformare il codice sorgente in bytecode, un po' come Java; sul bytecode crea un grafo intermedio sul quale applica ottimizzazioni, ed è questo grafo ad essere interpretato. Questo approccio permette di limitare la lentezza tipica dei linguaggi interpretati. La versione del Perl 6, in via di sviluppo da alcuni anni, divide l'esecutore del bytecode (o virtual machine) dal linguaggio in modo tale da permetterne l'utilizzo anche da compilatori di altri linguaggi, tra cui Tcl, Python, Java, etc.

La virtual machine che ne deriva sarà una nuova base per lo sviluppo di linguaggi liberi e consentirà livelli di ottimizzazioni molto elevati e indipendenza dallo sviluppo dei linguaggi sovrastanti. Nonostante il Perl 6 non sia ancora rilasciato, alcune idee sono percolate nella versione stabile del Perl 5.8 e molte altre avranno un riscontro in Perl 5.10. Un prototipo del Perl 6, chiamato Pugs, è stato sviluppato in Haskell e si sta verificando una interessante fertilizzazione reciproca tra le due comunità (Perl ed Haskell).

Ancora una volta è stato messo in evidenza come il Perl sia un linguaggio "socievole", che tende quindi a interagire con gli altri linguaggi e ambienti di sviluppo, siano essi: dialetti shell, altri linguaggi interpretati, linguaggi specializzati (come l'SQL), o i più comuni linguaggi compilati. Questa è la ragione che determina il successo di Perl nell'integrazione di sistemi diversi.

Perl è nato in ambiente Unix e distribuito contemporaneamente con due licenze liberali, la GPL e la Licenza Artistica, è disponibile anche per i sistemi operativi Microsoft Windows e MacOS precedente alla versione MacOS X (che appartiene alla famiglia Unix). L'implementazione per Windows più diffusa viene distribuita da una società, la ActiveState, che da un lato offre con una licenza open source moduli specifici per il sistema operativo Windows, dall'altro vende degli ambienti di sviluppo integrati, sia per Perl che per altri linguaggi open source quali ad esempio Python e Tcl.

Benché il Perl sia stato una delle grandi novità nel campo della programmazione, il giudizio su di esso da parte della comunità di programmatori è vario:

da un lato viene giudicato negativamente per il fatto che facilita la scrittura di programmi difficili da leggere e quindi rendendo complicata la loro manutenzione (al punto che il nome del linguaggio è stato reinterpretato come Pathologically Eclectic Rubbish Lister);
dall'altro viene apprezzato per la facilità di scrivere programmi potenti ma semplici, per la libertà semantica che lascia al programmatore al punto che "non c'è un unico modo di fare le cose" è uno dei modi di dire legati a Perl.
Wall - che per formazione è un linguista - ritiene questa libertà semantica un pregio, in quanto più simile al linguaggio umano. Un ulteriore aspetto positivo che attrae i programmatori è l'ampia disponibilità di moduli rilasciati con licenze open source, quasi sempre le stesse di Perl. Moduli solitamente documentati bene, in quanto il linguaggio stesso offre il Pod, un modo di includere la documentazione all'interno del codice, garantendo cosí che assieme al modulo ci sia pure la documentazione. La comunità ha creato un sito particolare, chiamato CPAN, il quale organizza per argomenti i moduli ritenuti particolarmente validi. I moduli stessi non sono archiviati in quel sito, ma rimangono sui siti scelti dai loro autori. Infine, in quanto linguaggio interpretato e dunque sempre distribuito con il codice sorgente visibile, favorisce la pratica liberale.

Altre caratteristiche importanti di Perl sono:

le variabili di default che sono definite per molte funzioni e operatori builtin del perl
la sensibilità del contesto negli assegnamenti, dove Perl sa riconoscere cosa restituire in base al left value
le espressioni regolari, che permettono la ricerca e la sostituzione di stringhe di testo descritte con caratteri speciali
le chiusure
la possibilità di applicare paradigmi di programmazione diversi, come quello funzionale o quello ad oggetti.
Alcune caratteristiche del Perl, tra cui la sintassi, permettono una sintesi raramente possibile con altri linguaggi ed impossibile con linguaggi tipo Java e i sorgenti possono dunque essere molto densi di significato, tanto da risultare criptici a chi non ne conosca i rudimenti. In compenso su Internet c'è così tanta documentazione sul Perl che è possibile avvicinarsi rapidamente al linguaggio e con opportuni testi di riferimento iniziarne la strada dell'apprendimento.

Il linguaggio e l'interprete vengono sviluppati da un gruppo di circa cento sviluppatori, guidati da Wall, il quale prende le decisioni finali su cosa includere nel codice. Gli sviluppatori hanno creato il Perl Institute per facilitare lo sviluppo di Perl e migliorarne la visibilità e organizzano conferenze. Wall stesso lavora per la O'Reilly, una casa editrice che sostiene attivamente il movimento Open Source.

Perl fa parte degli strumenti standard dei sistemi operativi Unix. Il suo aggiornamento può essere fatto sia da Internet che tramite le distribuzioni dei sistemi operativi liberi, quali GNU/Linux, BSD, ecc. Le versioni per Windows possono anch'esse essere scaricate da Internet. Ad alcuni manuali di Perl viene allegato un CD-Rom comprendente le versioni per diversi sistemi operativi e tutti i moduli compresi nel CPAN.

La comunità Perl è sovente attaccata per l'assenza di un IDE come quelli presenti per Java che rendano semplice l'avvicinamento al linguaggio da parte dei neofiti. In realtà la ricchezza espressiva del Perl rendono complicata la realizzazione di un IDE che evidenzi errori di costruzione degli statement, e dati i numerosi valori di default delle funzioni base risulterebbe oltremodo difficile comprendere in automatico cosa vuole ottenere il programmatore, dove c'è un errore o forse no. Tuttavia recentemente ad esempio Eclipse contiene una estensione per il Perl e forse altri seguiranno.

Gli sviluppatori Perl esperti in verità non sentono l'esigenza di strumenti diversi da vi o Emacs, e quest'ultimo in particolare permette di effettuare il debugging di ogni programma Perl, con narrowing, colorazione della sintassi, macro, breakpoint, single step etc.


FONTE: notizie prese da pierotofy e wikipedia ,modifica -fatica e organizzazione mia :-)


FINEEEE


NON HO FATTO QUESTA GUIDA + APPROFONDITA PERCHè SE NO VI ANNOIAVATE xD

LINK UTILI
Perfavore, Entra oppure Registrati per vedere i Link!

Perfavore, Entra oppure Registrati per vedere i Link!

Perfavore, Entra oppure Registrati per vedere i Link!

.....

GUIDA IN COSTANTE AGGIORNAMENTO...


[CC].[/CC]

 
Ultima modifica:
EDIT: GUIDA COMPLETATA FIRMATA E IN AGGIORNAMENTO ( dopo tanta fatica)
 
Ultima modifica:
io le informazioni le ho prese da wikipedia e da pierotofy poi io le ho modificate e organizzate ,ci ho messo un casino a completarla
 
Ottimo, ma l'HTML e' un linguaggio di MarkUp e non di programmazione. Se inserirai anche Java e una definizione generale di C e derivati metto in rilievo.

P.S: Ovviamente puoi anche andare oltre.. (Es. Perl, Python, Autoit, XNA...)
 
FIREFOX LO SO CHE L'HTML non è un vero e proprio linguaggio di programmazione ma lo voluto mettere lo stesso xD, cmq ora vedo se aggiungo le altre cose e speriamo di avere il rilievo :emoji_slight_smile:


EDIT: guida aggiornata - aggiunti "java" e "c e derivati".
 
Ultima modifica:
Ottima :bravo:

Mi però un pò lunga xD ci metterò anni per finirla xD.

uN BEL RIlievo sisi
 
eh si è un po lunghetta però se la leggi avrai delle basi su molti linguaggi di programmazione che ti potranno servire
 
leggile con calma , così si impara tutto

EDIT : aggiustata formattazione testo
 
Ultima modifica: