![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
I recently started playing with the idea of writing a partial evaluator for JavaScript in JavaScript. I have tried to build a minimal proof-of-concept by extending Crockford's Pratt parser for 'simplified' JavaScript [1]. The current (very experimental) version extends Function.prototype with a specialize function so e.g., var mk_tag = function(tag,clz,cont) { return "<"+tag+" class='"+clz+"'>"+cont+"</"+tag+">"; }; var mk_div_green = mk_tag.specialize({tag:'div', clz: 'green'}); mk_div_green("Pratt rocks!"); //result: <div class='green'>Pratt rocks!</div I've started an open source project, Jeene [2], and I thought you hardcore JavaScripters might be interested. There are some portability issues, e.g., it depends on Function.prototype.toString to obtain a parseable representation of a function. A problem here is that ECMAScript 3 says that the result of toString is "implementation dependent". I am hoping for project Harmony to strengthen the contract on toString, but I don't feel sure that will happen ;-) Anyway, hope to have triggered some interest! |
#2
| |||
| |||
|
|
Erwin Moller wrote: Hi Karl, I checked your site: http://code.google.com/p/jeene/ It is not clear to me what it is you are building. I do not want to lessen your enthousiasm, but what is the point of the project? Don't worry other people have already done that ;-) |
|
The point of the project is to build a program specializer (= partial evaluator). In the case of Jeene, a program specializer takes as input a general function of several parameters and produces a specialized function of fewer parameters by fixing the values of some of the parameters. The point being that the specialized function is often much more efficient. The HTML tag was just an example to illustrate the flexibility and efficiency aspects. Was that helpful? |
#3
| |||
| |||
|
|
Karl Tikj�b Krukow schreef: Erwin Moller wrote: Hi Karl, I checked your site: http://code.google.com/p/jeene/ It is not clear to me what it is you are building. I do not want to lessen your enthousiasm, but what is the point of the project? Don't worry other people have already done that ;-) Ah good. I hate being negative when somebody starts with a new initiative. The point of the project is to build a program specializer (= partial evaluator). In the case of Jeene, a program specializer takes as input a general function of several parameters and produces a specialized function of fewer parameters by fixing the values of some of the parameters. The point being that the specialized function is often much more efficient. The HTML tag was just an example to illustrate the flexibility and efficiency aspects. Was that helpful? Partial. ;-) Could you give us a more real life example where Jeene could be helpful? I already told you why your earlier example was little convincing (for me). Regards, Erwin Moller -- ============================ Erwin Moller Now dropping all postings from googlegroups. Why? http://improve-usenet.org/ ============================ |
![]() |
| Thread Tools | |
| Display Modes | |
| |