Dyna: Toward a Self-Optimizing Declarative Language for Machine Learning Applications (2017) ============================================================================================ The :download:`paper <2017-mapl.pdf>` is available locally. This is largely a machine learning paper; my contributions were rather limited and largely confined to section 3, which discusses solver strategies for Dyna. Abstract: Declarative programming is a paradigm that allows programmers to specify what they want to compute, leaving how to compute it to a solver. Our declarative programming language, Dyna, is designed to compactly specify computations like those that are frequently encountered in machine learning. As a declarative language, Dyna's solver has a large space of (correct) strategies available to it. We describe a reinforcement learning framework for adaptively choosing among these strategies to maximize efficiency for a given workload. Adaptivity in execution is especially important for software that will run under a variety of workloads, where no fixed policy works well. We hope that reinforcement learning will identify good policies reasonably quickly—offloading the burden of writing efficient code from human programmers. BibTeX: .. code-block:: none @InProceedings{vieira-et-al-2017, author = {Tim Vieira and Matthew Francis-Landau and Nathaniel Wesley Filardo and Farzad Khorasani and Jason Eisner}, title = {Dyna: Toward a Self-Optimizing Declarative Language for Machine Learning Applications}, booktitle={Proceedings of the First ACM SIGPLAN Workshop on Machine Learning and Programming Languages (MAPL)}, year = {2017}, month = {6}, address = {Barcelona} }