I recently finished my masters degree, during which I developed a probabilistic programming language called SlicStan, which compiles to Stan. In short, its syntax is very similar to Stan, but does not have program blocks (the block a variable belongs to is deduced automatically). This also allows for more flexible user-defined functions that declare new parameters. For example, the non-centered Neal’s funnel model from page 338 of the manual can be written as follows:
def non_centered_normal(real m, real s) {
real x_raw ~ normal(0, 1);
return s * x_raw + m;
}
real y = non_centered_normal(0, 3);
real x = non_centered_normal(0, exp(y/2));
Here is a link to the full dissertation (see Chapter 5 for examples):
I will very much appreciate any thoughts you have on this!
The post is also a follow up on this recent discussion:
Very nice @mgorinova! I see that you’re in a CDT. Does that mean you’re continuing in this vein? Random fact: Edinburgh is @Bob_Carpenter’s old stomping ground!
Thank you, Ben and Daniel! Yes, I am starting the PhD part of the program now. I don’t have a concrete topic yet, but it will definitely be probabilistic programming related, and it’s likely to involve Stan in some way.
And by “old,” he means 30 years ago! I was there '84–'87 doing my Ph.D. in cog sci/comp sci (now all rolled into Informatics); it took me another year to write my dissertation up back in the U.S.