["tilescript",
["html", "
Toward A More Scalable End-User Scripting Language
\n\n- Alessandro Warth
\n- Takashi Yamamiya
\n- Yoshiki Ohshima
\n- Scott Wallace
\n
\nViewpoints Research Institute
\n"],
["html", "The Goal of Tilescript
\n\nis to create new end-user scripting language\nwith
\n\n- good learning curve\n
- high ceiling\n
\n\n"],
["tile", "alert('This is Tilescript.')"],
["html", "Graphical Language vs Text Language
\nGraphical Language
\n\n- eToys
\n- Scratch
\n- Viscuit
\n- StageCast
\n
\nText Language
\n\n- Processing
\n- Pippy
\n- Java, Python, etc...
\n
\n"],
["html", "A classification of various end-user programming systems
\n"],
["html", "Two Languages in eToys
\neToy have two languages, tile language and Smalltalk.\nYou could write any extension in Smalltalk but...\nGap #1 : User interface
\n\nGap #2 : Object Model
\nPrototype vs Class
\n"],
["html", "Strategy
\n\n- Gap #1 : Convert a tile script into\nequivalent textual code, and vice-versa.\n
- Gap #2 : Use Javascript as the basis.\n
\n- Prototype-base object model
\n- Good reflective facilities
\n- Popular
\n
\n - ... And for \"Pop the hood\" of any part of the system.\n\n
"],
["html", "What's needed?
\nA converter of\n\n- Javascript to Parser Tree (tile)\n
- Parser Tree to Javascript\n
- Macro expansion\n
\n... OMeta can do everything.
\n"],
["html", "OMeta as a parser generator
\n"],
["html", "OMeta as general object transformer
\n\n\nSource code of the Javascript and Tilescript parser\n
"],
["html", "Tile conversion
\n"],
["tile", "(3+4)"],
["tile", "(5*6)"],
["html", "Why tile is so good?
\ntile --------------- text
\n\n\n
"],
["html", "Macro
\n\nPredefined control structures
\n\n- if {...} else {...}\n
- for () {...}\n
\nUser defined control structures (prototype.js)
\n\n- [1,2,3].each(function(v, i) { return ... })\n
- [1,2,3].any(function(v, i) { return ... })\n
\nMacro
\n\n- @repeat(4,++x)\n
- @map(x, x*2, [1,2,3])\n
\n"],
["html", "Environment
\nOur options were
\n\n- Squeak Javascript\n
- Adobe Flash (ActionScript3)\n
- Web Browser\n
\nWhy web browser?
\n\n- Easy project sharing\n
- No installer\n
- Flow layout\n(good for Active Essays / Literate programming)\n
\n"],
["html", "What's Active Essay?
\n\nActive Essay = Essay + Program\n
\n\n\ncombining a written essay, live simulations,\nand the programs that make them work in order\nto provide a deep explanation of a dynamic system\n\n
\n"],
["html", "\"Building with Squeak\" in Squeak 3.6-full
\nA tutorial of etoys with GeeMail
\n\n"],
["html", "\"Weasel Essay\" by Ted Kaehler
\nexplains how evolution works with\nvariation, selection and randomness.
\nBased on the example on pages 46-49\nin The Blind Watchmaker by Richard Dawkins.\n(W.W. Norton, 1987)
\n\n"],
["html", "Active Essays as a Curriculum
\nLet's write your Active Essays by yourself! but...
\n\nIt is hard to read a source code \nin an active essay because eToy depends\non the screen size.
\nFlow layout helps us!
"],
["html", "The goal of the environment
\neToys' curriculum
\n\n- Concrete experiment of abstract idea like math & science\n
\n+ Tilescript's curriculum
\n\n- Learning by Explaining\n
- Active Essays = Essay + Program\n
"],
["html", "How to use The Tilescript Environment
\n\n\nhttp://tinlizzie.org/jstile/#Tutorial\n
\n(Firefox2 only now) Tutorial"],
["html", "Examples
\n"],
["html", "Conclusion
\n\n- Tilescript is a new end-user scripting language\nwith a gentle learning curve and a high ceiling.\n
- Bidirectional conversion between tile and text.\n
- Simple macro to extend control structure.\n
- Authoring environment for Active Essays.\n
\n\n(future goal)\n
\n- The system itself should be an active essay.\n
"],
["html", ""]
]