1. Home
  2. /
  3. Simula
  4. /
  5. Counter and Theme Toggle

Counter and Theme Toggle - Simula Typing CST Test

Loading…

Counter and Theme Toggle — Simula Code

Demonstrates a simple counter with theme toggling using Simula classes, objects, and procedures.

BEGIN
	CLASS Counter;
		INTEGER count;
		BOOLEAN isDark;

		PROCEDURE updateUI;
		BEGIN
		OutText("Counter: "); OutInt(count,0); OutImage;
		IF isDark THEN OutText("Theme: Dark") ELSE OutText("Theme: Light"); OutImage;
		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;

	END Counter;

	REF(Counter) c;
	c :- NEW Counter;
	c.count := 0;
	c.isDark := FALSE;

	c.updateUI;
	c.increment;
	c.increment;
	c.toggleTheme;
	c.decrement;
	c.reset;
END

Simula Language Guide

Simula is a high-level, statically typed programming language designed for simulation and object-oriented programming. It introduced the concept of classes, objects, and inheritance, laying the foundation for modern object-oriented languages like C++ and Java.

Primary Use Cases

  • ▸Discrete event simulation
  • ▸Teaching object-oriented programming
  • ▸Modeling complex systems
  • ▸Research in programming languages
  • ▸Historical study of software engineering paradigms

Notable Features

  • ▸Classes and objects for abstraction
  • ▸Inheritance for code reuse
  • ▸Coroutines for concurrent simulation
  • ▸Strong static typing
  • ▸Integrated simulation constructs (processes, events, queues)

Origin & Creator

Simula was developed in the 1960s by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center (Norsk Regnesentral) to support simulation of complex systems.

Industrial Note

Simula is primarily used in academia and research, particularly for simulation modeling and teaching object-oriented programming concepts.

More Simula Typing Exercises

Simula Random Number GeneratorSimula Todo ListSimula Dice RollerSimula Countdown TimerSimula Prime CheckerSimula Temperature ConverterSimula Shopping CartSimula Name GreetingSimula Stopwatch

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher