The assembly programs I wrote were of type *.COM . That is, they were less than 64K in size and required no addresses to be relocated. I never wrote any assembler programs to be accessed from APL of significant size. They were intended to perform simple calculations that were inefficient in APL but easy to do in assembler for a particular platform. Although I never distributed any of these programs, I would have wrapped them in a cover function written in APL that would only use the assembly version if it were on the right platform. This, being done at initialization time, would make them efficient as the code never left the APL environment.
These programs ran to completion and left nothing for later calls. They were read-only. As I understand it, current computer architecture does not distinguish data memory from executable memory. Distinctions are made by the contents of registers. In the Intel platform, CX and DX type registers determine if memory is being addressed as instructions or data. Eric, your comment about distinguishing between executable memory and data memory brings up an interesting point. One which probably belongs in a different subject line. Verbs, adverbs and conjunctions are executable from the J perspective, but are data from the C perspective in which the J engine is written. What about making this distinction at the J level? In addition, many of these name, and many nouns loaded at J initialization never change. They should be sharable between multiple instances of J. Just like the J.DLL and J.EXE . It is possible to use memory mapping to share some names, but what would be nice would be a way to share groups of names, like everything a locale such as the J locale and the Z locale. On 7/14/07, Raul Miller <[EMAIL PROTECTED]> wrote:
On 7/14/07, Eric Iverson <[EMAIL PROTECTED]> wrote: > This description isn't quite correct or complete. Hosts can distinguish > between memory that is executable and non-executable. I also entirely glossed over the dynamic linking steps where where external references are resolved and where absolute addresses get updated so they are correct. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
