Computations in physical simulation, computer graphics, and probabilistic inference often require the differentiation of discontinuous processes due to contact, occlusion, and the switching of a controller on/off. Popular differentiable programming languages, such as PyTorch and JAX, do not support the differentiation of these processes. We introduce a differentiable programming language, Potto, that is the first, first-order language to support differentiation of parametric discontinuities (conditionals containing one or more real-valued variables of integration and parameters in the condition). We present a denotational semantics for programs and for program derivatives and show the two accord. From this, we describe the implementation of Potto, which enables separate compilation of programs. Our implementation of Potto overcomes previous compile-time bottlenecks. We showcase the features of Potto by implementing a prototype differentiable renderer with separately compiled shaders.