An Overview of the Scala Programming Language Second Edition

Scala fuses object-oriented and functional programming in a statically typed programming language. It is aimed at the construction of components and component systems. This paper gives an overview of the Scala language for readers who are familar with programming methods and programming language design.

[1]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[2]  Ole Lehrmann Madsen,et al.  Virtual classes: a powerful mechanism in object-oriented programming , 1989, OOPSLA '89.

[3]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[4]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[5]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1991, TACS.

[6]  Paul Hudak,et al.  Parametric type classes , 1992, LFP '92.

[7]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[8]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[11]  Martin Odersky,et al.  A second look at overloading , 1995, FPCA '95.

[12]  Dominic Duggan,et al.  Mixin modules , 1996, ICFP '96.

[13]  David A. Moon,et al.  A monotonic superclass linearization for Dylan , 1996, OOPSLA '96.

[14]  Mark P. Jones,et al.  Using parameterized signatures to express modular structure , 1996, POPL '96.

[15]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

[16]  Stephan Merz,et al.  Type checking higher-order polymorphic multi-methods , 1997, POPL '97.

[17]  Urs Hölzle,et al.  Binary Component Adaptation , 1997, ECOOP.

[18]  Martin Odersky,et al.  A Statically Safe Alternative to Virtual Types , 1998, ECOOP.

[19]  Benjamin C. Pierce,et al.  Local type inference , 1998, POPL '98.

[20]  John H. Reppy,et al.  The design of a class mechanism for Moby , 1999, PLDI '99.

[21]  Erik Ernst,et al.  Family Polymorphism , 2001, ECOOP.

[22]  Martin Odersky,et al.  Colored local type inference , 2001, POPL '01.

[23]  Matthew Flatt,et al.  Jiazzi: new-age components for old-fasioned Java , 2001, OOPSLA '01.

[24]  Matthias Zenger,et al.  Type-Safe Prototype-Based Component Evolution , 2002, ECOOP.

[25]  Klaus Ostermann,et al.  Dynamically Composable Collaborations with Delegation Layers , 2002, ECOOP.

[26]  Tom Hirschowitz,et al.  Mixin modules in a call-by-value setting , 2002, TOPL.

[27]  Kim B. Bruce,et al.  PolyTOIL: A type-safe polymorphic object-oriented language , 1995, TOPL.

[28]  Martin Odersky,et al.  A Nominal Theory of Objects with Dependent Types , 2003, ECOOP.

[29]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.

[30]  Erik Ernst,et al.  Higher-Order Hierarchies , 2003, ECOOP.

[31]  Alexandre Bergel,et al.  Classboxes: A Minimal Module Model Supporting Local Rebinding , 2003, JMLC.

[32]  C. Chambers,et al.  MultiJava : Design Rationale , Compiler Implementation , and User Experience , 2004 .

[33]  Matthias Zenger,et al.  PROGRAMMING LANGUAGE ABSTRACTIONS FOR EXTENSIBLE SOFTWARE COMPONENTS , 2004 .

[34]  Gilad Bracha,et al.  Adding wildcards to the Java programming language , 2004, SAC '04.

[35]  Andrew C. Myers,et al.  Scalable extensibility via nested inheritance , 2004, OOPSLA.

[36]  Martin Odersky,et al.  An Introduction to Scala , 2005 .

[37]  Jeremy G. Siek,et al.  Essential language support for generic programming , 2005, PLDI '05.

[38]  Mirko Viroli,et al.  Variant parametric types: A flexible subtyping scheme for generics , 2006, TOPL.

[39]  Scott Boag,et al.  XQuery 1.0 : An XML Query Language , 2007 .

[40]  Markus Lupp,et al.  Extensible Markup Language , 2008, Encyclopedia of GIS.