Smalltalk
Bài viết này cần thêm chú thích nguồn gốc để kiểm chứng thông tin. |
Tập tin:Smalltalk80book.jpg | |
Mẫu hình | Lập trình hướng đối tượng |
---|---|
Thiết kế bởi | Alan Kay, Dan Ingalls, Adele Goldberg |
Nhà phát triển | Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, Xerox PARC |
Xuất hiện lần đầu | 1969 - xây dựng 1980 - phát hành |
Kiểm tra kiểu | kiểu động |
Các bản triển khai lớn | |
Squeak, VisualWorks, VA Smalltalk | |
Ảnh hưởng từ | |
Lisp,[1] Simula,[1] Euler,[1] IMP,[1] Planner,[1] Logo,[2] Sketchpad,[1] ARPAnet,[1] Burroughs B5000[1] | |
Ảnh hưởng tới | |
AppleScript, Common Lisp Object System, Dart, Dylan, Erlang, Etoys, Go, Groovy, Io, Ioke, Java, Lasso, Logtalk, Newspeak, NewtonScript, Object REXX, Objective-C, Raku, Ruby, Scala, Scratch, Self, Swift, Python. |
Smalltalk là ngôn ngữ lập trình hướng đối tượng, kiểu dữ liệu động, và có tính phản xạ. Smalltalk được thiết kế nhằm bảo vệ tối đa các đặc điểm ngắn gọn và trong sáng của nó và không hướng đến tính khả dụng (usability) hay tính hiệu năng (performance). Vì vậy nó phù hợp với các mục đích giáo dục hơn là mục đích thương mại, tuy nhiên các đặc điểm của Smalltalk đã ảnh hưởng và góp phần mang lại thành công cho nhiều ngôn ngữ khác trong đó có Java, C#.
Ngôn ngữ Smalltalk được phát triển bởi nhiều tác giả qua nhiều thời kỳ khác nhau các tác giả chính bao gồm Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace.
Smalltalk thường được nhắc đến như là tiêu chuẩn ngôn ngữ lập trình, không phải là một trình biên dịch cụ thể. Đã có nhiều trình biên dịch khác nhau sử dụng ngôn ngữ Smalltalk như Smalltalk-80, VisualAge Smalltalk.v.v... Tiêu chuẩn được biết đến nhiều là ANSI Smalltalk được phê chuẩn vào năm 1998.
Tính hướng đối tượng
[sửa | sửa mã nguồn]Mọi thứ trong một chương trình Smalltalk đều là đối tượng. Đây là điểm mạnh thường được nhắc đến nhất khi nói về Smalltalk.
Tính phản xạ
[sửa | sửa mã nguồn]Một chương trình Smalltalk khi đã biên dịch và đang chạy, vẫn giữ lại tối đa các cấu trúc ở mức cao, ví dụ cấu trúc lớp, đối tượng, tên biến v.v... Nhờ tính phản xạ, người ta có thể lưu, truyền, phục hồi các đối tượng, ngoài ra, người ta dễ dàng phát triển các chương trình kiểm thử (tester), chương trình gỡ rối (debugger).
Đối với các ngôn ngữ không có tính phản xạ (ví dụ tiêu biểu là C/C++), sau khi biên dịch thành mã nhị phân, cấu trúc chương trình ở mức cao bị xóa đi, thay vào đó là kiến trúc mức CPU và API. Điều này gây nhiều phiền phức cho trình gỡ rối, khiến chúng phải sinh ra hàng loạt các tập tin mô tả.
Tính phản xạ có thể làm tăng chi phí bộ nhớ, và chi phí tính toán.
Ví dụ Hello World
[sửa | sửa mã nguồn]Ví dụ sau đây năm dòng "Hello, World!" ra màn hình bằng cách gửi thông điệp show
đến đối tượng Transcipt với tham số là chuỗi "Hello, world!"
Transcript show: 'Hello, world!'.
Các trình biên dịch
[sửa | sửa mã nguồn]- #Smalltalk [1] Lưu trữ 2007-12-23 tại Wayback Machine
- Ambrai Smalltalk
- Bistro
- Cincom Smalltalk, ObjectStudio và VisualWorks của Cincom (wiki, blog Lưu trữ 2005-01-13 tại Wayback Machine)
- Dolphin Smalltalk [2] Lưu trữ 2007-12-22 tại Wayback Machine
- F-Script
- GemStone/S [3] Lưu trữ 2009-09-25 tại Wayback Machine
- GNU Smalltalk
- IBM VisualAge Smalltalk [4]
- Little Smalltalk
- LSW Vision-Smalltalk, bao gồm một phiên bản.NET
- OSVM Smalltalk nhỏ gọn cho các thiết bị nhúng [5] Lưu trữ 2007-10-15 tại Wayback Machine
- Pocket Smalltalk chạy trên Palm Pilot
- PublicDomainSmallTalk [6] Lưu trữ 2007-02-21 tại Wayback Machine
- S# [7] Lưu trữ 2007-10-10 tại Wayback Machine
- Smalltalk MT Smalltalk biên dịch trên nền Windows
- Smalltalk/X [8] Lưu trữ 2007-10-15 tại Wayback Machine
- Smalltalk YX [9]
- Sport
- Squeak Smalltalk nguồn mở
- StepTalk (chạy Smalltalk trên Objective-C runtime)
- Strongtalk [10] (dành cho Windows, có lựa chọn kiểu mạnh)
- Susie: Scripting Using a Smalltalk Interpreter Engine [11]
- Bits of History Lưu trữ 2007-10-13 tại Wayback Machine một bản Smalltalk-76 chạy dưới dạng Java applet.
- VA Smalltalk follow-on to IBM VisualAge Smalltalk [12]
- Visual Smalltalk Enterprise và họ Smalltalk, bao gồm Smalltalk/V.
- Vista Smalltalk dành cho IE7 và Windows Vista
Một số liên kết
[sửa | sửa mã nguồn]- Smalltalk: Getting the Message Lưu trữ 2007-12-14 tại Wayback Machine (sách giáo khoa)
- Design Principles Behind Smalltalk Lưu trữ 2007-09-27 tại Wayback Machine viết bởi Dan Ingalls đăng trên BYTE, tháng 8 năm 1981. Các điểm đặc biệt trong Smalltalk
- Smalltalk.org Trang dành riêng cho Smalltalk.
- Littlesmalltalk.org Phiên bản Smalltalk nhỏ, mới xuất hiện, với giao diện đồ họa tốt.
- Open Directory: Smalltalk
- Implementation Section from Smalltalk-80: The Language and Its Implementation Lưu trữ 2007-09-27 tại Wayback Machine viết bởi Goldberg & Robson
- Smalltalk-72 Instruction Manual Lưu trữ 2005-05-15 tại Wayback Machine
- Công cụ hiển thị thông tin bằng Smalltalk Lưu trữ 2012-10-13 tại Wayback Machine
- ESUG (European Smalltalk Users Group): Một tổ chức phi lợi nhuận tập hợp các thành viên trong cả lĩnh vực công nghiệp và nghiên cứu. Có các hoạt động phổ biến Smalltalk bao gồm những lần gặp gỡ hàng năm kể từ 1993.
- The Smalltalk-76 Programming System: Design and Implementation Lưu trữ 2007-12-02 tại Wayback Machine viết bởi Dan Ingalls.
- Dolphin Map - Một wiki về các thông tin liên quan đến Dolphin Smalltalk Lưu trữ 2008-08-28 tại Wayback Machine.
- Smalltalk web ring Lưu trữ 2007-10-15 tại Wayback Machine Các sản phẩm và dịch vụ liên quan đến Smalltalk.
Sách
[sửa | sửa mã nguồn]- Một số sách tiếng Anh nói về Smalltalk
- Một mail-list Smalltalk ở Việt Nam
- Tờ poster Smalltalk dịch sang tiếng Việt
Tham khảo
[sửa | sửa mã nguồn]- ^ a b c d e f g h Kay, Alan; Ram, Stefan (23 tháng 7 năm 2003). “E-Mail of 2003-07-23”. Dr. Alan Kay on the Meaning of 'Object-Oriented Programming'. Bản gốc lưu trữ ngày 16 tháng 9 năm 2020. Truy cập ngày 3 tháng 1 năm 2009.
- ^ Lỗi chú thích: Thẻ
<ref>
sai; không có nội dung trong thẻ ref có tênHistory