Ada e SPARK

(Nota: Qui si parla di SPARK, linguaggio di programmazione, non di Apache Spark, strumento scritto in Java per il calcolo distribuito. Quest’ultimo NON lo trattiamo)

Ada è un linguaggio di programmazione noto per sicurezza e affidabilità e per uso negli ambiti ad elevata criticità, come ad esempio avionica, astronautica, centrali nucleari, stumentazione medica, finanza, ecc. E’ nato nell’embiente militare, e si è diffuso diventando quello che è oggi: un linguaggio a scopo generale a tutti gli effetti, per un qualsiasi dominio applicativo. Il linguaggio SPARK è un sottoinsiieme di Ada con ulteriori accenti sulla sicurezza. Entrambi hanno incorporato il supporto per la “progettazione per contratto” che permette di scrivere codice senza difetti, che rispetti tutte le specifiche funzionali definite in fase di analisi.

Ada e SPARK sono ideati per sistemi in tempo reale, cosa che li rende ideali per l’uso nei sopramenzionati settori (pensiamo non sia necessario spiegare le motivazioni per cui i settori come quelli di programmazione per centrali nucleari, avionica, strumentazione medica, ecc. abbiano bisogno di elevati livelli di sicurezza). Per le loro caratteristiche di sicurezza, Ada e SPARK non sono secondi a nessuno! Da quando è stato sviluppato dal Dipartimento della Difesa degli Stati Uniti d’America, Ada ha soppiantato oltre 450 linguaggi che venivano usati in precedenza dal DdD.

Nei primi decenni dell’esistenza degli standard per Ada e SPARK (ovvero dall’1983 fino a 2012), questi venivano rilasciati lo stesso anno (Ada 83, SPARK83, Ada 95, SPARK95, Ada 2005. SPARK2005). Ada 2012 ha avuto il rispettivo standard SPARK2014, con la riprogettazione del linguaggio e degli strumenti di verifica. Prima del 2014 i contratti venivano incorporati nei commenti di Ada, ignorati dal compilatore standard di Ada e processati dagli strumenti SPARK. Spark 2014, per la prima volta, comincia ad utilizzare il nuovo strumento, nominato “aspetti”, presente in Ada 2012 per definire i contratti. Per tutti questi motivi, ha senso trattare i due linguaggi insieme, e i nostri corsi fanno proprio questo.

Su richiesta del cliente, il nostro corso può essere incentrato su Ada, su SPARK (in qual caso le competenze di Ada sono un prerequisito) oppure su entrambi.