Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. EPFL thesis
  4. A typed intermediate language and algorithms for compiling scala by successive rewritings
 
doctoral thesis

A typed intermediate language and algorithms for compiling scala by successive rewritings

Altherr, Philippe  
2006

Scala is a general-purpose programming language developed at EPFL. It combines concepts coming from object-oriented languages with other ones coming from functional languages. Scala is strongly typed and comes with a relatively complex type system, which incorporates several advanced concepts. The Scala compiler consists of successive phases, which rewrite the source code into ever simpler versions until the code is simple enough such that in can be trivially translated into object code. It is expected that each phase generates well-typed Scala code. This thesis starts by describing in details the main language constructions of Scala along with its type system. It then focuses on two rewriting phases whose implementation was much more difficult than expected. Indeed, during the development of the compiler, it was discovered that some programs cannot be simplified by rewriting them if the produced code has to be well-typed Scala code. The two problematic phases are described in details as well as the programs that cannot be correctly rewritten. A typed intermediate language that generalizes some aspects of Scala and thus enables the rewriting of all programs is described. The two rewriting phases are then formally described using this intermediate language.

  • Files
  • Details
  • Metrics
Type
doctoral thesis
DOI
10.5075/epfl-thesis-3509
Author(s)
Altherr, Philippe  
Advisors
Odersky, Martin  
Jury

Claude Petitpierre, Erik Ernst, Jan Vitek

Date Issued

2006

Publisher

EPFL

Publisher place

Lausanne

Public defense year

2006-11-24

Thesis number

3509

Total of pages

203

Subjects

programming language

•

compilation

•

type system

•

intermediate language

•

program rewriting

•

langage de programmation

•

compilation

•

système de types

•

langage intermédiaire

•

réécriture de programmes

EPFL units
LAMP1  
Faculty
IC  
Section
IC-SIN  
School
IIF  
Available on Infoscience
March 13, 2006
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/228814
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés