In order to express reactive programs as in the family of synchronous languages one had to introduce time. This led to the language tcc which captures temporal notions. However, for synchronous programs one needs an orthogonal idea as well, that of a default. The presence of defaults introduces nonmonotonicity into the language. As we refine the notion of time and introduce a mixture of continuous time as well as discrete time we get a hybrid language called hcc.
Proabilistic cc was introduced at the end of the 1990s. It turned out that one could use probabilities instead of defaults. In other words the way probability works one can emulate the effect of defaults. I will describe this evolution from logic programming languages to languages for modelling stochastic processes through programming examples and will conclude with possible extensions to a language useful for state estimation. Much of the development is due to Vineet Gupta, Radha Jagadeesan and Vijay Saraswat.