rrose1 / jsonesharp

A browser-based implementation of the 1# text register machine
GNU General Public License v2.0
6 stars 6 forks source link

template language or quasiquoting #11

Open rrose1 opened 9 years ago

rrose1 commented 9 years ago

The goal of vernacular as a language reminds me of that of so-called template languages for dynamically generated web pages ("template" here doesn't specify a property of the language as such, but of an application or technology).

Vernacular code could be thought of as a 1# code template. I think it would easy for the user to distinguish between templates and 1# code; and would encourage her not to think of the template (vernacular) code as the real thing. "Template" also evokes the nature of the limited copying and pasting automation that vernacular is intended to provide.


Another way to think about vernacular (aside from goto, label and alphanumeric string abbreviations of 1# code) is as extending 1# with a quasiquoting facility. Suppose that you were able to quote portions of 1# code and that quoted code evaluated to the literal contents of the quotation. In particular, evaluating a quoted portion of 1# code s twice would yield the evaluation of s. Then the semantics of vernacular's eval could be viewed as escaping quotation.

In Racket Scheme: `(+ ,(+ 1 2) 3) evaluates to '(+ 3 3), which evaluates to 6.

cf. unquote in http://docs.racket-lang.org/reference/quasiquote.html

I think this is also interesting for an interface, since operationally quoting is a lot like write in 1# and there could be lessons centered on these connections.

lmoss commented 9 years ago

You're right to suggest that there could be lessons on the matter of 'write' and various issues in program development. Probably I should do this.

I don't mind changing 'vernacular' to 'template' in our work. If what we have is a 'template', let's call it that. When I thought of the name 'vernacular' at the board the other day, I was remembering an old quote from someone, I forget who, to the effect that traditional mathematical logic was done in too 'sanctified' (or maybe too 'sanctimonious') a style. This was in a book on recursion theory (coincidentally); the person went on to say that for them, recursion theory was 'profane': it was just another branch of mathematics. There was no need to develop it in the minimalistic, pedantic style more common in logic. So what I was thinking of was something like this point. If 'template' is better, let's just switch.