Modula-2 Todo List - Modula2 Typing CST Test
Loading…
Modula-2 Todo List — Modula2 Code
Maintains a simple todo list with add and remove functionality.
MODULE TodoList;
IMPORT InOut;
VAR todos: ARRAY 10 OF ARRAY 50 OF CHAR; count: INTEGER := 0;
PROCEDURE addTask(task: ARRAY OF CHAR);
BEGIN
todos[count] := task; count := count + 1;
FOR i := 0 TO count-1 DO InOut.WriteString(todos[i]); InOut.WriteLn END;
END addTask;
PROCEDURE removeTask(idx: INTEGER);
VAR i: INTEGER;
BEGIN
FOR i := idx TO count-2 DO todos[i] := todos[i+1] END;
count := count - 1;
FOR i := 0 TO count-1 DO InOut.WriteString(todos[i]); InOut.WriteLn END;
END removeTask;
BEGIN
addTask("Buy milk");
addTask("Write Modula-2 code");
removeTask(0);
END TodoList.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.