Welcome to Shica
State-based, Event-driven, Distributed Programming Language
Shica is an experimental programming language designed around three core concepts: State, Event, and Distributed Communication. It aims to provide a natural way to describe real-world systems such as IoT devices, physical computing, and agent-based systems.
Note: Real-world systems are inherently stateful, reactive, and distributed. Shica makes these characteristics first-class citizens of the language.
Why Shica?
In many conventional programming languages, state management, event handling, and distributed communication are treated as secondary concerns. They are often scattered across variables, callbacks, and external libraries.
Shica integrates these concepts directly into the language, allowing programmers to focus on how a system behaves rather than how control flow is manually implemented.
Key Features
1. State-centric Program Structure
A Shica program is composed of explicit states. Each state defines which events are valid and how the system should react while in that state.
This structure makes it easy to understand what can happen in each state and how transitions occur.
2. Event-driven by Design
All interactions in Shica—such as sensor inputs, user actions, or messages—are treated as events. Event handlers are clearly associated with states, reducing hidden control flow and complex conditionals.
3. Natural Expression of Distributed Communication
Shica assumes that systems may consist of multiple cooperating agents. Communication between agents is not an afterthought, but a fundamental part of the programming model.
Execution Environments

Shica execution environments: W-Shica in the browser and R-Shica on a Raspberry Pi.
W-Shica (Web-Shica)
W-Shica is a browser-based execution environment that allows developers to test, debug, and simulate Shica programs without real hardware.
- Runs in a web browser
- No physical devices required
- Suitable for education and rapid prototyping
R-Shica (Real-Shica)
R-Shica runs on real devices such as Raspberry Pi and interacts directly with sensors and actuators.
- Runs on physical hardware
- Direct access to sensors and actuators
- Designed for IoT, robotics, and physical computing
Research-Oriented Language Design
Shica is not only a practical tool but also a research platform. It explores how integrating state, event, and distribution into a unified language model affects readability, cognitive load, and expressiveness.
Looking Ahead
Shica is an evolving project. Its language specification, runtime, and tooling continue to develop in pursuit of more intuitive and expressive programming for complex, interactive systems.
Our Laboratory
Kyoto University of Advanced Science - Programming Systems Laboratory.