Ngôn Ngữ Lập Trình Go: Ngôn ngữ lập trình

Go là một ngôn ngữ lập trình mới do Google thiết kế và phát triển.

Nó được kỳ vọng sẽ giúp ngành công nghiệp phần mềm khai thác tối đa nền tảng đa lõi của bộ vi xử lý và hoạt động đa nhiệm tốt hơn.

Go
Ngôn Ngữ Lập Trình Go: Sự ra đời của ngôn ngữ Go, Đặc điểm thiết kế, Ví dụ
Linh vật của Go là một con gopher, được thiết kế bởi Renée French.
Mẫu hìnhcompiled, concurrent, imperative, structured
Thiết kế bởiRobert Griesemer
Rob Pike
Ken Thompson
Nhà phát triểnGoogle LLC.
Xuất hiện lần đầu10 tháng 11 năm 2009; 14 năm trước (2009-11-10)
Phiên bản ổn định
1.15.2 / 11 tháng 8 năm 2020; 3 năm trước (2020-08-11)
Kiểm tra kiểustrong, static, inferred, structural
Ngôn ngữ thực thiGo, assembly language, previously C (gc); C++ (gccgo)
Hệ điều hànhLinux, macOS, FreeBSD, NetBSD, OpenBSD, Windows, Plan 9, DragonFly BSD, Solaris
Giấy phépBSD-style + patent grant
Phần mở rộng tên tập tin.go
Trang mạnggolang.org
Các bản triển khai lớn
gc, gccgo
Ảnh hưởng từ
Alef, APL, BCPL, C, CSP, Limbo, Modula, Newsqueak, Oberon, occam, Pascal, Python, Smalltalk
Ảnh hưởng tới
Crystal

Sự ra đời của ngôn ngữ Go Ngôn Ngữ Lập Trình Go

Vào ngày 21 tháng 9 năm 2007 bộ ba Robert Griesemer, Rob Pike và Ken Thompson bắt đầu phát thảo những tiêu chí cho một ngôn ngữ lập trình mới trên bảng trắng. Vài ngày sau đó, những tiêu chí đó được chấp nhận và một kế hoạch xây dựng một ngôn ngữ lập trình mới được định hình. Sau đó, công việc thiết kế Go(Còn có tên là Golang) được tiến hành song song với các công việc không liên quan khác. Tháng Một năm 2008, Kem Thompson bắt tay xây dựng một trình biên dịch ngôn ngữ C để thử nghiệm các ý tưởng. Vào giữa năm 2008, ngôn ngữ mới này trở thành một dự án toàn thời gian và được đầu tư đầy đủ để trở thành một trình biên dịch dùng cho sản phẩm. Vào tháng 5/2008, Ian Taylor đã độc lập phát triển một GCC front-end cho Go dựa trên bản nháp của đặc tả ngôn ngữ này. Russ Cox đã tham gia vào cuối năm 2008 và giúp hiện thực hoá ngôn ngữ này cũng như các thư viện của nó. Vào ngày 10/11/2009, Go trở thành một dự án mã nguồn mở, và sau đó có rất nhiều cá nhân trong cộng đồng đã đóng góp ý tưởng cũng như mã nguồn cho dự án này.

Việc khai thác tối đa sức mạnh của các bộ xử lý đa lõi và phần cứng thế hệ mới đối với các ngôn ngữ hiện có được xem như là việc không thể làm được. Bởi những giới hạn vốn có của các ngôn ngữ lập trình trên máy tính như C, C++, Java,... Bấy lâu nay, các vấn đề xử lý đa lõi vẫn là chuyện của hệ điều hành.

Google đưa ra ngôn ngữ Go như là một cách tiếp cận khác về vấn đề xử lý đa lõi. Thay vì chỉ có hệ điều hành được phép cung cấp tài nguyên và xử lý, thì các phần mềm cũng có thể tương tác trực tiếp với nền tảng đa lõi giúp cho việc xử lý nhanh hơn rất nhiều.

Đặc điểm thiết kế Ngôn Ngữ Lập Trình Go

Cú pháp

Về mặt cú pháp thì Go rất giống ngôn ngữ C, tuy nhiên nó có nhiều thay đổi trong thiết kế để an toàn hơn và có cú pháp súc tích và dễ đọc. Go cho phép lập trình viên vừa khai báo và khởi tạo biến cùng một lúc mà không cần phải chỉ định kiểu dữ liệu i:=3 hoặc name:="Hello, world!", điều này trái ngược với cú pháp của ngôn ngữ C int i = 3;const char *s = "Hello, world!". Ở Cuối mỗi dòng lệnh cũng không cần kết thúc bằng dâu chấm phẩy và mỗi hàm có thể trả về nhiều hơn một giá trị.

Ví dụ Ngôn Ngữ Lập Trình Go

Hello World

 package main    import "fmt"    func main() {    fmt.Println("Hello, World")  } 

Ví dụ Ngôn Ngữ Lập Trình Go về trả về nhiều hơn một giá trị

package main  import "fmt"  // Phần `(int, int)` trong chữ ký hàm thể hiện rằng // hàm này trả về 2 giá trị kiểu int func vals() (int, int) {     return 3, 7 }  func main() {      // Ở đây chúng ta sử dụng hai biến a và b để đón dữ liệu trả về     // từ hàm vals()     a, b:= vals()     fmt.Println(a)     fmt.Println(b)      // Ta cũng có thể chỉ nhận về một tập con của giá trị trả về     // bằng cách sử dụng ký hiệu  `_`.     _, c:= vals()     fmt.Println(c) } 

Ví dụ Ngôn Ngữ Lập Trình Go về xử lý song song (concurrency)

package main  import ( "fmt" )  var ( naturalChan = make(chan int) squaredChan = make(chan int) items       = make([]map[int]int, 10) )  func natural() { for i:= range items { naturalChan <- i } close(naturalChan) }  func square() { for _ = range items { x:= <-naturalChan squaredChan <- x * x } close(squaredChan) }  func main() { go natural() go square()  for _ = range items { select { case squared:= <-squaredChan: fmt.Printf("Squared %d\n", squared) } } } 

Về tên gọi Ngôn Ngữ Lập Trình Go

Go được xuất phát từ tên công ty Google[cần dẫn nguồn].

Tham khảo

Liên kết ngoài

Tags:

Sự ra đời của ngôn ngữ Go Ngôn Ngữ Lập Trình GoĐặc điểm thiết kế Ngôn Ngữ Lập Trình GoVí dụ Ngôn Ngữ Lập Trình GoVề tên gọi Ngôn Ngữ Lập Trình GoNgôn Ngữ Lập Trình GoGooglePhần mềmVi xử lýĐa nền tảng

🔥 Trending searches on Wiki Tiếng Việt:

FacebookCàn LongLưới thức ănGiải vô địch bóng đá châu Âu 2024Đỗ MườiĐài Truyền hình Việt NamChiến tranh Pháp – Đại NamBình ThuậnMinh Thành TổArsenal F.C.An Dương VươngDanh sách Anh hùng Lực lượng vũ trang nhân dân trong Chiến dịch Điện Biên PhủTrần Đại NghĩaDanh sách tiểu bang Hoa Kỳ theo cách viết tắtBill GatesNhã nhạc cung đình HuếTrần Cẩm TúHoa Kỳ24 tháng 4Liverpool F.C.Đỗ Hùng ViệtKaijuu 8-gouHiệu ứng nhà kínhHàn TínHoàng Hoa ThámThế vận hội Mùa hè 2024Giải vô địch bóng đá U-23 châu Á 2020Lê Quý ĐônPiĐội tuyển bóng đá quốc gia Việt NamLâm ĐồngGiải vô địch bóng đá châu ÂuMặt TrăngPhong trào Đồng khởiKuwaitNhà Lê sơPhạm Mạnh HùngPhilippe TroussierTrương Gia BìnhThụy SĩVõ Văn Thưởng từ chức Chủ tịch nướcCà MauNguyễn Tấn DũngMưa sao băngReal Madrid CFMiduChâu PhiNhà Nguyễn69 (tư thế tình dục)Tôn giáoBorussia DortmundHệ sinh tháiWashington, D.C.Điêu khắcChiến tranh Nguyên Mông – Đại ViệtVũ Thanh ChươngThừa Thiên HuếĐại dịch COVID-19 tại Việt NamNgười Thái (Việt Nam)Ban Nội chính Trung ương Đảng Cộng sản Việt NamHọ người Việt NamNăng lượngỦy ban Kiểm tra Trung ương Đảng Cộng sản Việt NamĐại học Kinh tế Thành phố Hồ Chí MinhĐịa đạo Củ ChiChiến cục Đông Xuân 1953–1954Vụ án Hồ Duy HảiAldehydeKazakhstanThanh gươm diệt quỷPhan Văn GiangLàng nghề Việt NamLiên QuânDubaiLương Tam QuangTom và JerryBắc Giang🡆 More