Glossario Linguaggi di programmazione
Glossario verificato
I linguaggi con cui si scrive il software: sintassi, tipi, compilazione e runtime. I termini chiave dei linguaggi spiegati con chiarezza.
-
A
-
ABAP (Advanced Business Application Programming)
Linguaggio di quarta generazione di SAP, sviluppato dagli anni 1980, con cui è scritta gran parte delle applicazioni SAP. Multiparadigma (procedurale e a oggetti), serve a personalizzare ed estendere SAP ERP e S/4HANA e ad accedere ai relativi dati. -
Ada
Linguaggio strutturato e fortemente tipizzato progettato dal team di Jean Ichbiah (CII Honeywell Bull) su commissione del Dipartimento della Difesa USA e apparso nel 1980. Pensato per sistemi critici embedded, prende il nome da Ada Lovelace. -
Agda
Linguaggio funzionale con tipi dipendenti e assistente di prova basato sulla teoria dei tipi intuizionista di Martin-Löf. Permette di scrivere e verificare dimostrazioni matematiche costruttive ed eseguirle come algoritmi; include l'estensione Cubical Agda. -
ALGOL
Famiglia di linguaggi imperativi definita da un comitato internazionale ACM-GAMM tra il 1958 e il 1960 per descrivere algoritmi. Introdusse la struttura a blocchi e la forma BNF, influenzando gran parte dei linguaggi successivi. -
APL (A Programming Language)
Linguaggio orientato agli array basato sulla notazione ideata da Kenneth Iverson (Harvard, 1957) e pubblicata nel libro "A Programming Language" nel 1962. Usa un ricco insieme di simboli per operare su vettori e matrici in modo conciso. -
Assembly
Linguaggio di bassissimo livello che rappresenta in forma leggibile le istruzioni macchina di un processore. Offre il massimo controllo sull'hardware, al prezzo di una scrittura complessa e legata alla specifica architettura. -
AWK
Linguaggio per l'elaborazione di testo creato nel 1977 nei Bell Labs da Alfred Aho, Peter Weinberger e Brian Kernighan (da cui l'acronimo). Legge l'input riga per riga suddividendolo in campi e applica regole pattern-azione; storico strumento Unix. -
B
-
BASIC
Linguaggio didattico creato nel 1964 da John Kemeny e Thomas Kurtz al Dartmouth College per rendere la programmazione accessibile agli studenti. Semplice e basato su comandi in inglese, divenne il linguaggio principale dei primi microcomputer. -
C
-
C
Linguaggio compilato a basso livello nato negli anni Settanta, vicino all'hardware ma sufficientemente astratto. È alla base di sistemi operativi, driver e software embedded, e ha influenzato la sintassi di gran parte dei linguaggi moderni. -
C#
Linguaggio a oggetti sviluppato da Microsoft per la piattaforma .NET, con tipizzazione statica e garbage collection. È diffuso per applicazioni desktop, web, servizi e giochi realizzati con il motore Unity. -
C++
Estensione del linguaggio C che aggiunge la programmazione a oggetti e astrazioni potenti mantenendo il controllo di basso livello. È usato dove servono prestazioni ed efficienza, come motori grafici, videogiochi e software di sistema. -
Clojure
Dialetto moderno del linguaggio Lisp che gira sulla macchina virtuale Java, di stampo funzionale e con forte enfasi sull'immutabilità. È apprezzato per la gestione elegante di concorrenza e dati. -
COBOL
Linguaggio storico progettato per applicazioni gestionali e transazionali. Nonostante l'età, è ancora in esecuzione in molti sistemi bancari e amministrativi, dove sostituirlo sarebbe rischioso e costoso. -
CoffeeScript
Linguaggio che compila in JavaScript, creato da Jeremy Ashkenas nel 2009 con una sintassi concisa ispirata a Ruby e Python. Elimina parte della verbosità di JavaScript e ne ha influenzato l'evoluzione successiva. -
Common Lisp
Dialetto standardizzato del Lisp, definito nello standard ANSI X3.226-1994 dal comitato X3J13. Linguaggio multiparadigma con macro potenti e sistema a oggetti CLOS, unifica in un unico standard industriale le varianti Lisp precedenti. -
Crystal
Linguaggio compilato e tipizzato staticamente con sintassi ispirata a Ruby, che usa inferenza di tipo avanzata e backend LLVM. Molti programmi Ruby sono validi anche in Crystal; offre fibre e canali per la concorrenza, macro e generici. -
D
-
D
Linguaggio di programmazione di sistema multiparadigma creato da Walter Bright (Digital Mars) e rilasciato nel 2001, nato come reingegnerizzazione del C++. Combina sintassi in stile C con garbage collection, contract programming e unit test integrati. -
Dart
Linguaggio sviluppato da Google, ottimizzato per costruire interfacce utente. È il fondamento del framework Flutter, con cui si realizzano applicazioni multipiattaforma per mobile, web e desktop da un unico codice. -
Delphi (Object Pascal)
Ambiente RAD e linguaggio a oggetti basato su Object Pascal, introdotto da Borland nel 1995 e oggi sviluppato da Embarcadero. Unisce compilazione nativa e sviluppo visuale di applicazioni Windows tramite la Visual Component Library (VCL). -
Domain-Specific Language (DSL)
Linguaggio progettato per un dominio ristretto e specifico, invece che per scopi generali. Sacrifica la versatilità per offrire un modo molto efficace di esprimere problemi in quel particolare ambito. -
E
-
Eiffel
Linguaggio a oggetti progettato da Bertrand Meyer nel 1985 (prima versione nel 1986) per aumentare l'affidabilità del software. Introdusse il Design by Contract, con precondizioni, postcondizioni e invarianti di classe integrati nel linguaggio. -
Elixir
Linguaggio funzionale costruito sulla macchina virtuale Erlang, pensato per sistemi concorrenti, distribuiti e altamente affidabili. È usato per applicazioni real-time e servizi che devono restare sempre disponibili. -
Elm
Linguaggio funzionale puro progettato da Evan Czaplicki nel 2012 come tesi, che compila in JavaScript per creare interfacce web. Grazie al controllo statico dei tipi punta all'assenza di eccezioni a runtime nella pratica. -
Erlang
Linguaggio funzionale progettato per sistemi concorrenti, distribuiti e tolleranti ai guasti. Nato nelle telecomunicazioni, alimenta infrastrutture che devono garantire disponibilità continua. -
F
-
F#
Linguaggio funzionale della piattaforma .NET, che favorisce codice conciso, immutabile e sicuro sui tipi. È usato per analisi dati, modellazione di domini complessi e ovunque serva rigore funzionale in ambiente .NET. -
Forth
Linguaggio stack-oriented ed estensibile creato da Charles "Chuck" Moore intorno al 1970, usato prima all'osservatorio radioastronomico NRAO. Basato su una macchina a due stack e su "parole" concatenabili, è interattivo e adatto ai sistemi embedded. -
Fortran
Uno dei primi linguaggi ad alto livello, tuttora usato nel calcolo scientifico e ingegneristico. È apprezzato per le prestazioni nei calcoli numerici intensivi, come simulazioni fisiche e meteorologiche. -
G
-
Gleam
Linguaggio funzionale, tipizzato staticamente, che compila in Erlang per la BEAM e in JavaScript. Sfrutta la macchina virtuale Erlang per sistemi tolleranti ai guasti e un sistema di tipi robusto; interopera con Erlang ed Elixir. -
GNU Octave
Linguaggio di alto livello per il calcolo numerico, avviato da John W. Eaton (versione 1.0 nel 1994), in gran parte compatibile con MATLAB. Offre strumenti per algebra lineare, equazioni non lineari e differenziali; è software libero sotto licenza GPL. -
Go
Linguaggio compilato creato da Google, orientato a semplicità, tempi di compilazione rapidi e concorrenza nativa tramite goroutine e canali. È molto usato per servizi di rete, strumenti a riga di comando e infrastrutture cloud, dove scalabilità e chiarezza contano. -
Groovy
Linguaggio dinamico per la macchina virtuale Java, con sintassi snella e forte integrazione con l'ecosistema Java. È usato per scripting, test e nell'automazione delle build, ad esempio con lo strumento Gradle. -
H
-
Hack
Linguaggio creato da Meta (Facebook) come dialetto di PHP per la HipHop Virtual Machine (HHVM) e presentato nel 2014. Introduce il gradual typing, combinando tipizzazione statica e dinamica, e interopera in modo trasparente con PHP. -
Haskell
Linguaggio puramente funzionale con tipizzazione statica forte e valutazione pigra. Privilegia funzioni prive di effetti collaterali ed è spesso usato in ricerca, finanza e per esplorare tecniche di programmazione avanzate. -
Haxe
Linguaggio a oggetti open source e fortemente tipizzato, avviato da Nicolas Cannasse nel 2005. Il suo cross-compilatore genera codice per molti target (JavaScript, C++, C#, Java, Python, PHP, Lua e altri), consentendo un unico codice multipiattaforma. -
I
-
Idris
Linguaggio funzionale puro general-purpose con tipi dipendenti, progettato da Edwin Brady e apparso nel 2007. I tipi possono dipendere dai valori, consentendo di specificare nel tipo proprietà del programma; è compilato e mira alla programmazione verificata. -
J
-
Java
Linguaggio a oggetti compilato in bytecode ed eseguito da una macchina virtuale, secondo il principio scrivi una volta, esegui ovunque. È molto usato in ambito aziendale, backend su larga scala e applicazioni Android. -
JavaScript
Linguaggio interpretato nato per rendere interattive le pagine web ed eseguito nativamente dai browser. Con l'avvento di runtime lato server come Node.js si è esteso al backend, diventando un linguaggio versatile e centrale nello sviluppo di applicazioni full-stack. -
Julia
Linguaggio ad alte prestazioni pensato per il calcolo numerico e scientifico, con una sintassi semplice vicina a quella matematica. Punta a unire la facilità d'uso dei linguaggi dinamici alla velocità di quelli compilati. -
K
-
Kotlin
Linguaggio moderno interoperabile con Java ed eseguito sulla stessa macchina virtuale, con sintassi più concisa e maggiore sicurezza sui valori nulli. È il linguaggio ufficiale consigliato per lo sviluppo Android. -
L
-
Lean
Linguaggio funzionale e assistente di prova interattivo basato sulla teoria dei tipi dipendenti, avviato da Leonardo de Moura nel 2013 presso Microsoft Research. Lean 4 è reimplementato in sé stesso ed è pienamente estensibile; usato per la verifica formale. -
Linguaggio compilato
Linguaggio il cui codice sorgente viene tradotto in anticipo in codice macchina da un compilatore, prima dell'esecuzione. Ne derivano prestazioni elevate, al prezzo di un passo di compilazione preliminare. -
Linguaggio di markup
Linguaggio che annota un testo per descriverne struttura o presentazione, senza esprimere logica di calcolo. Esempi tipici sono HTML per le pagine web e Markdown per i documenti formattati. -
Linguaggio di scripting
Linguaggio pensato per automatizzare compiti e collegare componenti, di solito interpretato e conciso. È usato per script di sistema, automazione e logica applicativa rapida da scrivere e modificare. -
Linguaggio interpretato
Linguaggio il cui codice viene eseguito riga per riga da un interprete, senza una compilazione preventiva completa. Offre flessibilità e sviluppo rapido, spesso a scapito della velocità di esecuzione. -
Logo
Linguaggio educativo ideato nel 1967 alla BBN da Wally Feurzeig, Seymour Papert e Cynthia Solomon. Derivato concettualmente dal Lisp, è noto per la turtle graphics, con cui si guida una "tartaruga" a tracciare disegni per insegnare a programmare. -
Lua
Linguaggio di scripting leggero e veloce, progettato per essere incorporato dentro altre applicazioni. È molto usato nei videogiochi e nei software estendibili per aggiungere logica personalizzata. -
M
-
MATLAB
Linguaggio e ambiente specializzato nel calcolo numerico, nell'analisi di matrici e nella visualizzazione. È molto diffuso in ingegneria e ricerca per prototipare algoritmi e modellare sistemi. -
Miranda
Linguaggio funzionale puro e lazy progettato da David Turner e rilasciato nel 1985 da Research Software Ltd., successore di SASL e KRC. Primo linguaggio puramente funzionale supportato commercialmente, influenzò fortemente Haskell. -
Modula-2
Linguaggio creato da Niklaus Wirth all'ETH di Zurigo intorno al 1978 come successore del Pascal. Aggiunge il concetto di modulo con compilazione separata, l'astrazione dei dati e il supporto alla multiprogrammazione; nato per la workstation Lilith. -
Mojo
Linguaggio creato nel 2023 da Chris Lattner presso Modular come superset del Python, pensato per il codice ad alte prestazioni su acceleratori moderni. Compilato, punta a unire la facilità d'uso di Python alla velocità richiesta dai carichi AI/ML. -
N
-
Nim
Linguaggio compilato con sintassi pulita ispirata a Python, che produce eseguibili efficienti. Combina la leggibilità dei linguaggi dinamici con le prestazioni tipiche dei linguaggi compilati. -
O
-
Oberon
Linguaggio general-purpose pubblicato nel 1987 da Niklaus Wirth e Jürg Gutknecht all'ETH di Zurigo come successore di Modula-2. Ne semplifica la sintassi e aggiunge l'estensione di tipo dei record per la programmazione a oggetti. -
Objective-C
Linguaggio a oggetti derivato dal C, a lungo principale per lo sviluppo su piattaforme Apple. È stato progressivamente sostituito da Swift, ma resta presente in molte basi di codice esistenti. -
OCaml
Linguaggio funzionale con tipizzazione statica forte e inferenza dei tipi, che supporta anche stili imperativo e a oggetti. È apprezzato in ambiti dove correttezza ed espressività sono cruciali. -
P
-
Pascal
Linguaggio strutturato nato con finalità didattiche, che ha formato generazioni di programmatori. Ha influenzato le buone pratiche di programmazione ed è stato base di ambienti di sviluppo come Delphi. -
Perl
Linguaggio di scripting molto flessibile, storicamente potente nell'elaborazione di testo e nelle espressioni regolari. È stato a lungo lo strumento principe per l'amministrazione di sistema e la manipolazione di dati. -
PHP
Linguaggio di scripting nato per il web e pensato per generare pagine lato server. Alimenta una vasta parte dei siti esistenti ed è il fondamento di piattaforme diffuse come WordPress e di molti framework moderni. -
PL/I (Programming Language One)
Linguaggio procedurale sviluppato da IBM a partire dal 1964 per il System/360, con l'obiettivo di unire calcolo scientifico (Fortran) ed elaborazione commerciale (COBOL). Usato per sistemi come Multics, è tra i primi linguaggi general-purpose. -
PL/SQL
Estensione procedurale di Oracle al linguaggio SQL. Aggiunge struttura a blocchi, variabili, cicli, condizioni e gestione delle eccezioni, permettendo di incorporare istruzioni SQL; il codice può essere salvato nel database come procedure e funzioni. -
PowerShell
Soluzione Microsoft di automazione fatta di shell a riga di comando, linguaggio di scripting e framework di gestione, rilasciata nel 2006 e basata sul CLR di .NET. A differenza delle shell testuali, la pipeline passa oggetti .NET; oggi è multipiattaforma. -
Prolog
Linguaggio logico in cui si dichiarano fatti e regole, e il sistema deduce le risposte alle interrogazioni. È usato in intelligenza artificiale, sistemi esperti ed elaborazione del linguaggio naturale. -
PureScript
Linguaggio funzionale puro, fortemente tipizzato e ispirato a Haskell, che compila in JavaScript. A differenza di Haskell usa valutazione stretta, facilitando l'interoperabilità; adatto soprattutto a single-page application front-end. -
Python
Linguaggio di alto livello, interpretato e a tipizzazione dinamica, apprezzato per la sintassi leggibile e la vasta libreria standard. È molto diffuso in ambito scientifico, data science, automazione e sviluppo web, grazie anche a un ricco ecosistema di pacchetti di terze parti. -
R
-
R (linguaggio)
Linguaggio e ambiente specializzato nell'analisi statistica e nella visualizzazione dei dati. È molto diffuso in ambito scientifico e nella data science, grazie a un ricco ecosistema di pacchetti dedicati. -
Racket
Dialetto moderno di Lisp discendente da Scheme, nato a metà anni 1990 come PLT Scheme (rinominato Racket nel 2010) dal gruppo guidato da Matthias Felleisen. Piattaforma per il language-oriented programming, include l'ambiente DrRacket. -
Raku
Linguaggio della famiglia Perl, noto come Perl 6 fino al 2019, quando fu rinominato Raku con l'approvazione di Larry Wall. Multiparadigma e distinto dal Perl 5, offre tipizzazione graduale, grammatiche e concorrenza integrata. -
Reason (ReasonML)
Sintassi alternativa in stile C per il linguaggio OCaml, creata in Facebook da Jordan Walke nel 2016 per facilitarne l'adozione da parte degli sviluppatori JavaScript. Supporta JSX e compila in codice nativo o JavaScript; usata in Facebook Messenger. -
Rexx (Restructured Extended Executor)
Linguaggio di scripting sviluppato in IBM da Mike Cowlishaw tra il 1979 e il 1982 per sostituire i linguaggi EXEC. Concepito come versione semplificata del PL/I, è usato per macro applicative e automazione, precursore di linguaggi come Tcl. -
Ruby
Linguaggio dinamico orientato agli oggetti, progettato per la leggibilità e la produttività dello sviluppatore. È noto soprattutto per il framework Ruby on Rails, che ha reso rapido lo sviluppo di applicazioni web. -
Rust
Linguaggio di sistema che garantisce sicurezza della memoria senza garbage collector grazie al modello di ownership e al controllo dei prestiti verificato a tempo di compilazione. Offre prestazioni vicine al C prevenendo intere classi di errori come i data race. -
S
-
SAS
Linguaggio di quarta generazione per l'analisi statistica dei dati, creato da Anthony James Barr alla North Carolina State University e sviluppato dal SAS Institute (fondato nel 1976). Usato per gestione dati, modellazione statistica e reportistica. -
Scala
Linguaggio che unisce programmazione a oggetti e funzionale sulla macchina virtuale Java. È apprezzato per la sua espressività e viene usato in ambito big data, ad esempio con il motore di elaborazione Apache Spark. -
Scheme
Dialetto minimalista ed elegante del linguaggio Lisp, molto usato nell'insegnamento dell'informatica. La sua semplicità lo rende ideale per esplorare i concetti fondamentali della programmazione. -
Simula (Simula 67)
Linguaggio sviluppato da Ole-Johan Dahl e Kristen Nygaard al Norwegian Computing Center (Simula I nel 1965, Simula 67 nel 1967). È considerato il primo linguaggio a oggetti: introdusse classi, sottoclassi, oggetti e coroutine. -
Smalltalk
Linguaggio a oggetti e ambiente grafico creato al Xerox PARC dal gruppo di Alan Kay negli anni 1970, con Dan Ingalls come programmatore principale. La versione pubblica Smalltalk-80 diffuse il paradigma a oggetti puro basato su messaggi. -
Solidity
Linguaggio orientato agli oggetti per scrivere smart contract sulla blockchain Ethereum. Definisce contratti che vengono eseguiti in modo deterministico sulla Ethereum Virtual Machine. -
SQL
Linguaggio dichiarativo per interrogare e manipolare i dati nei database relazionali. Invece di descrivere come ottenere i dati, si dichiara cosa si vuole, e il motore del database determina come recuperarlo. -
Standard ML (SML)
Linguaggio funzionale, tipizzato staticamente e modulare della famiglia ML, con definizione formale pubblicata nel 1990 e rivista nel 1997 (SML '97) da Milner, Tofte, Harper e MacQueen. Offre inferenza di tipo, moduli parametrici e pattern matching. -
Swift
Linguaggio sviluppato da Apple per creare applicazioni per iPhone, Mac e gli altri suoi dispositivi. Combina prestazioni elevate, sicurezza e una sintassi moderna, sostituendo il precedente Objective-C. -
SystemVerilog
Linguaggio di descrizione e verifica dell'hardware standardizzato come IEEE 1800, estensione del Verilog di cui è superset. Adottato come IEEE 1800-2005 e unificato con Verilog nel 2009, aggiunge programmazione a oggetti, assertion e verifica random vincolata. -
T
-
Tcl (Tool Command Language)
Linguaggio di scripting interpretato e integrabile creato da John Ousterhout a Berkeley nel 1988. Con un nucleo minimale in cui tutto è trattato come stringa, è usato come linguaggio "collante", per il test automation e negli strumenti EDA/CAD. -
Transact-SQL (T-SQL)
Estensione proprietaria di Microsoft e Sybase al linguaggio SQL, centrale nell'uso di SQL Server. Aggiunge programmazione procedurale con variabili, controllo di flusso, gestione degli errori e delle transazioni e procedure memorizzate. -
TypeScript
Sovrainsieme di JavaScript che aggiunge un sistema di tipi statico opzionale, compilato poi in JavaScript standard. Il controllo dei tipi a tempo di sviluppo intercetta errori in anticipo e migliora manutenibilità e strumenti su progetti di grandi dimensioni. -
V
-
Vala
Linguaggio a oggetti con sintassi simile a C#, ideato da Jürg Billeter per lo sviluppo di applicazioni GNOME. Il compilatore genera codice C basato sul sistema di tipi GObject, senza overhead a runtime e con accesso diretto alle librerie C. -
Verilog
Linguaggio di descrizione dell'hardware (HDL) creato da Phil Moorby e Prabhu Goel alla Gateway Design Automation nel 1984, con sintassi ispirata al C. Divenuto standard IEEE 1364 nel 1995, è usato per descrivere, simulare e sintetizzare circuiti a livello RTL. -
VHDL (VHSIC Hardware Description Language)
Linguaggio di descrizione dell'hardware nato dal programma VHSIC del Dipartimento della Difesa USA, proposto nel 1981 e standardizzato come IEEE 1076 nel 1987. Sviluppato da IBM, Texas Instruments e Intermetrics, modella e verifica sistemi digitali complessi. -
Visual Basic
Linguaggio di Microsoft pensato per rendere accessibile lo sviluppo, con un approccio orientato agli eventi e alle interfacce. È stato molto usato per applicazioni desktop e macro in ambiente Office. -
W
-
WebAssembly
Formato di codice binario a basso livello per una macchina virtuale a stack, eseguibile nei browser a velocità prossime a quelle native. Permette di portare sul web linguaggi come C++ e Rust, oltre al tradizionale JavaScript. -
Wolfram Language
Linguaggio di Wolfram Mathematica, creato da Stephen Wolfram e parte della prima versione del 1988. Linguaggio simbolico e multiparadigma basato sulla riscrittura di termini, funge da sistema di algebra computazionale per calcolo simbolico e numerico. -
Z
-
Zig
Linguaggio di sistema moderno che punta a semplicità, prestazioni e controllo esplicito della memoria, senza garbage collector. Si propone come alternativa più sicura e prevedibile al linguaggio C.