Vincenzo Giovinazzo
I linguaggi di programmazione
Nel post riguardante la programmazione abbiamo visto come gli interpreti, che si trovano in mezzo alla comunicazione tra noi e il computer, sono i linguaggi di programmazione. In questo post cerchiamo di approfondire questo argomento nello specifico.
Un linguaggio di programmazione è una lingua formale pensata per realizzare set di istruzioni (input) con cui si producono dati in uscita (output). Fondamentalmente i linguaggi di sviluppo convertono i concetti astratti dell’uomo in codice macchina, ovvero la lingua con cui opera il computer. Esistono diversi linguaggi di programmazione ma tutti hanno delle cose comuni ossia:
Una prima distinzione che possiamo fare tra i vari linguaggi di programmazione è quella tra linguaggi interpretati e linguaggi compilati:
I linguaggi compilati sono quelli che necessitano di un programma chiamato compilatore per convertire il codice sorgente in codice macchina. Il processo di compilazione è strettamente connesso con la piattaforma hardware/software su cui è stato scritto il codice. Tali software necessitano quindi di una completa ricompilazione, ed una parziale riscrittura, per poter essere eseguiti su un sistema diverso da quello nativo.
La famiglia dei linguaggi interpretati non trasforma direttamente le proprie istruzioni in codice macchina ma appalta il tutto ad un software interprete. Tali applicativi sono nativamente “multipiattaforma” e non devono essere adattati ogni volta per essere usati su più ambienti software. Gli sviluppatori quindi non sono obbligati ad eseguire un lavoro di riscrittura e di adattamento del codice, basta appunto rendere disponibile il software interprete su più sistemi operativi.
Una seconda suddivisione è quella tra:
La domanda ovviamente sorge spontanea: quali sono i più usati?
Tutto dipende dall’ambito, infatti anche qui troviamo una suddivisione in linguaggi per utilizzo Desktop, Mobile e Web:
Un linguaggio di programmazione è una lingua formale pensata per realizzare set di istruzioni (input) con cui si producono dati in uscita (output). Fondamentalmente i linguaggi di sviluppo convertono i concetti astratti dell’uomo in codice macchina, ovvero la lingua con cui opera il computer. Esistono diversi linguaggi di programmazione ma tutti hanno delle cose comuni ossia:
- I set di istruzioni: dei comandi o delle regole descrittive;
- Le variabili e le costanti: un dato, o un insieme di dati, memorizzati o da memorizzare;
- Strutture di dati: dei meccanismi pensati per gestire e organizzare dati complessi;
- Strutture di controllo: i sistemi che dirigono il flusso d’esecuzione di un programma;
- Sottoprogramma: un insieme di codici sorgente che può essere richiamato in qualsiasi punto del programma in base alle necessità dello sviluppatore.
Una prima distinzione che possiamo fare tra i vari linguaggi di programmazione è quella tra linguaggi interpretati e linguaggi compilati:
I linguaggi compilati sono quelli che necessitano di un programma chiamato compilatore per convertire il codice sorgente in codice macchina. Il processo di compilazione è strettamente connesso con la piattaforma hardware/software su cui è stato scritto il codice. Tali software necessitano quindi di una completa ricompilazione, ed una parziale riscrittura, per poter essere eseguiti su un sistema diverso da quello nativo.
La famiglia dei linguaggi interpretati non trasforma direttamente le proprie istruzioni in codice macchina ma appalta il tutto ad un software interprete. Tali applicativi sono nativamente “multipiattaforma” e non devono essere adattati ogni volta per essere usati su più ambienti software. Gli sviluppatori quindi non sono obbligati ad eseguire un lavoro di riscrittura e di adattamento del codice, basta appunto rendere disponibile il software interprete su più sistemi operativi.
Una seconda suddivisione è quella tra:
- Orientati ad oggetti: questo paradigma di sviluppo fonde le strutture di dati con le funzioni in modo da creare le classi. I linguaggi di questo tipo hanno tre caratteristiche ben definite: l’incapsulamento, l’ereditarietà ed il polimorfismo. Per incapsulamento si intende la possibilità di un linguaggio di programmazione ad oggetti di accorpare metodi e proprietà all'interno di un’unica area, ovvero all'interno dell'oggetto. In questo modo il nostro programma verrà ridotto a tante piccole parti, ognuna che incapsula una qualche funzionalità. L'ereditarietà può essere definita come una tecnica o un processo in cui un oggetto di una classe acquisisce il comportamento e le proprietà di un altro oggetto. Questo viene fatto ereditando la classe o stabilendo una relazione tra due classi.
- Procedurali: tale modello di sviluppo adotta il concetto delle funzioni, ovvero dei blocchi di sorgente che possono essere richiamati dal programmatore, quando è necessario, durante l’esecuzione di un software. In questo modo è possibile riciclare delle porzioni di codice senza doverle riscrivere ogni volta.
- Scripting: questa classe di linguaggi viene solitamente utilizzata per automatizzare task molto lunghi e ripetitivi. Per realizzare uno script i programmatori inseriscono una serie di istruzioni all’interno di un unico file, che viene eseguito subito dopo un determinato evento, come ad esempio il click del mouse o il caricamento di una pagina.
- Imperativi: un altro paradigma di sviluppo dove lo sviluppatore indica esattamente quali sono le operazioni che la macchina deve svolgere per ottenere il risultato che si desidera.
La domanda ovviamente sorge spontanea: quali sono i più usati?
Tutto dipende dall’ambito, infatti anche qui troviamo una suddivisione in linguaggi per utilizzo Desktop, Mobile e Web:
Desktop
C++, C# e .NET
Mobile
Kotlin e Java per lo sviluppo Android. Swift per lo sviluppo per sistema operativo iOS.
Read. Watch. Learn.
HTML, CSS, JavaScript, PHP.
A cura di Vincenzo Giovinazzo
OverLimits Academy
Startup italiana che fornisce servizi di e-learning riguardo lo sviluppo di videogiochi.
© 2023 OverLimits Academy | Tutti i diritti riservati
Contrada Filippella SNC, 89844, Nicotera (VV) | P.IVA: 03511800793
le immagini presenti in questo sito appartengono ai rispettivi proprietari

