Turn a class’s responsibility into a keyword.
Build simulations and complex systems that explain themselves.
// One word tells the intent:
agent OrderService { // business actor
with_compat OrderRepository repo; // explicit contract
void checkout(Order o) { /* model Order */
repo.save(o);
}
}
Why bother?
Pain in vanilla OOP
a) A service accidentally calls a low-level helper → architectural drift
b) Concurrency bugs need ad-hoc synchronized
c) New dev spends hours mapping layers
Same code with Clprolf
a) 🚫 Compile-time error (agent cannot depend on worker_agent)
b) one_at_a_time + turn_monitor declare the intent up front
c) One glance at agent, worker_agent, model keywords tells the whole story
What is Clprolf?
A minimal language where every class starts with a role keyword (agent, worker_agent, model, information, indef_obj).
A set of modifiers for tricky realities: long_action (frame-based ops), one_at_a_time (critical section), dependent_activity (producer/consumer), underst (non-obvious algos).
A lightweight annotation framework that brings those ideas to Java, C#, PHP—no new VM required.
Perfect fit for
Large simulations & MAS-style games
Scientific prototypes that model “actors” interacting
Teaching OOP / design-pattern concepts without a 70-slide intro
Detailed guides:
Talking in Java versus talking in Clprolf - Quicksort example
Learning the class roles through Java wrappers
A clprolf design pattern example with multiple inheritance
The basics and the single inheritance of interfaces
Interface multiple inheritance in Clprolf
Getting started for OOP programmers
clprolf wrappers for Java Standard Libraries