Skip to content

Commit 2adeef3

Browse files
committed
Merge pull request scala#406 from sjrd/gsoc-2016-scalajs
Add Scala.js GSoC project.
2 parents b9592a7 + 8485408 commit 2adeef3

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

gsoc/2016.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,36 @@ would be:
178178

179179
Supervised by [@densh](https://github.com/densh)
180180

181+
### Java source code (or bytecode) to Scala.js IR compiler
182+
183+
[Scala.js](https://www.scala-js.org/) is the Scala to JavaScript compiler.
184+
While it can compile any .scala source files to JavaScript, it is unable to
185+
compiler Java source files. This can be annoying to Scala.js developers, as
186+
they cannot reuse existing Java libraries like Scala/JVM developers do.
187+
188+
This project consists in writing a compiler from Java source code to the
189+
Intermediate Representation (IR) of Scala.js. The later phases of the existing
190+
pipeline would then be reused to compile that IR to JavaScript.
191+
192+
The Java-to-IR compiler should probably reuse an existing an existing Java
193+
parser and typechecker. From typechecked Java ASTs, it should be relatively
194+
straightforward to compile them down to the Scala.js IR (except some corner
195+
cases, but not *everything* needs to be supported).
196+
197+
*Alternative*: Writing a compiler from the JVM *bytecode* to the Scala.js IR.
198+
This is a priori much more difficult, but it might be easier for a student
199+
already familiar with the JVM bytecode.
200+
201+
The compiler will be written in Scala for the JVM. Working knowledge of Scala
202+
is expected.
203+
204+
The project requires a relatively good knowledge of compiler construction in
205+
general. **Your application should include your background in compiler
206+
construction.** Ideally, it should point to a compiler project you have written
207+
(e.g., a student project of a compiler course).
208+
209+
Supervised by [@sjrd](https://github.com/sjrd/)
210+
181211
## Requirements and Guidelines
182212

183213
### General Student Application Requirements

0 commit comments

Comments
 (0)