Semantics of Probabilistic Programs: A Weak Limit Approach