000179888 001__ 179888
000179888 005__ 20190321180640.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__ $$aBerlin, Heidelberg$$bSpringer Berlin Heidelberg$$c2012
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$$aAmin, Nada$$g164625
000179888 700__ $$0243345$$aRompf, Tiark$$g185682
000179888 700__ $$0241835$$aOdersky, Martin$$g126003
000179888 7112_ $$a26th European Conference on Object-Oriented Programming$$cBeijing, China$$dJune 11-16, 2012
000179888 720_1 $$aNoble, James$$eed.
000179888 773__ $$j7313$$q409-434$$tECOOP 2012 – Object-Oriented Programming
000179888 8564_ $$uhttps://github.com/js-scala/js-scala/$$zURL
000179888 8564_ $$s524452$$uhttps://infoscience.epfl.ch/record/179888/files/js-scala-ecoop.pdf$$yPostprint$$zPostprint
000179888 909C0 $$0252187$$pLAMP$$xU10409
000179888 909CO $$ooai:infoscience.tind.io:179888$$pconf$$pIC$$qGLOBAL_SET
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 917Z8 $$x164625
000179888 937__ $$aEPFL-CONF-179888
000179888 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000179888 980__ $$aCONF