DenkzeitWiki

Suchen:

Aktuelle Änderungen Printable View Änderungen Bearbeiten

AppLauncher > SmartPointer > SnakesAndRubies > WebApplications > SoftwareArcheology > SoftwareEntwicklung > SoftwareDevelopment > SpielzeugAusBambus > Spyce > Stack > Heap > StatementsAndExpressions > StaticVsDynamicTypingArguments > StevenLevy > StoredProcedures > StructuredQueryLanguage > SymbolicProgrammingClear Trail
Main /

Symbolic Programming

Lisp#symbols
JohnMcCarthy
AbstractSyntaxTree
SExpressions

Symbol manipulation is like working with words and sentences.

Atoms and lists collectively are called symbolic expressions, or more succinctly, expressions.

A symbol-manipulation program uses symbolic expressions to remember and work with data and procedures, just as people use pencil, paper, and human language to remember and work with data and procedures. A symbol-manipulation program typically has procedures that recognize particular symbolic expressions, tear existing ones apart, and assemble new ones.

There are too many programming languages. Fortunately, however, only a few are for symbol manipulation, and of these Lisp is the most used. After Lisp is understood, most of the other symbol-manipulation languages are easy to learn.


Symbol
Any sequence of letters, digits, and permissible special characters that is not a number.

The idea that programmers should expresss their ideas in familiar mathematical notation, and the computer should be the one to translate these expressions into assembly language, was a radical innovation. It made FORTRAN a powerful numerical computing language. McCarthy wanted to build an equally powerful language for symbolic computing.

Symbolic programming languages support high level programming by emphasizing on logic and abstraction: control is embedded in the language implementation model, and is transparent to the programmer. The code developed in symbolic programming languages such as Lisp and Prolog are very expressive, concise, easy to comprehend, and thus easy to maintain.


With the object-oriented programming approach to software design now widely adopted, the world seems ready for another, even more dramatic change: symbolic programming.

one could represent an entire calculation by an algebraic formula and, furthermore, one could generate new formulas by following certain rules.

In Mathematica, for example, the generalization of a formula is a tree or expression which, when written out linearly, is of the form f[e1,...,en] where each ei is itself an expression.

When you solve a differential equation using symbolic programming, you can give input just as on paper, without manual reduction to "computer friendly" form. Then you can get not only numerical results, but also closed form solutions, perhaps including parameters that can be further manipulated, that is, optimized, solved for, and so on.


Computers can manipulate algebraic formulas if they are represented by syntax trees. Expressions can be named, derivatives taken, theorems defined, expressions build, expressions analyzed and equations solved. Formula manipulation is performed by tree traversal and transformation. Memory requirements may be high.


A symbol is a visible sign of an invisible microcosm, a node in an information web. Symbols form the real stuff of a language with variety provided by differing interpretations. For instance variables, procedures, types, constants, literals, and functions are all symbols. Literals are symbolic constants and expressions, preventing "mystery" numbers. Symbols allow a programmer to re-use other's work without being concerned about implementation. This is a motive behind high-level languages in providing symbolic access to machine operations.


symbolic language
A programming language that names operations, addresses, operands, and results in symbolic form; for example, assembly language, high-level language.



Symbolic Debugger


Edit - BackLinks - Tags - Page Hist - Print - Changes - Home - Orphans - Help

Zuletzt geändert am 05.12.2009 13:41 Uhr und seit 7. April 2005 1125 aufgerufen.