Modula-2 Counter and Theme Toggle - Modula2 Typing CST Test
Loading…
Modula-2 Counter and Theme Toggle — Modula2 Code
Demonstrates a simple counter with theme toggling using Modula-2 variables and procedures.
MODULE CounterTheme;
VAR
count: INTEGER := 0;
isDark: BOOLEAN := FALSE;
PROCEDURE updateUI;
BEGIN
WriteString("Counter: "); WriteInt(count, 0); WriteLn;
IF isDark THEN
WriteString("Theme: Dark"); WriteLn
ELSE
WriteString("Theme: Light"); WriteLn;
END;
END updateUI;
PROCEDURE increment;
BEGIN
count := count + 1;
updateUI;
END increment;
PROCEDURE decrement;
BEGIN
count := count - 1;
updateUI;
END decrement;
PROCEDURE reset;
BEGIN
count := 0;
updateUI;
END reset;
PROCEDURE toggleTheme;
BEGIN
isDark := NOT isDark;
updateUI;
END toggleTheme;
BEGIN
updateUI;
increment;
increment;
toggleTheme;
decrement;
reset;
END CounterTheme.Modula2 Language Guide
Modula-2 is a statically typed, modular, procedural programming language designed for systems programming and teaching structured programming concepts, created as a successor to Pascal.
Primary Use Cases
- ▸Teaching structured and modular programming
- ▸Systems programming and embedded applications
- ▸Operating system and compiler development
- ▸Prototyping modular software architectures
- ▸Applications requiring strong type safety
Notable Features
- ▸Module system for encapsulation
- ▸Strong static typing
- ▸Procedural programming with structured control
- ▸Separate compilation for modules
- ▸Support for low-level systems programming
Origin & Creator
Developed by Niklaus Wirth in 1978 at ETH Zurich as a follow-up to Pascal, focusing on modularity and systems programming.
Industrial Note
Modula-2 found niche use in teaching programming concepts, embedded systems, and certain early OS development projects, though modern usage is mostly academic.