000190834 001__ 190834
000190834 005__ 20180913062151.0
000190834 037__ $$aREP_WORK
000190834 245__ $$aScala.js: Type-Directed Interoperability with Dynamically Typed Languages
000190834 269__ $$a2013
000190834 260__ $$c2013
000190834 300__ $$a10
000190834 336__ $$aReports
000190834 520__ $$aInteroperability between statically typed and dynamically typed languages is increasingly important, as can be witnessed by the many statically typed languages targeting JavaScript. Interoperating with both the object-oriented and functional features of JavaScript is essential, if only to manipulate the DOM, yet existing languages have very poor support for this.  We present Scala.js, a dialect of Scala compiling to JavaScript. Its interoperability system is based on a powerful and intuitive framework for type-directed interoperability with dynamically typed languages. The framework combines facade types for JavaScript values; user-defined, implicit, type-directed cross-language conversions; and a Dynamic type building on facade types and implicit conversions. It accommodates both the functional and object-oriented features of Scala and JavaScript, and provides very natural interoperability between the two languages. It is expressive enough to represent the DOM and jQuery APIs, among others, both in its statically typed and dynamically typed flavors.
000190834 6531_ $$ainteroperability
000190834 6531_ $$astatic types
000190834 6531_ $$adynamic types
000190834 6531_ $$aScala
000190834 6531_ $$aJavaScript
000190834 700__ $$aDoeraene, Sébastien
000190834 8564_ $$s221341$$uhttps://infoscience.epfl.ch/record/190834/files/scalajs-paper.pdf$$yn/a$$zn/a
000190834 909C0 $$0252187$$pLAMP$$xU10409
000190834 909CO $$ooai:infoscience.tind.io:190834$$pIC$$preport
000190834 917Z8 $$x232023
000190834 917Z8 $$x232023
000190834 937__ $$aEPFL-REPORT-190834
000190834 973__ $$aEPFL
000190834 980__ $$aREPORT