please dont rip this site

NEW202302.TXT

 

ON 20230208@10:26:46 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/language/java/script/botswjsintro.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\language\java\script\botswjsintro.htm&version=0



ON 20230209@12:26:04 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/robot/shakey.htm#44966.5181018518
James Newton[JMN-EFP-786] Says

The Shakey team: 
<UL><LI>Charles Rosen, <LI>Bertram Raphael, <LI>Dick Duda, <LI>Milt Adams, <LI>Gerald Gleason, <LI>Peter Hart, <LI>Jim Baer
<LI>Richard Fikes, <LI>Helen (Chan) Wolf, <LI>Ted Brain
</UL>



ON 20230221@11:18:04 AM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=1



ON 20230221@11:19:21 AM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=2



ON 20230224@2:53:34 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=3



ON 20230224@3:27:46 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#44981.6442824074
James Newton[JMN-EFP-786] Says

<H3>Variables as stacks</H3>
<BLOCKQUOTE>
Here is an interesting idea. What if each of our 26 variables was a stack. e.g. you could push or pop to each one. I'll demo in RPN, but I would use my favorite dest, op, src format in reality. I'm just picking ";" for the push opcode and "^" for the pop opcode and "#" for the print opcode for no good reason. Comments after ?<PRE>
a;1   ?push a 1 to the 'a' stack
b;2   ?push a 2 to the 'b' stack
T:a^# ?prints 1
</PRE>
Note that 'a' (for example) here is just selecting WHICH stack we are working on. There are 26. Opecodes like "#" (print) always work on the TOS, but WHICH TOS? Well, the last one we referenced. Binary operations, like + don't work on the current TOS and TOS+1, they work on the current TOS and the <I>former</I> TOS. e.g. we keep track of <I>references</I> to stacks, as parameters to function calls, and always use only the TOS.

And what if we didn't actually push anything until we needed to clear space, and just used the variable as if it were a register until we wanted to move on?<PRE>
a:1     ?put a 1 in 'a', but don't push it. 
T:a#    ?prints 1
a;1;2;3 ?push 1, 2, and 3 to a
T:a#    ?prints "3"
T:a^#   ?"2", the value "3" is gone
T:a#    ?"2" again.
T:a^#   ?a is now "1")
</PRE>

Of course, we could do things by referencing TOS now and <I>assume</I> the pop.<PRE>
c:a+b</PRE>

This would get the TOS of the "a" and "b" stacks and add them, then put them on TOS of c. No pushing or popping. Actually, it gets a, copies it to c, then adds b to c. Same same.
<P>
The point here, is that you have BOTH registers (high efficiency) and stacks (high functionality).
<P>
Implementation is left as an exercise for the student, but in general, each variable would be a struct, with a value, and a pointer. The pointers would form a linked list in available memory. This linked list would be the "stack". A variable reference would just set or read the value, and leave the pointer alone. A push would allocate ram, copy the value and the pointer to the allocated space, and set the pointer to the start of the allocated ram. 
<P>
It's not without problems. Pop has to deal with memory frag, but all the storage is the same size (one TOS unit) so you just have a linked list of memory chunks available after pops and you re-use those during pushes until that list is empty. 
</BLOCKQUOTE>



ON 20230224@3:30:09 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=5



ON 20230224@3:31:28 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=6



ON 20230224@3:45:41 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/minimalcontroller.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\minimalcontroller.htm&version=7



ON 20230225@7:44:33 PM at page:
On a web page you were interested in at:
http://techref.massmind.org/Techref/idea/games.htm#
James Newton[JMN-EFP-786] edited the page. Difference:
http://techref.massmind.org/techref/diff.asp?url=\Techref\idea\games.htm&version=1



file: /Techref/new202302.txt, 5KB, , updated: 2023/2/25 20:44, local time: 2024/3/18 19:06,
TOP NEW HELP FIND: 
3.93.173.205:LOG IN

 ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF="http://massmind.org/techref/new202302.txt"> new202302</A>

Did you find what you needed?

 

Welcome to massmind.org!

 

Welcome to massmind.org!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  .