Modula-2

programmeertaal van Niklaus Wirth

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.

Modula-2
Paradigma imperatief programmeren, gestructureerd programmeren, Modulair programmeren, gedistribueerd programmeren
Verschenen 1978
Ontwerper Niklaus Wirth
Ontwikkelaar Niklaus Wirth
Huidige versie 1.6.879 [1]
(januari 2022)
Typesysteem statisch typesysteem, sterke typering, safe typing
Implementaties GNU Modula-2 en andere
Beïnvloed door Mesa, Pascal, Modula
Invloed op Modula-3, Oberon, Ada, Fortran-90, Lua
Besturings­systeem Windows [1]
Licentie freeware [1]
Bestands­extensies mod, m2, def, MOD, DEF, mi, md
Website (en) Projectpagina
Portaal  Portaalicoon   Informatica

Beschrijving

bewerken

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.[bron?]

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

Verwantschappen

bewerken

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.

bewerken
  NODES
INTERN 1
Note 1
Project 2