Modula-2
Modula-2 is een programmeertaal die in 1978 werd ontwikkeld aan het instituut ETH Zürich (Eidgenössische Technische Hochschule Zürich) door Niklaus Wirth. De naam verwijst naar een eerder ontwikkelde programmeertaal die gewoon Modula heette.

Beschrijving 
Modula-2 is een algemeen inzetbare procedurele taal, flexibel genoeg voor systeemontwikkeling, maar met veel bredere toepassingsmogelijkheden. De taal werd zo ontwikkeld dat ze aparte compilatie en het belangrijke concept gegevensabstractie op een heldere manier ondersteunt. De syntaxis is grotendeels gebaseerd op Wirths oudere en veel bekendere taal, Pascal. Modula-2 moest een sterk verwante taal worden, waarin enkele Pascal-kenmerken ontbraken. Toevoegingen waren dan weer het belangrijke idee van de module en directe ondersteuning in de taal voor multitasking.

De module kan in Modula-2 gebruikt worden om een groep verwante subprogramma's en gegevensstructuren in te kapselen. Het moduleontwerp was een bijzonder elegante manier om het kenmerk gegevensabstractie te implementeren. Programma's in Modula-2 bestaan uit modules die zelf uit twee delen bestaan: een definitiemodule (Engels: definition module) - het interfacegedeelte met enkel die delen van het subsysteem die zichtbaar zijn voor andere modules - en een implementatiemodule (Engels: implementation module), die de interne programmacode van de module bevat. De taal zorgt voor veel problemen bij beginnende studenten.

De taal bevat voorzieningen voor (tot op zekere hoogte) parallelle processen in één processor en voor hardwaretoegang (absolute adressen, bitmanipulatie en interrupts).

Verwantschappen 
Hoewel Modula-2 veruit de bekendste en meest gebruikte variant is, zijn er diverse talen die hier op een of andere manier aan verwant zijn: het originele, en grondig verschillende, Modula, Modula-2+, Modula-2*, Modula-3 (van DEC en Olivetti, met de toevoeging van garbage collection, Oberon (een later ontwerp van Wirth), en nog een aantal andere. Deze moeten niet beschouwd worden als "betere versies" of "vervangingen" van Modula-2; meestal gaat het om andere talen met een ander doel, en met hun eigen sterke en zwakke punten.

Externe link 
 Projectpagina

Modula-2