Related articles |
---|
ANN: LISPPA technology (List Processing based on the Polymorphic Array ab@cable.netlux.org (Alexander Baranovsky) (2004-04-15) |
From: | "Alexander Baranovsky" <ab@cable.netlux.org> |
Newsgroups: | comp.compilers |
Date: | 15 Apr 2004 12:25:37 -0400 |
Organization: | Compilers Central |
Keywords: | storage, design |
Posted-Date: | 15 Apr 2004 12:25:37 EDT |
LISPPA (List Processing based on the Polymorphic Arrays) technology is
a way to process dynamic data structures (lists, trees and more)
without using pointers. LISPPA uses polymorphic arrays as a base of
the data representation.
A very important example of polymorphic arrays is the variant arrays
in such languages as Visual Basic, Object Pascal (Delphi) and
other. The current implementation of LISPPA has been created on the
base of extension of the Variant type. All languages of the paxScript
scripting engine: paxPascal, paxBasic, paxC, paxJavaScript support
LISPPA.
LISPPA technology uses 4 main concepts:
- Polymorphic arrays.
- Array constructors.
- Reduced assignments.
- Aliases or delegates of variable and terminals.
LISPPA technology considerably simplify the processing of dynamic data
structures in comparison with the technology based on the use of
pointers.
For example, the structure of statement which expresses operation of
insertion of item into a linked list
P := [NewItem, P];
and structure of statement which expresses operation of the removing item
from the list
reduced P := P[1];
are uniform. In another words, they are do not depend from the
position of insertion or deleting (at the top, at the middle, at the
tail of list). You are moving alias, not changing structure of the
statement. Both operations are expressed by single statement. You do
not use allocation and deallocation of memory explicitly. The
programming of the dynamic data structures becomes more safe and free
of bugs.
Well known variant types can be easy extended to provide LISPPA. So
LISPPA can be implemented in all programming systems which support the
variant types.
LISPPA considerably extends the applicability of imperative
programming languages in the symbolic computations. Programs, written
in paxScript languages, illustrate the use of LISPPA in the theorem
proving and symbolic differentiation.
LISPPA has theoretical significance as it allows to describe complex
concepts and algorithmes on the base of the concept of polymorphic
array.
To learn more about LISPPA technology, please visit
http://www.virtlabs.com.ua/paxscript/lisppa.htm
Thank you.
Alexander Baranovsky,
VIRT Laboratory
ab@cable.netlux.org
www.paxscript.com
Return to the
comp.compilers page.
Search the
comp.compilers archives again.