000200962 001__ 200962
000200962 005__ 20190316235959.0
000200962 020__ $$a978-1-4503-2868-5
000200962 0247_ $$2doi$$a10.1145/2637647.2637649
000200962 037__ $$aCONF
000200962 245__ $$aScalaDyno: Making Name Resolution and Type Checking Fault-tolerant
000200962 269__ $$a2014
000200962 260__ $$bACM$$c2014$$aNew York, NY, USA
000200962 336__ $$aConference Papers
000200962 490__ $$aSCALA '14
000200962 520__ $$aThe ScalaDyno compiler plugin allows fast prototyping with the Scala programming language, in a way that combines the benefits of both statically and dynamically typed languages. Static name resolution and type checking prevent partially-correct code from being compiled and executed. Yet, allowing programmers to test critical paths in a program without worrying about the consistency of the entire code base is crucial to fast prototyping and agile development. This is where ScalaDyno comes in: it allows partially-correct programs to be compiled and executed, while shifting compile-time errors to program runtime. The key insight in ScalaDyno is that name and type errors affect limited areas of the code, which can be replaced by instructions to output the respective errors at runtime. This allows byte code generation and execution for partially correct programs, thus allowing Python or JavaScript-like fast prototyping in Scala. This is all done without sacrificing name resolution, full type checking and optimizations for the correct parts of the code -- they are still performed, but without getting in the way of agile development. Finally, for release code or sensitive refactoring, runtime errors can be disabled, thus allowing full static name resolution and type checking typical of the Scala compiler.
000200962 6531_ $$aScala
000200962 6531_ $$adynamic typing
000200962 6531_ $$adeferred type errors
000200962 700__ $$aBastin, Cédric
000200962 700__ $$0245399$$g200717$$aUreche, Vlad
000200962 700__ $$aOdersky, Martin$$0241835$$g126003
000200962 7112_ $$dJuly 28-29, 2014$$cUppsala, Sweden$$aFifth Annual Scala Workshop
000200962 773__ $$tProceedings of the Fifth Annual Scala Workshop
000200962 8564_ $$uhttps://github.com/scaladyno/scaladyno-plugin$$zURL
000200962 8564_ $$uhttps://infoscience.epfl.ch/record/200962/files/scaladyno-logo.png$$zn/a$$s18283$$yn/a
000200962 8564_ $$uhttps://infoscience.epfl.ch/record/200962/files/scaladyno-scala14.pdf$$zPublisher's version$$s152193$$yPublisher's version
000200962 909C0 $$xU10409$$0252187$$pLAMP
000200962 909CO $$ooai:infoscience.tind.io:200962$$qGLOBAL_SET$$pconf$$pIC
000200962 917Z8 $$x200717
000200962 917Z8 $$x200717
000200962 917Z8 $$x200717
000200962 937__ $$aEPFL-CONF-200962
000200962 973__ $$rREVIEWED$$sPUBLISHED$$aEPFL
000200962 980__ $$aCONF