Post Reply 
newRPL: Making RPL more readable
12-02-2016, 03:52 PM (This post was last modified: 12-02-2016 10:03 PM by compsystems.)
Post: #6
RE: newRPL: Making RPL more readable
Hello: the user RPL (hp48) is not 100% RPN (Reverse Polish notation)

sample
1 -> a // The operator -> (LOCAL) is in the middle (infix notation) operand operator operand

PHP Code:
«
  0 1 
-> z a infix notation for LOCAL operator (->)
  
« 
    2 
-> 
    « 
       z 
returns 0. var 'z' STILL EXISTS IN HERE
       a 
returns 1. var 'a' STILL EXISTS IN HERE
       b 
returns 2. var 'b' EXISTS FROM HERE ON
    »  
    z a b 
returns 01'b', var 'b'  NO LONGER EXISTS HEREBUT 'a' &  'z' STILL DOES
  » 
   z a b 
returns 'z' 'a' 'b'
» 

The above code 100% RPN must be
1 'a' -> // The operator -> (LOCAL) (postfix notation) operand operand operator

100% RPN
PHP Code:
«
  0 
'z' ->
  
'a' -> 
  « 
    2 
'b' -> 
    
« 
       z 
returns 0. var 'z' STILL EXISTS IN HERE
       a 
returns 1. var 'a' STILL EXISTS IN HERE
       b 
returns 2. var 'b' EXISTS FROM HERE ON
    »  
     z a b 
returns 01'b'. var 'b'  NO LONGER EXISTS HEREBUT 'a' &  'z' STILL DOES
  » 
   z a b 
returns 'z' 'a' 'b'
» 

or

100% RPN
PHP Code:
«
  
0} { z a } ->
  
« 
    2 
'b' -> 
    
« 
       z 
returns 0. var 'z' STILL EXISTS IN HERE
       a 
returns 1. var 'a' STILL EXISTS IN HERE
       b 
returns 2. var 'b' EXISTS FROM HERE ON
    »  
     z a b 
returns 01'b'. var 'b'  NO LONGER EXISTS HEREBUT 'a' &  'z' STILL DOES
  » 
   z a b 
returns 'z' 'a' 'b'
» 

but I agree more with prefix notation (POLISH NOTATION) that infix notation.
Prefix notation, at only some parts of the code, for example to declare local & static variables

PHP Code:
«
  
-> 'z' LOCAL 0 'z'
  
LOCAL 'a' 
  « 
   
....
  
»
» 

I do not like ( :: ; ) for a sub-block or scope, It gives the appearance of low-level language, and less readable. In addition :: ; these delimiters do not comply with the rule opening-close as [ ] or { } or < > or « » or ´ ` or ( ).
The colon can be used for other purposes such as labeling
(3,4) "x1" ->TAG, But keep it when stored (3,4) "x1" ->TAG 'sol1' STO
sol1 [enter] :x1: (3,4)

PHP Code:
«
  1 
-> 'a' LSTO
  « 
@ ::
    
2  -> 'b' LSTO
    « 
@ ::
       
1
       b 
2
    »  
@;
    
a b 'b'
  
» @;
» 

I suggest using keywords, your?
PHP Code:
«
  LOCAL 
'z' 
  LOCAL 
'a' 1
  BLOCK 
   
....
  
ENDBLOCK
» 

or

PHP Code:
«
  LOCAL 
z a } { 0 1 }
  
BLOCK 
   
....
  
ENDBLOCK
» 

or

PHP Code:
«
  
0 1 } { z a LSTO
  BLOCK 
   
....
  
ENDBLOCK
» 

PHP Code:
«
  LOCAL 
a b c d e f g ... } Assigns to all variables the value of 0
  BLOCK 
   
....
  
ENDBLOCK
» 


In my programs I also use, variable statics
PHP Code:
main
«
   0 
-> <-a
  «
     
<-0
      f1
     
<-
      f1 
     
<-2
      f2 
     
<-8
  »
»

f1
«
  
<-a 1 '<-a' STO
»

f2
«
  
<-a 3 '<-a' STO
» 

A possible syntax in NEWRPL
PHP Code:
«
  
STATIC 'z' 0
  
STATIC 'a' 1
  BLOCK 
   
....
  
ENDBLOCK
» 

or
PHP Code:
«
  
0 1 } { 'z' 'a' SSTO
  BLOCK 
   
....
  
ENDBLOCK
» 
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: newRPL: Making RPL more readable - Han - 12-02-2016, 12:39 PM
RE: newRPL: Making RPL more readable - compsystems - 12-02-2016 03:52 PM
RE: newRPL: Making RPL more readable - Han - 12-07-2016, 07:37 AM
RE: newRPL: Making RPL more readable - Han - 12-07-2016, 10:12 PM
RE: newRPL: Making RPL more readable - Han - 12-05-2016, 07:43 PM



User(s) browsing this thread: 1 Guest(s)