VSL 2014: VIENNA SUMMER OF LOGIC 2014

Symbolic Problem Solving With Bidirectional Executable Representations

Author: Jakob Praher

PapersPapers with AbstractsPrefaceAuthor IndexKeyword IndexAdditional files

Paper Information

Title:Symbolic Problem Solving With Bidirectional Executable Representations
Authors:Jakob Praher
Proceedings:PAS 2014 Proceedings
Editors: Dongming Wang, Tudor Jebelean and Wei Li
Keywords:Formal Specification, Design, Algorithm, Imperative Program, Knowledge, Bidirectional
Abstract:

ABSTRACT. Programs are typically written by humans and executed by computers in order to solve problems over a specific domain. A program - a sequence of instructions executable by a computer - represents the encoded algorithm for solving the problem. The algorithm and data structures are created by the mental understanding of the problem given. This representation also addresses details such as run time efficiency, understandability, or maintainability.

Conversely when a programmer tries to understand a program he/she decodes the program again into an abstract mental model. From this model the programmer can start to improve or change the program, which is again encoded and represented as a modified program.

In this paper we show a problem solving process that starts with finding, enhancing or inventing a logical theory over first order predicate logic. This theory represents the concepts of the problem domain, relations between the concepts, and operations. A theory is a set of formulae. Operations on terms of the theory correspond to functionality of the solution. These operations can be characterized by partial functions from given input to expected output. Requirements formally express the functionality of the operations and are commonly defined using input/output conditions. If an operation's input satisfies the input condition then operation's output (if obtainable) satisfies the output condition.

The process is incremental. It is important to capture the high level requirements. For representing the solution as a machine executable program, the theory should be sufficiently refined so that the requirements satisfy the problem and capture important properties of the execution environment. Detailed conditions make it possible to formally evaluate different design approaches. Design approach refers to the abstractions and methods used for framing the algorithms. As an example in the hash table design it is important to capture the concept of collisions in the table abstractly in order to compare different strategies how to handle collisions.

Pages:0
Talk:Jul 18 12:15
Paper:
Disclaimer | Powered by EasyChair Smart Program