Clprolf is a tool designed to simplify the writing and maintenance of applications. It adds a conceptual layer on top of object-oriented programming to help developers with object usage, algorithm design, and design principles (including design patterns).
Clprolf can be used in two forms:
As an annotation-based framework for Java, C#, or PHP 8+
Or as a language built on top of Java, compiling to pure Java code
It aims to preserve performance, or lose very little, and may interest developers and software architects who want to expand their programming toolbox.
Clprolf requires a taste for agent-oriented programming, the actor model, and domain-driven design (DDD).
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
clprolf design patterns examples
Insights about Clprolf - For those who already know the language