On Fri, Jul 20, 2012 at 4:02 PM, Ian Clark <[email protected]> wrote:
> Thanks, Raul.
>>> 2. If baa is not a verb, how can I determine its type?
>>>     -short of actually assigning it to a local name: baa=. (...) and
>>> calling 4!:0<'baa' ?
>>
>> What's wrong with that?
>
> What indeed? -- for the overwhelming majority of cases. If it turns
> into an impossibly large noun, then just too bad.

In this context, you are dealing with a representation of some element
which must already exist.  So "impossibly large" probably implies a
bug.

Meanwhile, the formal proof systems that I have looked at routinely
ignore resource limits in their proofs.

> I was trying to get right away from physically constructing (baa) each
> time. My original approach had me doing just that, covering each verb
> I found, running the tooled-up expression with test data and looking
> to see if each (baa) was called monadically or dyadically, and with
> what argument(s). If the algorithm runs to completion in reasonable
> time, it's cast-iron.
>
> But, trained as an algebraist, I wondered if a useful subset of J
> syntax (without copulas, and confined to verb trains) could be reduced
> to a formal axiomatic system and handled by substitution rules: like a
> semigroup presentation.
>
> At the time I guessed not - and your answer to my question 3
> reinforces that view: that J is "implementation defined" (like every
> other programming language I know, with the possible exception of
> Prolog) and therefore not (in the general case) amenable to algebraic
> manipulation...
>    http://www.jsoftware.com/jwiki/Guides/Language%20FAQ/J%20BNF
> more-or-less says as much.

The issue here, from my point of view, is completeness.  J's tools are
implemented in J, so J needs some open ended features or it could not
support J.

If you do not care about supporting such "recursive toolbuilding", you
can draw the line wherever you want and work with a subset which you
support and declare the rest as "out of scope".

For example, if I wanted to implement some BNF version of J, I would
pick a single result type to support, for each built in adverb and
conjunction (probably verb for : and noun for `) and ignore the other
possibilities.  This would prevent me from even having to consider
explicit adverbs and conjunctions, which makes BNF easy (though I
would still need to check name class when dealing with names).

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to