Symbolic analysis

From wiki.visual-prolog.com

Revision as of 17:44, 12 December 2009 by Erkki Laitila (talk | contribs)

Symbolic analysis is a method for making [1]s based on symbols. Traffic as symbolic Processing.jpg.

In figure there is an ["http://en.wikipedia.org/wiki/Object_%28philosophy%29"|object] to be monitored using a traffic light. That symbol is a signal to our eyes to activate an interpretation: to wait (red light), to be alert(yellow), or to go (green) ahead. In our brains there is a formal logic to handle interpretations from traffic lights. We suggest that our brains work like an automaton in traffic lights. Sometimes, when we are in a hurry, we ask questiong from ourselves: can we now go, can we now go... A detection from a traffic light causes a condition to be checked in the logic. It gives us the answer: You should wait, you should wait... Now you can go. That kind of symbol (traffic light) gives us pragmatic value, because it makes our travel safe, but still we can flexibly go further to home, work, trip etc - even when the traffic is very heavy.

That was the main principle of symbolic analysis in a nutshell.

Possible Uses for Symbolic Analysis

Symbolic Analysis written in Visual Prolog can be used in modeling typical formal systems, which meet requirements for atomisticity: formal languages, theorem provers, many mathematical packages, as well as simulation and optimization packages, where the type system has been written using Vip domains.

Obs. In PDC Prolog there are numerous examples of Prolog domains written for


Implementing a Symbol and Interpretation

Symbol is a reserved word in Visual Prolog, therefore we use the object SymbolicElement to model any Symbol.

interface symbolicElement supports symbolic, drawableElement, etc.

   predicates
      run: () -> clause*

end interface symbolicElement

class symbolicElement : symbolicElement

  constructors
  
     newModel: (string ModelName).
     new: (string ClassName).
     new: (string Name, symbolicElement ParentElement).

end class symbolicElement

implement symbolicElement

     supports symbolic
     inherits drawableElement, etc.

end implement symbolicElement


The Symbolic Language

Clause is the base for the Symbolic Language.

interface symbolic

   open core
  domains
    program = clause*.
    clause =
      def(defClause); %1
      creator(createClause); %2
      ref(refClause); %3
      get(getClause); %4
      etc.

end interface symbolic


The architecture

There is a PCMEF-implementation for the symbolic analysis architecture: 1. F means Foundation: The clause defintion is the carrier for all information in symbolic analysis. 2. E means Entity: SymbolicElement is the base class for all specific entities in the model. 3. M means Mediator: The static part of SymbolicElement contains the transformations and handles for Mediator. 4. C means Controller: Controller is a set of utilities to change status of the elements. 5. P means Presentation: Presentation is a graph created from model elements.