Scala Programming Language
(Redirected from Scala language)
Jump to navigation
Jump to search
A Scala Programming Language is a multi-paradigm (pure object-oriented, functional) strongly-typed statically-typed JVM-based programming language.
- Context:
- It can define legal Scala Statements.
- It can be used to define Scala Code, such as a Scala program or Scala library.
- It can be used by a Scala REPL Interpreter or a Scala Compiler.
- It was originally designed by Martin Odersky.
- It can (currently) be managed by Typesafe Inc..
- It can be used as a Scripting Language.
- ...
- Example(s):
- Scala 1.0 (2004).
- Scala 2.0 (2006).
- Scala 2.8 (2010).
- Scala 2.11 (2014)
- Scala 2.12 (2016) [1], which uses Java 8.
- Scala 2.13 (2019) [2]
https://github.com/scala/scala/releases
- ...
- Counter-Example(s):
- See: Static Typing, Type-Safe, Algebraic Data Types, Lazy Evaluation, Tail Recursion, Immutable Object.
References
2014
- (Odersky & Rompf, 2014) ⇒ Martin Odersky, and Tiark Rompf. (2014). “Unifying Functional and Object-oriented Programming with Scala.” In: Communications of the ACM Journal, 57(4).In: Communications of the ACM Journal, 57(4). doi:10.1145/2591013
2013
- (Wikipedia, 2013) ⇒ http://en.wikipedia.org/wiki/Scala_(programming_language) Retrieved:2013-12-12.
- Scala ( /ˈskɑːlə/ ) is an object-functional programming and scripting language for general software applications, statically typed, designed to concisely express solutions in an elegant, type-safe and lightweight (low ceremonial) manner. Scala has full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.). It cleans up what are often considered poor design decisions in Java (such as type erasure, checked exceptions, the non-unified type system) and adds a number of other features designed to allow cleaner, more concise and more expressive code to be written. It is intended to be compiled to Java bytecode, so the resulting executable runs on the JVM, and Java libraries can be used directly in Scala code and vice-versa. Like Java, Scala is statically typed and object-oriented, and uses a curly-brace syntax reminiscent of C. Unlike Java, Scala has many features of functional programming languages like Scheme, Standard ML and Haskell, including anonymous functions, type inference, list comprehensions (known in Scala as "for-comprehensions"), lazy initialization, extensive language and library support for avoiding side-effects, for pattern matching, case classes, delimited continuations, higher-order types, and much better support for covariance and contravariance. Scala has a unified type system (as in C#, but unlike in Java), where all types, including primitive types like integer and boolean, are subclasses of the type
Any
. Scala likewise has other features present in C# but not Java, including anonymous types, operator overloading, optional parameters, named parameters, raw strings (that may be multi-line in Scala), and no checked exceptions. The name Scala is a portmanteau of "scalable" and "language", signifying that it is designed to grow with the demands of its users. James Strachan, the creator of Groovy, described Scala as a possible successor to Java.
- Scala ( /ˈskɑːlə/ ) is an object-functional programming and scripting language for general software applications, statically typed, designed to concisely express solutions in an elegant, type-safe and lightweight (low ceremonial) manner. Scala has full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.). It cleans up what are often considered poor design decisions in Java (such as type erasure, checked exceptions, the non-unified type system) and adds a number of other features designed to allow cleaner, more concise and more expressive code to be written. It is intended to be compiled to Java bytecode, so the resulting executable runs on the JVM, and Java libraries can be used directly in Scala code and vice-versa. Like Java, Scala is statically typed and object-oriented, and uses a curly-brace syntax reminiscent of C. Unlike Java, Scala has many features of functional programming languages like Scheme, Standard ML and Haskell, including anonymous functions, type inference, list comprehensions (known in Scala as "for-comprehensions"), lazy initialization, extensive language and library support for avoiding side-effects, for pattern matching, case classes, delimited continuations, higher-order types, and much better support for covariance and contravariance. Scala has a unified type system (as in C#, but unlike in Java), where all types, including primitive types like integer and boolean, are subclasses of the type
2010
- (Odersky et al., 2010) ⇒ Martin Odersky, Lex Spoon, and Bill Venners. (2010). “Programming in Scala, 2nd edition." Artima. ISBN:0981531644
2009
- (Haller & Odersky, 2009) ⇒ Philipp Haller, and Martin Odersky. (2009). “Scala Actors: Unifying thread-based and event-based programming." Theoretical Computer Science 410, no. 2.
2004
- (Odersky et al., 2004) ⇒ Martin Odersky, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, Stéphane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, and Matthias Zenger. (2004). “An overview of the Scala programming language." Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.