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

Reply via email to