Scala (ngôn ngữ lập trình) là gì? Chi tiết về Scala (ngôn ngữ lập trình) mới nhất 2021

Bách khoa toàn thư mở Wikipedia

Bước tới điều hướng
Bước tới tìm kiếm

Scala
Scala logo.png
Mẫu hình Đa mẫu hình: lập trình hàm, hướng đối tượng, mệnh lệnh
Thiết kế bởi Martin Odersky
Nhà phát triển Phòng thí nghiệm Phương pháp lập trình của EPFL
Xuất hiện lần đầu 2003
Phiên bản ổn định
2.11.7
/ 23 tháng 6, 2015 (2015-06-23)
Bản xem thử
2.12.0-M3
/ 6 tháng 10, 2015 (2015-10-06)
Kiểm tra kiểu tĩnh, mạnh, suy diễn, cấu trúc
Nền tảng JVM
Giấy phép BSD
Trang mạng www.scala-lang.org
Ảnh hưởng bởi
Java, Pizza,[1] Haskell, Erlang, Standard ML, OCaml, Smalltalk, Scheme
Ảnh hưởng tới
Fantom
  • 16px Wikibooks logo en noslogan.svg Scala tại Wikibooks

Scala (phát âm /ˈskɑːlə/ SKAH-lə) là một ngôn ngữ lập trình đa mẫu hình, được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng với lập trình hàm[1]. Tên Scala xuất phát từ chữ tiếng Anh scalable, có nghĩa là”ngôn ngữ có khả năng mở rộng“, được phát triển dựa trên nhu cầu sử dụng các tính năng mở rộng của nó.

Nền tảng và giấy phép[sửa | sửa mã nguồn]

Scala chạy trên nền máy ảo Java và tương thích với chương trình Java. Nó cũng có thể chạy trên Android.[2] Nó cũng có thể chạy trên nền tảng.NET, nhưng chưa ổn định.[3]

Scala có kiểu biên dịch giống như Java và C#, nên Scala code có thể đọc được thư viện Java (hoặc thư viện.NET).

Scala đặt dưới giấy phép BSD.[4]

Lịch sử phát triển[sửa | sửa mã nguồn]

Scala bắt đầu được thiết kế từ năm 2001 tại École Polytechnique Fédérale de Lausanne (EPFL) bởi Martin Odersky, tiếp tục phát triển khi làm việc tại Funnel, một ngôn ngữ lập trình tích hợp các ý tưởng về lập trình hàm và mạng Petri.[5] Sau đó, Odersky làm việc với Generic Java và javac, trình biên dịch Sun’s Java.[5] Scala được cho ra những phiên bản đầu vào cuối năm 2003 / đằu 2004 trên nền Java, và nền.NET vào tháng 6 năm 2004.[1][5][6] Phiên bản 2.0 ra mắt tháng 3 năm 2006.[1]

Tính năng của lập trình Hướng đối tượng[sửa | sửa mã nguồn]

Scala là ngôn ngữ thuần lập trình hướng đối tượng trong cú pháp theo quy tắc tất cả giá trị biến đều là một đối tượng. Kiểu dữ liệu và hành vi của một đối tượng được mô tả bằng các lớp. Các lớp trừu tượng được mở rộng bằng các lớp con và hạn chế các khó khăn trong đa kế thừa.

Lập trình hàm[sửa | sửa mã nguồn]

Scala hỗ trợ lập trình hàm. Nó hỗ trợ cú pháp ngắn gọn cho việc định nghĩa các hàm, cho phép hàm lồng vào nhau. Dùng từ khóa lazy để trì hoãn sử dụng một biến cho đến khi cần sử dụng nó.
Scala hỗ trợ các kiểu dữ liệu đại số của lập trình hàm.

Thuật toán sắp xếp theo kiểu lập trình hàm:

def qsort: List[Int] => List[Int] = {
  case Nil => Nil
  case pivot:: tail =>
    val (smaller, rest) = tail.partition(_ < pivot)
    qsort(smaller)::: pivot:: qsort(rest)
}

Khả năng Mở rộng[sửa | sửa mã nguồn]

Trong thực tế, các ứng dụng luôn phải thay đổi để đáp ứng các yêu cầu cụ thể, Scala được thiết kế để phục vụ mục đích đó. Scala cung cấp một dạng ngôn ngữ máy độc đáo giúp hỗ trợ lập trình dựa tên các thư viện hàm có sẵn:

  • mọi phương thức (hàm) đều có thể dùng như là một toán tử
  • đánh dấu kết thúc cú pháp tự động.

Phần mềm sử dụng Scala[sửa | sửa mã nguồn]

Lift là một nền Web miễn phí dựa trên Scala, được xây dựng với mục đích cung cấp các tính năng mà Ruby on Rails có, đồng thời khắc phục các nhược điểm mà Ruby on Rails gặp phải. Tất cả thư viện hàm của Java và lập trình Web đầu có thể chạy trên nền Lift.

Tháng 4 năm 2009 Twitter thông báo đã chuyển đa số phần code bên trong từ Ruby sang Scala và sẽ chuyển đổi toàn bộ.[7] Thêm vào đó Foursquare sử dụng Scala và Lift.[8]

Ví dụ kinh điển”Hello world”[sửa | sửa mã nguồn]

Đây là chương trình Hello world viết bằng Scala:

> object HelloWorld extends Application {
> println("Hello, world!")
> }

hoặc

> object HelloWorld {
> def main(args: Array[String]) {
> println("Hello, world!")
> }
> }

Chương trình lưu dưới dạng HelloWorld.scala, biên dịch bằng cú pháp:

> scalac HelloWorld.scala

Chạy chương trình:

> scala -classpath. HelloWorld

Hoặc chạy trực tiếp từ mã:

> scala HelloWorld.scala

Kiểm thử[sửa | sửa mã nguồn]

Có nhiều cách kiểm tra chương trình viết bằng Scala:

  • ScalaTest
  • ScalaCheck, một thư viện tương tự như QuickCheck của Haskell
  • specs, một thư viện phát triển theo định hướng hành vi cho Scala
  • JUnit

Thư viện SUnit bị gở bỏ từ phiên bản 2.8.0.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ a ă â b Martin Odersky et al., An Overview of the Scala Programming Language, 2nd Edition
  2. ^

    “Scala on.NET”. Programming Methods Laboratory of EPFL. ngày 7 tháng 1 năm 2008. Bản gốc lưu trữ ngày 9 tháng 10 năm 2007. Truy cập ngày 15 tháng 1 năm 2008. Scala is primarily developed for the JVM and embodies some of its features. Nevertheless, its.NET support is designed to make it as portable across the two platforms as possible.

  3. ^ “A Brief History of Scala”. Truy cập 30 tháng 9 năm 2015.
  4. ^ “Scala License”. Truy cập 30 tháng 9 năm 2015.
  5. ^ a ă â Martin Odersky, “A Brief History of Scala”, Artima.com weblogs, ngày 9 tháng 6 năm 2006
  6. ^ Martin Odersky,”The Scala Language Specification Version 2.7″
  7. ^ Greene, Kate (ngày 1 tháng 4 năm 2009). “The Secret Behind Twitter’s Growth, How a new Web programming language is helping the company handle its increasing popularity”. Technology Review. MIT. Truy cập ngày 6 tháng 4 năm 2009.
  8. ^ Scala, Lift, and the Future

Đọc thêm[sửa | sửa mã nguồn]

  • Suereth, Joshua D. (Spring 2011). Scala in Depth. Manning Publications. tr. 225. ISBN 9781935182702.
  • Meredith, Gregory (?, 2011), Monadic Design Patterns for the Web (PDF) (ấn bản 1), ?, tr. 300, ISBN X Kiểm tra giá trị |isbn=: số con số (trợ giúp) Kiểm tra giá trị ngày tháng trong: |date= (trợ giúp)
  • Raychaudhuri, Nilanjan (Spring 2010), Scala in Action (ấn bản 1), [Manning, tr. 525, ISBN 9781935182757
  • Wampler, Dean; Payne, Alex (ngày 15 tháng 9 năm 2009), Programming Scala: Scalability = Functional Programming + Objects (ấn bản 1), O’Reilly Media, tr. 448, ISBN 0596155956
  • Odersky, Martin; Spoon, Lex; Venners, Bill (ngày 26 tháng 11 năm 2008), Programming in Scala: A Comprehensive Step-by-step Guide (ấn bản 1), Artima Inc, tr. 776, ISBN 0981531601
  • Pollak, David (ngày 25 tháng 5 năm 2009), Beginning Scala (ấn bản 1), Apress, tr. 776, ISBN 1430219890
  • Perrett, Tim (tháng 4 năm 2010), Lift in Action (ấn bản 1), Manning, tr. 450, ISBN 9781935182801
  • Loverdos, Christos; Syropoulos, Apostolos (tháng 9 năm 2010), Steps in Scala: An Introduction to Object-Functional Programming (ấn bản 1), Cambridge University Press, tr. xviii + 485, ISBN 9780521747585
  • Subramaniam, Venkat (ngày 28 tháng 7 năm 2009), Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (ấn bản 1), Pragmatic Bookshelf, tr. 250, ISBN 193435631X
  • Payne, Alex; Wampler, Dean (2009), Programming Scala, Sebastopol, CA: O’Reilly Media, Inc, ISBN 0-596-15595-6

Liên kết ngoài[sửa | sửa mã nguồn]

  • Scala website
  • Simply Scala, phiên bản trực tuyến của Scala REPL – cho phép bạn thử Scala bằng một trình duyệt web
  • Scala Wiki
  • Literate Programs – Scala
  • The Scala Search Engine Lưu trữ 2009-01-05 tại Wayback Machine
  • Lift Web Framework
  • O/R Broker
  • Podcast Interview with Martin Odersky on Scala
  • Scala Presentation From The Googleplex Lưu trữ 2008-02-01 tại Wayback Machine (video) – bởi Martin Odersky, người tạo nên ngôn ngữ; accompanying slides from the talk
  • Scalaz
  • Scala community blogs
  • Lift Lưu trữ 2009-09-21 tại Wayback Machine Slides from Pollak’s lift video, contains a presentation of Scala
  • Scala articles directory Lưu trữ 2009-02-15 tại Wayback Machine
  • Scala for Java Refugees
  • Scala Forum


Lấy từ “https://vi.wikipedia.org/w/index.php?title=Scala_(ngôn_ngữ_lập_trình)&oldid=64674250”

Từ khóa: Scala (ngôn ngữ lập trình), Scala (ngôn ngữ lập trình), Scala (ngôn ngữ lập trình)

LADIGI – Công ty dịch vụ SEO LADIGI giá rẻ, SEO từ khóa, SEO tổng thể cam kết lên Top Google uy tín chuyên nghiệp, an toàn, hiệu quả.

Nguồn: Wikipedia

Scores: 4.7 (148 votes)

100 lần tự tìm hiểu cũng không bằng 1 lần được tư vấn