From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Rettke Subject: What is Babel's language model? Date: Wed, 23 Jul 2014 09:09:36 -0500 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40435) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X9xEi-0003Nh-5R for emacs-orgmode@gnu.org; Wed, 23 Jul 2014 10:09:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X9xEg-0003tu-LS for emacs-orgmode@gnu.org; Wed, 23 Jul 2014 10:09:40 -0400 Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a]:40441) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X9xEg-0003tm-GN for emacs-orgmode@gnu.org; Wed, 23 Jul 2014 10:09:38 -0400 Received: by mail-oi0-f42.google.com with SMTP id a3so893843oib.29 for ; Wed, 23 Jul 2014 07:09:36 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "emacs-orgmode@gnu.org" Good morning, Whenever I learn a new programming language, I want to start by learning about it's language model. The language model explains, among other things, the order of evaluation, eagerness of evaluation, scope, and binding approach. For example the Racket programming language has their documentation here [1]. When I started learning `babel', I viewed it only as a means to and end, the end being literate programming. Consequently, I just identified goals and then either found a way to do it myself or had the kind and generous `org-mode' users here explain the right way to do it. Please don't take my laziness in learning as a mark of disrespect to `babel' or to the community. The thing is that I failed to internalize literate programming when I failed to view `babel' as a programming language. Despite having read this [2] quite informative paper, I still kind of missed the point. Now, I think that I get that I missed the point, and here is how: when I read through [org-scraps], I still get surprised and confused. `org-scraps' is great. I understand 10% of it and have a lot to learn. It never occurred to me that we may utilize the data structures that define the document itself. That is so /lispy/. Looking at how one may easily utilize souce code to assemble the very document in which it is defined is really, really great. When I play with it though, I get it wrong. My language model in my head is wrong, clearly. My goal, then, is to develop a correct language model for `babel'. My questions are: =E2=80=A2 What is the best possible way to approach this goal? =E2=80=A2 How have other `babelers' been documenting their pursuit of that = goal? Some thoughts on the goal: =E2=80=A2 Thinking of a typical LISP language learning approach of evalutai= on and binding review and study =E2=80=A2 `org-scraps' does this already, I just don't understand it =E2=80=A2 Thinking of a flow chart of how things are processed between =E2=80=A2 The document =E2=80=A2 The meta-language in which `babel' itself runs via emacs-lisp =E2=80=A2 The guest languages managed and data-brokered with `babel' =E2=80=A2 Target audience would be `babel' users but not implementers =E2=80=A2 Wouldn't need to dig into the source or `babel' =E2=80=A2 Or is that the best approach? =E2=80=A2 Measure of success would be to have people be productive withou= t using up the time and resources of the `babel' maintainers =E2=80=A2 Perhaps users who want to understand the language model would n= eed to also learn [org-element] just as one would understand how to parse/implement a LISP interpreter in LISP? Looking for comments, questions, and concerns about this goal. Kind regards, gcr [org-scraps] https://raw.githubusercontent.com/eschulte/org-scraps/master/scraps.org [org-element] http://orgmode.org/w/?p=3Dorg-mode.git;a=3Dblob;f=3Dlisp/org-element.el;h= =3D352482ef825fa495fd4e0daa7f6f236a442d2b01;hb=3D0be96db56e0ab973463376997f= e1198a28d89e5b Footnotes =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80 [1] [http://docs.racket-lang.org/reference/model.html] [2] [http://www.jstatsoft.org/v46/i03]