ASPL Programming ver 1.00
© 2024 Bassem W. Jamaleddine


2-2

   ASPL A DETAILED VIEW



ASPL has two containers: Element Grouping Class Container (denoted with egC-container) and Global Grouping Class Container (denoted with GG-container). Both of these containers are dynamically loaded and managed by ASPL.

ASPL set variables have shapes, are hashes holding the information of subrgoups and elements, all of which described by their attributes,





■ Metagrouping Tied Attributes

ASPL can provide hooks to egC so tie attributes can be updated in GG function

Tied attributes allow to specify a domain or RANGE. The metagroup will parse a RANGE, it is written as

-attributes "point1,t" "point2,t" "point3,t"

which says that the attribute with names point1 point2 point3 are tied attribute

"mean123,c,__mean123 point1 point2 point3 /[0.0,4.99] 1-5feet/[5.0,6.5] 5-6feet/>6.5 above7feet/"

which says that the attribute mean123 is CODE with subroutine __mean123 to be executed, and point1 point2 point3 are

passed as actual parameters; also the range

 

■ Accessing Symbols from within GG-functions

Datasets are cumbersome, copying a set-variable into another to be temporarily manipulated will eventually munch the memory.

The design of ASPL was geared toward avoiding implementing functions with actual parameters so to avoid expanding internal data structure

with activation records (because that will aggressively consume the system memory).

The ASPL interpreter is lightweight, and its variables are global typeless variables.

Sometimes you want alter the internal of a set-variable on the fly:

ASPL can provide access to symbol table via to GG-function (the DNA case) partial update w/o archiving

 

Example 2.2.1

bof bof bof

The following example shows how ASPL variables get to exist once they are assigned

aspl> a1 = ggdir /tmp/aa1
    (result is assigned to a1)

aspl> a2 = ggdir /tmp/aa2
    (result is assigned to a2)

aspl> a12 = f& a1 a2
    (a12 is assigned the intersection of a1 and a2)

aspl> v
    (print the variables)

 

Operation 2.2.1

Anchor Tit Placeholder

①  aspl> c123 = c& a1 a2 a3
    (c123 is assigned all checksums intersections of a1 a2 a3)

②  aspl> adisplay c123
    (print out c123)

aspl> av c123
    (view internals of set variable c123)

③   Just dump the rest to a file

AS BEING SET IN THE SHELL:
--------------------------
ASPL_CONFIG=/root/WS,WS3,10,10,10,1000,30,2,0,0,0