503,716 research outputs found
Transformational derivation of programs using the Focus system
A program derivation support system called Focus is being constructed. It will formally derive programs using the paradigm of program transformation. The following issues are discussed: (1) the integration of validation and program derivation activities in the Focus system; (2) its tree-based user interface; (3) the control of search spaces in program derivation; and (4) the structure and organization of program derivation records. The inference procedures of the system are based on the integration of functional and logic programming principles. This brings about a synthesis of paradigms that were heretofore considered far apart, such as logical and executable specifications and constructive and transformational approaches to program derivation. A great emphasis has been placed, in the design of Focus, on achieving small search spaces during program derivation. The program manipulation operations such as expansion, simplification and rewriting were designed with this objective. The role of operations that are expensive in search spaces, such as folding, has been reduced. Program derivations are documented in Focus in a way that the high level descriptions of derivations are expressed only using program level information. All the meta-level information, together with dependencies between derivations of program components, is automatically recorded by the system at a lower level of description for its own use in replay
Input Synthesis for Sampled Data Systems by Program Logic
Inspired by a concrete industry problem we consider the input synthesis
problem for hybrid systems: given a hybrid system that is subject to input from
outside (also called disturbance or noise), find an input sequence that steers
the system to the desired postcondition. In this paper we focus on sampled data
systems--systems in which a digital controller interrupts a physical plant in a
periodic manner, a class commonly known in control theory--and furthermore
assume that a controller is given in the form of an imperative program. We
develop a structural approach to input synthesis that features forward and
backward reasoning in program logic for the purpose of reducing a search space.
Although the examples we cover are limited both in size and in structure,
experiments with a prototype implementation suggest potential of our program
logic based approach.Comment: In Proceedings HAS 2014, arXiv:1501.0540
LambdaBeam: Neural Program Search with Higher-Order Functions and Lambdas
Search is an important technique in program synthesis that allows for
adaptive strategies such as focusing on particular search directions based on
execution results. Several prior works have demonstrated that neural models are
effective at guiding program synthesis searches. However, a common drawback of
those approaches is the inability to handle iterative loops, higher-order
functions, or lambda functions, thus limiting prior neural searches from
synthesizing longer and more general programs. We address this gap by designing
a search algorithm called LambdaBeam that can construct arbitrary lambda
functions that compose operations within a given DSL. We create semantic vector
representations of the execution behavior of the lambda functions and train a
neural policy network to choose which lambdas to construct during search, and
pass them as arguments to higher-order functions to perform looping
computations. Our experiments show that LambdaBeam outperforms neural,
symbolic, and LLM-based techniques in an integer list manipulation domain
- …