In Computational Science, Engineering and Finance (CSEF) scripts typically serve as the "glue" between potentially highly complex and computationally expensive external subprograms. Differentiability of the resulting programs turns out to be essential in the context of derivative-based methods for error analysis, uncertainty quantification, optimization or training of surrogates. We argue that it should be enforced by the scripting language itself through exclusive support of differentiable (smoothed) external subprograms and differentiable intrinsics combined with prohibition of nondifferentiable branches in the data flow. Illustration is provided by a prototype adjoint code compiler for a simple Python-like scripting language.
翻译:在计算性科学、工程和金融(CSEF)脚本中,通常可以作为潜在高度复杂和计算费用昂贵的外部子方案之间的“括号”,由此产生的程序的不同性在以衍生物为基础的错误分析方法、不确定性量化、优化或代孕培训方面至关重要,我们主张,应当通过书写语言本身,通过独家支持可区分的(移动的)外部子方案和可区分的内在内容,加上在数据流中禁止不可区分的分支,加以执行。