• Corpus ID: 17676904

An Overview of the Scala Programming Language

@inproceedings{Odersky2004AnOO,
  title={An Overview of the Scala Programming Language},
  author={Martin Odersky and Philippe Altherr and Vincent Cremet and Burak Emir and Sebastian Maneth and St{\'e}phane Micheloud and Nikolay L Mihaylov and Michel Schinz and Erik Stenman and Matthias Zenger},
  year={2004}
}
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. 

Figures from this paper

Method Proxy-Based AOP in Scala
TLDR
A fully-functional Aspect-Oriented Programming framework in Scala, a statically typed programming language with object-oriented and functional features, implemented as internal domain-specific languages with syntax that is both intuitive and expressive.
A Plea for Pluggable Programming Language Features
TLDR
This article pleads for pluggable programming language features, a concept that allows greater flexibility for application programmers without losing control over the use of those features.
Universe Type System for Scala
TLDR
This thesis presents an ownership type system for Scala and other Java-like programming languages that combines support for type genericity with path-dependent types to extend the static expressiveness of the Universe type system.
Real-time capabilities in functional languages
TLDR
This paper explores existing functional programming language compilers and their applicability to realtime, embedded systems and their application to systems that demand highly predictable behavior.
Scalable component abstractions
TLDR
Three programming language abstractions are identified for the construction of reusable components: abstract type members, explicit selftypes, and modular mixin composition, which enable an arbitrary assembly of static program parts with hard references between them to be transformed into a system of reusable component.
Code generation from Isabelle/HOL theories
This tutorial introduces the code generator facilities of Isabelle/HOL. They empower the user to turn HOL specifications into corresponding executable programs in the languages SML, OCaml, Haskell
Compiling scala for the Java virtual machine
TLDR
An implementation technique based on the representation of types as values is proposed, and how to use the run time types of the underlying virtual machine to implement those of Scala is shown.
Scala for generic programmers
TLDR
It is argued that the functional object-oriented language Scala is in many ways a better setting for datatype-generic programming, because it provides equivalents of all the necessary functional programming features and also provides the most useful features of object- oriented languages.
Deprecating the Observer Pattern with Scala
TLDR
This work shows how to integrate different reactive programming abstractions into a single framework that help migrate from observer-based event handling logic to more declarative implementations.
The Design of Monty: a Programming/Scripting Language
  • D. Watt
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2005
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 70 REFERENCES
Manifest types, modules, and separate compilation
This paper presents a variant of the SML module system that introduces a strict distinction between abstract types and manifest types (types whose definitions are part of the module specification),
The Java Language Specification
TLDR
The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
Modules for standard ML
TLDR
The module facility described here has been proposed as part of the revised language, now called Standard ML, to facilitate the structuring of large ML programs and to employ new ideas in the semantics of data types to extend the power of ML's polymorphic type system.
Type-Safe Prototype-Based Component Evolution
TLDR
This paper proposes a simple prototype-based model for first-class components on top of a class-based object-oriented language, and presents a type system for the calculus that ensures type-safe component definition, composition, and evolution.
The essence of functional programming
TLDR
This paper explores the use monads to structure functional programs and describes the relation between monads and the continuation-passing style in a compiler for Haskell that is written in Haskell.
Concurrent programming in ERLANG
TLDR
The ERLANG Tutorial and an ASN l Compiler guide to distributed programming and object-Oriented Programming are presented.
Java Language Specification, Second Edition: The Java Series
TLDR
The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
A second look at overloading
TLDR
A minimal extension of the Hindley/Milner system that supports overloading and polymorphic records is studied, showing that the type system is sound with respect to a standard untyped compositional semantics and every typable term has a principal type.
The design of a class mechanism for Moby
TLDR
This paper relies on a rich ML-style module system to provide features such as visibility control and parameterization, while providing a minimal class mechanism that includes only those features needed to support inheritance.
A Statically Safe Alternative to Virtual Types
TLDR
This paper suggests a variant of virtual types which has similar expressiveness, but supports safe static type checking, which results in a language in which both parametric types and virtual types are well-integrated, and which is statically type-safe.
...
1
2
3
4
5
...