Metaprogramming is the ability to treat the source code as first-class data and emit it to the program. In Multi-stage compile-time metaprogramming the above procedure can be repeated in infinite nesting level at compile time.
- Escape .~ It prevents an expression to convert its context to AST by evaluating its current value. It is defined only inside a Quasi-quote definitions.
- Escape-value .@ Is used when we need to prevent the conversion of an expression to AST by matching the current evaluated value to an AST form.
- Inline .! Injects the declared location with the AST of the evaluated value, eliminating itself
- Execute .& Defines a statement that will be executed in the staged process.
Deploy - Compile
Import to visual studio
We deploy the project at visual studio 2010. You can find the solution at:
You can find the html/css/js assets and examples at:
JS_STAGEDJS flag to preprocessor
-i, --inputfile, input filepath -o, --outputfile, output filepath example> -i power.js -o power_final.js
JS_STAGEDJS_DBG flag to preprocessor
-i, --inputfile, input filepath -o, --outputfile, output filepath -b, --browser, browser executable location example> -i power.js -o power_final.js -b chrome
Multi-Staged Web Application
JS_STAGEDJS_SERVICE flag to preprocessor
(optional) --port, web server port Src/staged_client/js/main.js, variable SERVER_URL
Thesis submitted by Yannis Apostolidis In partial fulfillment of the requirements for the Masters’ of Science degree in Computer Science.
Thesis Supervisor Anthony Savidis
The work reported in this thesis has been conducted at the Human Computer Interaction (HCI) laboratory of the Institute of Computer Science (ICS) of the Foundation for Research and Technology - Hellas (FORTH), and has been financially supported by a FORTH-ICS scholarship.