473,612 Members | 2,129 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

paxJavaScript and LISPPA technology

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
Jul 23 '05 #1
2 1995
ab@cable.netlux .org (Alexander Baranovsky) writes:
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.
Please don't multipost. You posted the exact same message in
microsoft.publi c.scripting.jsc ript. WHen posting the same message to
more than one group, you should use crossposting (writing all
newsgroup names in the Newsgroups: header) instead of multiposting
(posting several identical messages individually). If nothing else,
it saves space on the servers.

Anyway, this is just LISP lists, right? Which just means single linked
lists. While there are operations where single linked lists give good
time complexity, there are also many where they don't (e.g., random
access).

LISPPA has theoretical significance as it allows to describe complex
concepts and algorithmes on the base of the concept of polymorphic array.


I find it a little far reaching to claim theoretical significance for a
notation for linked lists. :)

The "reduced" statement is said to prevent a memory leak. That would
only be the case for a non-garbage-collected language.

When the notation is so LISP-like, it could at least include "car" and
"cdr", instead of illegible expressions like P[0][1] (just P.cadr()
would be fine :)

Since we ar in a Javascript group, I loked at the Binary Trees
example. Apart from writing "NULL" instead of "null" and adding "&" in
some places, the only real difference is the "Reduced assignment", which
overwrites the content of the address, not the binding, of the variable.
It's effectively doing reference variables and overwriting, and in the
given (Javscript) examples, it's really not needed.

I don't think introducing an "AddressOf" operator in modern languages
is a step forward :)

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleD OM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #2
>Anyway, this is just LISP lists, right? Which just means single linked
lists. While there are operations where single linked lists give good
time complexity, there are also many where they don't (e.g., random
access).
The concept "linked list" does not depend from a programming language.
:-) in LISPPA notation

var L = [100, [200, [300, null]]];

denotes a linked list presented by a polymorphic array in an imperative
language such as JavaScript, Pascal, C or other. The polymorphic arrays
provide the random access.
When the notation is so LISP-like, it could at least include "car" and
"cdr", instead of illegible expressions like P[0][1] (just P.cadr()
would be fine :)
The "car" and "cdr" seems to be not quite usual to denote an array
element in the imperative languages :-)
Since we ar in a Javascript group, I loked at the Binary Trees
example. Apart from writing "NULL" instead of "null" and adding "&" in
some places, the only real difference is the "Reduced assignment", whichoverwrites the content of the address, not the binding, of the variable.It's effectively doing reference variables and overwriting, and in the
given (Javscript) examples, it's really not needed.
The reduced assignment provides a way to avoid the memory leak in the
statement like

L = L[1];

In JavaScript the reduced assignment means

var temp = L[1];
L[1] = null;
delete L;
L = temp;

So, you can delete the first item of the L list above effectively and
without memory leak.
I don't think introducing an "AddressOf" operator in modern languages
is a step forward :)


The "AddressOf" designation has been borrowed from VB.NET. I use
"AddressOf "in paxBasic to denote operator which returns delegate of
variable (alias).

A.
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 23 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
2380
by: Alexander Baranovsky | last post by:
Let me to introduce myself. I'm author of the paxScript scripting engine: www.paxscript.com. My recent invention is the LISPPA technology (List Processing based on the Polymorphic Arrays): http://www.virtlabs.com.ua/paxscript/lisppa.htm which allows to operate with dynamic data structures without using pointers.
6
1838
by: Mike King | last post by:
I have an XML document that I need to be displayed with a specific format/layout. I have been using XML for awhile now, but I'm not familiar with every XML technology out in use. What would be the best XML based technology to use for display and printing a document. I believe the technology or XML processor will need to be aware of the printer dimensions and screen dimensions so that it can format the document accordingly. Any help...
0
1902
by: melledge | last post by:
IDEAlliance's XTech 2005 to Cover Hot Trends in Browser Technology As Mozilla, Google, Flickr, Microsoft and Others Redefine Web Interfaces, Conference Will Feature Insights and Perspective from Field's Top Thought Leaders Alexandria, Va. - April 14, 2005 - XTech 2005, the premier European conference for developers and managers working with XML and Web technologies, will feature top minds covering one of the most dynamic - and...
10
2081
by: afer | last post by:
I've read about a new free technology named "LayerD", and it's impresive compared to .NET or Java, it's not only really multiplatform, with this technology you can make programs in an object oriented paradigm and the Aspect Oriented Paradigm (AOP), what is more you can make your own Semantics Structures!! and it've RAD capabilities incorporated directly in the compiler. Of course you can use multiple languages to program in this...
3
5068
by: cybertof | last post by:
Hello, Is there a new native technoloy that would allow to do the same as DDE within Excel, but more efficient and more robust and future proof ? I mean the same as a real-time-values-update (push) through a new kind of DDE link to a kind of DDE Server. Today there is not DDE support in .NET, isn't it ?
1
1550
by: paul | last post by:
I'd like to replicate the push technology of Microsoft OutLook Web where when a new email is sent to the logged in user a temporary window pops up with the text 'You have new mail'. The same text also appears in the bottom left bar of the application. I'm more interested in the actual technology behind this. How is the 'Push' implemented? Script Callbacks, XMLHTTP, or is it a true 'Push' with Subsriber/Publisher functionality? ...
49
3249
by: SamFeltus | last post by:
I am trying to figure out why so little web development in Python uses Flash as a display technology. It seems most Python applications choose HTML/CSS/JS as the display technology, yet Flash is a far more powerful and elegant display technology. On the other hand, HTML/JS seems clunky and antiquated. I am a gardener, and not a coder by trade, but Flash seems to integrate just fine with Python. Anyways, what are the technical reasons...
4
2199
by: Ben Kim | last post by:
Hello all, We are re-developing a software product that requires push technology (wireless and hardwired). Microsoft used to support this technology in IE but dropped it for whatever reason. The system is a dispatch application. When a call comes in, the operator will assign a vehicle(s) to the call and the system should push a message out to each vehicle selected.
0
3943
by: U S Contractors Offering Service A Non-profit | last post by:
Brilliant technology helping those most in need Inbox Reply U S Contractors Offering Service A Non-profit show details 10:37 pm (1 hour ago) Brilliant technology helping those most in need Inbox Reply from Craig Somerford <uscos@2barter.net> hide details 10:25 pm (3 minutes ago)
0
8605
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8565
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8246
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8415
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7039
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6076
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4109
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2550
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
0
1413
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.