000179888 001__ 179888
000179888 005__ 20190416220710.0
000179888 0247_ $$2doi$$a10.1007/978-3-642-31057-7_19
000179888 037__ $$aCONF
000179888 245__ $$aJavaScript as an Embedded DSL
000179888 269__ $$a2012
000179888 260__ $$bSpringer Berlin Heidelberg$$c2012$$aBerlin, Heidelberg
000179888 336__ $$aConference Papers
000179888 490__ $$aLecture Notes in Computer Science
000179888 520__ $$aDeveloping rich web applications requires mastering different environments on the client and server sides. While there is considerable choice on the server-side, the client-side is tied to JavaScript, which poses substantial software engineering challenges, such as moving or sharing pieces of code between the environments. We embed JavaScript as a DSL in Scala, using Lightweight Modular Staging. DSL code can be compiled to JavaScript or executed as part of the server application. We use features of the host language to make client-side programming safer and more convenient. We use gradual typing to interface typed DSL programs with existing JavaScript APIs. We exploit a selective CPS transform already available in the host language to provide a compelling abstraction over asynchronous callback-driven programming in our DSL.
000179888 6531_ $$aJavaScript, Scala, DSL, programming languages
000179888 700__ $$aKossakowski, Grzegorz
000179888 700__ $$0246589$$g164625$$aAmin, Nada
000179888 700__ $$0243345$$g185682$$aRompf, Tiark
000179888 700__ $$g126003$$aOdersky, Martin$$0241835
000179888 7112_ $$dJune 11-16, 2012$$cBeijing, China$$a26th European Conference on Object-Oriented Programming
000179888 720_1 $$aNoble, James$$eed.
000179888 773__ $$j7313$$tECOOP 2012 – Object-Oriented Programming$$q409-434
000179888 8564_ $$uhttps://github.com/js-scala/js-scala/$$zURL
000179888 8564_ $$uhttps://infoscience.epfl.ch/record/179888/files/js-scala-ecoop.pdf$$zPostprint$$s524452$$yPostprint
000179888 909C0 $$xU10409$$0252187$$pLAMP
000179888 909CO $$ooai:infoscience.tind.io:179888$$qGLOBAL_SET$$pconf$$pIC
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 937__ $$aEPFL-CONF-179888
000179888 973__ $$rREVIEWED$$sPUBLISHED$$aEPFL
000179888 980__ $$aCONF