Modula-2 è un linguaggio di programmazione general-pourpose creato da Niklaus Wirth ed è il diretto successore di Pascal. Modula-2 corregge i problemi e le ambiguità del suo predecessore. Tra le caratteristiche principali vi è il concetto di modulo, ossia di un’unità logica che incapsula al suo interno dati e procedure, limitandone la visibilità all’esterno. Questo permette una migliore organizzazione del programma (cfr. programmazione modulare). Essendo un linguaggio tipizzato non ammette conversioni implicite fra tipi di dati diversi, come per esempio REAL e INTEGER, e ci vuole una funzione di conversione apposita. I linguaggi fortemente tipizzati producono un codice più corretto e per questo motivo sono i linguaggi più utilizzati nel settore mission-critical come ad esempio l’aerospaziale e il nucleare. Dato che in tempi passati non vi era un set standard di librerie ogni produttore offriva il proprio, come ad esempio Logitech e TopSpeed, e vi erano grossi problemi nella migrazione del software da un sistema all’altro. Lo standard ISO promise di risolvere questi problemi ma uscì troppo tardi e i produttori di compilatori persero interesse nel linguaggio Modula-2. Molti utenti e società spostarono il loro ambiente di sviluppo in versioni modificate del predecessore come Turbo Pascal o il più nuovo Delphi. Per questo motivo oggi è largamente sconosciuto. Tuttavia, Modula-2 sta riemergendo gradualmente in questi ultimi anni grazie alla nascita del compilatore open source GNU Modula-2.