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
ariant 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.
Finally, LISPPA can be used in JavaScript implementation as an extension of
ECMA standard, paxJavaScript testifies it.
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