Che cosa sono i linguaggi di programmazione?

Introduzione ai linguaggi di programmazione

In informatica, i linguaggi di programmazione, sono dei linguaggi formali che permettono tramite un insieme di istruzioni di comunicare con la macchina al fine di eseguire determinate funzioni come: somma, moltiplicazione, sottrazione e divisione.
Vien da se che l’interazione uomo-macchina avviene per mezzo di un linguaggio come comunemente avviene nel rapporto uomo-uomo, in quel caso specifico entrambi gli interlocutori parlano lo stesso linguaggio, ma nel caso uomo-macchina, le due entità parlano e comprendono due linguaggi differenti, essendo tu uomo devi far sì che le tue intenzioni vengano ben comprese dalla macchina alla quale vuoi far eseguire quella serie di istruzioni, per far sì che essa possa eseguirli nel modo corretto e più consono rispetto alle tue aspettative devi impostare determinate istruzioni e renderle comprensibili ad essa, di base questo è un linguaggio di programmazione, un linguaggio che presto scopriremo essere composto come qualsiasi linguaggio noto all’uomo che soddisfi i tre requisiti fondamentali di comprensione.

Storia

Se ad oggi è possibile comunicare con una macchina meccanica o informatica dobbiamo ringraziare Ada Lovelace, che possiamo definire colui che inventò il primo linguaggio di programmazione meccanico al mondo, scritto e coniato per la macchina di Charles Babbage, che in seguito fu sostituito e modificato da Konrad Zuse durante la seconda guerra mondiale in Svizzera nel 1946.
La programmazione dei primi elaboratori era scritta in short code, in seguito evolutosi in assembly, che rappresenta una forma simbolica del linguaggio macchina.
La maggior parte dei linguaggi di programmazione successivi cercarono un modo di rappresentare in maniera strutturata quelli che sono i meccanismi umani di rappresentare i problemi ai minimi termini, in modo che essi possano essere comprensibili alle macchine, definiti linguaggi di alto livello, uno di quelli sicuramenti più noti fu il Fortran creato da John Backus da cui derivò nel 1946 il linguaggio Basic, oltre che divenne celebre e popolare per la moltitudine di possibilità che lui attribuiva all’uomo tra cui le istruzioni di tipo IF e di controllo di flusso come cicli FOR e WHILE per le istruzioni di tipo SWITCH e di tipo CASE.

In questo modo si diminuisce di molto la lunghezza dell’istruzione stessa facendo meno volte ricordo ad istruzioni definite di salto GOTO.
Da questo momento in poi, i linguaggi di programmazione, subirono un incessante ed incondizionata evoluzione, anno dopo anno passando dal linguaggio di Wirth con Pascal al primo linguaggio strutturato a scopo didattico nel 1972 con BCPL, che diede seguito al primo linguaggio B ed in seguito a C, da li l’evoluzione non ebbe più fine, ma subirono un importante distacco dai linguaggi di vecchia concezione con i linguaggi denominati object oriented (in italiano orientati ad oggetti).
I linguaggi sicuramente più d’impatto del mondo dei linguaggi orientati ad oggetti sono senz’altro tre: EIFEL, C++ Java.

I concetti fondamentali dei linguaggi di programmazione

Ogni linguaggio di programmazione è costituito da un lessico, una sintassi ed una semantica che a sua volta possiedono:

  • Istruzione: un’istruzione rappresenta una singola azione o comando che viene eseguito dal programma. Può essere un’assegnazione di valore a una variabile, un’operazione matematica, una chiamata a una funzione, un’istruzione di controllo del flusso, ecc.
  • VariabilI e costanti: divise in due parti agli antipodi l’una dell’altra possiamo spiegare in termini elementari che entrambe le due sono contenitori.
    Il primo è un contenitore il cui dato al suo interno può risultare variabile, il secondo contenitore contiene, come dice il nome stesso un dato costante, quindi immutabile, per cui se possiedo dei dati (che essi possono essere composti numeri, lettere o contenuti) vado a “conservarli” all’interno di uno di questi due contenitori, la cui scelta è dettata dall’esigenza, tenendo conto delle funzioni.
  • Espressione: l’espressione è una combinazione di variabili e costanti, unite tra loro da operatori.
  • Strutture dati: meccanismi che permettono l’organizzazione e la gestione di dati complessi.
  • Strutture di controllo: Le strutture di controllo consentono di specificare l’ordine e le condizioni di esecuzione delle istruzioni. Le strutture di controllo includono istruzioni di selezione come “if” e “switch”, che permettono di prendere decisioni in base a condizioni specifiche, e istruzioni di ciclo come “for” e “while”, che consentono di ripetere una serie di istruzioni.
  • Funzioni: possiamo definire la funzione come un insieme di istruzioni all’interno di un unico blocco.
    Generalmente le funzioni, lavorano con dei parametri (input) per elaborare i calcoli contenuti al suo interno per generare il risultato (output).
    Ad esempio, possiamo passare ad una funzione due numeri per ottenere una somma, una moltiplicazione, una divisione o una sottrazione.
    In parole povere, una funzione, ha lo scopo di eseguire, una o più operazioni, al fine di risolvere un determinato problema.
    In gergo informatico, una funzione può anche esser chiamata procedura, metodo, sottoprogramma, routine e subroutine.

Linguaggi compilati e interpretati

Non tutti i linguaggi di programmazione lavorano alla stessa maniera, essenzialmente ci sono due tipi di linguaggi, ovvero: linguaggi compilati e linguaggi interpretati.

Compilazione

La compilazione consiste nel tradurre il codice sorgente tramite un compilatore in un codice eseguibile.
Il difetto maggiore dei linguaggi compilati è la compatibilità, ogni programma infatti, va compilato per sistema operativo e per configurazione hardware.
Il vantaggio di questa tipologia di linguaggio è la velocità d’esecuzione.

Interpretazione

A differenza della compilazione, il linguaggio interpretato, anziché tradurre il sorgente, viene direttamente eseguito senza alcun bisogno di essere tradotto.
Il difetto maggiore di questo tipo di linguaggio di programmazione è la velocità d’esecuzione.
Il vantaggio è la portabilità, infatti un linguaggio interpretato possiamo definirlo multipiattaforma, in quanto possiamo utilizzarlo in più sistemi operativi o in diverse configurazioni hardware.

Codice sorgente

In programmazione, il codice sorgente (detto anche source code o semplicemente sorgente) è il codice scritto tramite un IDE (Integrated development environment o ambiente di sviluppo integrato) di programmazione da uno o più programmatori, ovvero, un insieme di istruzioni che serviranno a realizzare un software.
Il codice sorgente, verrà successivamente compilato o interpretato dal computer al fine di generare un file, il programma.

I linguaggi di programmazione più utilizzati

  • C: Linguaggio di programmazione ad alte prestazioni e a basso livello utilizzato per sviluppare applicazioni di sistema e software embedded.
  • C++: Linguaggio di programmazione versatile e potente, utilizzato per sviluppare software di grande scala e applicazioni ad alte prestazioni.
  • C#: Linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft, ampiamente utilizzato per creare applicazioni desktop e web su piattaforma Windows.
  • Python: Linguaggio di programmazione ad alto livello e versatile, noto per la sua leggibilità e facilità d’uso, utilizzato per sviluppare applicazioni web, scientifiche e di automazione.
  • JavaScript: Linguaggio di programmazione interpretato lato client utilizzato per aggiungere interattività e funzionalità dinamiche alle pagine web.
  • PHP: Linguaggio di scripting lato server ampiamente utilizzato per lo sviluppo di applicazioni web dinamiche e la gestione dei contenuti dei siti.
  • Java: Linguaggio di programmazione multipiattaforma che consente lo sviluppo di applicazioni enterprise, app mobili Android e software di larga scala.
  • Swift: Linguaggio di programmazione sviluppato da Apple, utilizzato per creare app native per iOS, macOS, watchOS e tvOS.
  • Go: Linguaggio di programmazione open-source sviluppato da Google, noto per la sua efficienza e facilità di concorrenza, adatto per lo sviluppo di applicazioni di rete e scalabili.
  • Ruby: Linguaggio di programmazione dinamico ed elegante, spesso utilizzato per lo sviluppo web e per creare applicazioni web interattive.
  • Rust: Linguaggio di programmazione di sistema che si concentra sulla sicurezza, la velocità e la concorrenza, adatto per lo sviluppo di software di basso livello e ad alte prestazioni.

In conclusione

Il linguaggio di programmazione è il mezzo con il quale l’essere umano riesce ad interagire in maniera comprensibile dai computer (macchine informatiche) con essi stessi, rendendo le proprie intenzioni eseguibili da loro.
In pratica io essere umano, grazie al mio linguaggio riesco a far comprendere alla macchina quali sono i miei intenti e le mie necessità, riuscendo così nell’intento di ordinarle l’esecuzione di un qualcosa, d’altra parte, la macchina, comprendendo le mie richieste riesce a svolgere il suo lavoro, nel modo esatto in cui le è stato ordinato.

Noi di eXceed Srl, siamo una web agency a Palermo specializzata nella creazione di siti web e portali e-commerce mediante l’utilizzo di linguaggi di programmazione web come: PHP e JavaScript oltre che ai linguaggi di markup come: HTML e CSS, che vengono comunemente interpretati dai browser, il loro modo di compilare il linguaggio che vanno ad interpretare fanno si che restituiscono all’utente finale un sito web con un’interfaccia ampiamente comprensibile, tanto da spingere il web e questa dell’informatica in una continua evoluzione rendendo il web un modo interattivo, in grado di interfacciarsi con tutti gli utenti e portandolo all’attenzione di tutti, facendo in modo che esso possa divenire una realtà parallela a quella della vita quotidiana, definita attribuendole il marchio di web dinamico, il web 2.0.

Quello che a noi piace fare per agevolare la comprensibilità che alcuni di questi concetti possono apparire arcaici e portare un esempio, quello in questione: se nel tuo browser, grazie all’ausilio del motore di ricerca, vai a cercare la parola chiave “siti web palermo”, esso dopo un’accurata ricerca andrà a restituirti alcuni risultati, estratti grazie a delle specifiche elaborate, spesso dettate dagli standard W3C e regolate secondo alcuni parametri definiti da Schema.org e che rispecchiano il World Wide Web.
Tu utente, che ti lascerai catturare da uno dei risultati in questione cliccherai su quello che più ti attrae, andando così a scatenare una serie di eventi.
Sarà compito del browser interpretare il codice relativo al sito web che tu hai chiamato in causa e fartelo visualizzare nel modo corretto.