24/05/2018, 20:42

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ạ. đượ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 ...

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ạ. đượ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 đã ả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ữ đượ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.

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ữ như -80, VisualAge .v.v... Tiêu chuẩn được biết đến nhiều là ANSI được phê chuẩn vào năm 1998.

Mọi thứ trong một chương trình đều là đối tượng. Đây là điểm mạnh thường được nhắc đến nhất khi nói về .

Một chương trình 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ụ sau đây in 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!'.

* #

* Ambrai

* Bistro

* Cincom , ObjectStudio và VisualWorks của Cincom (wiki , blog)

* F-Script

* GemStone/S

* GNU

* IBM VisualAge

* Little

* LSW Vision-, bao gồm một phiên bản .NET

* OSVM nhỏ gọn cho các thiết bị nhúng

* Pocket chạy trên Palm Pilot

* PublicDomainSmallTalk

* S#

* MT biên dịch trên nền Windows

* /X

* YX

* Sport

* Squeak nguồn mở

* StepTalk (chạy trên Objective-C runtime)

* Strongtalk (dành cho Windows, có lựa chọn kiểu mạnh)

* Bits of History

một bản -76 chạy dưới dạng Java applet.

* VA follow-on to IBM VisualAge

* Vista dành cho IE7 và Windows Vista

0