Go (bahasa pemrograman): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
k Suntingan Naya Faru (bicara) dibatalkan ke versi terakhir oleh HsfBot
Tag: Pengembalian
kTidak ada ringkasan suntingan
Baris 14:
"Gc" toolchain telah ''self-hosting'' sejak versi 1.5.<ref>{{Cite web|url=https://golang.org/doc/go1.5#implementation|title=Go 1.5 Release Notes|access-date=28 January 2016|quote=The compiler and runtime are now implemented in Go and assembler, without C.}}</ref>
 
'''Go''' awalnya sebuah percobaan oleh para insinyur Google Robert Griesemer, Rob Pike, dan [[Ken Thompson]] untuk merancang sebuah bahasa pemrograman baru yang akan menyelesaikan kritik umum dari bahasa lain selama masih mempertahankan karakteristik positif. Pengembang dipertimbangkan bahasa baru seperti:<ref>{{Cite web|url=http://www.stanford.edu/class/ee380/Abstracts/100428.html|title=Another Go at Language Design|last=Pike|first=Rob|date=28 April 2010|website=Stanford EE Computer Systems Colloquium|publisher=[[Stanford University]]}} [https://www.youtube.com/watch?v=7VcArS4Wpqk Video available].</ref>
* diketik statis, ''scalable'' untuk sistem yang besar (seperti [[Java]] dan [[C++]])
* produktif dan dapat dibaca, tanpa terlalu banyak kata kunci wajib dan pengulangan<ref>{{Cite web|url=https://golang.org/doc/faq#different_syntax|title=Frequently Asked Questions (FAQ) - The Go Programming Language|website=golang.org|access-date=2016-02-26}}</ref> ("light on the page" seperti [[Bahasa pemrograman dinamis|bahasa dinamis]])
Baris 93:
Dari alat-alat ini seseorang dapat membangun bersamaan konstruksi seperti pekerja outdoor, pipa (yang, katakanlah, sebuah file yang dikompres dan diurai karena popularitas), latar belakang panggilan dengan batas waktu, "fan-out" panggilan paralel untuk satu set layanan, dan lain-lain.<ref>{{Cite web|url=http://talks.golang.org/2012/concurrency.slide|title=Go Concurrency Patterns|website=golang.org}}</ref> Saluran juga telah ditemukan menggunakan lebih dari biasanya gagasan interprocess communication, seperti melayani sebagai concurrency-daftar aman dari daur ulang buffer,<ref>John Graham-Cumming, [http://blog.cloudflare.com/recycling-memory-buffers-in-go Recycling Memory Buffers in Go]</ref> pelaksana coroutines (yang membantu menginspirasi nama ''goroutine''),<ref>[http://golang.org/doc/play/tree.go tree.go]</ref> dan menerapkan iterator.<ref>Ewen Cheslack-Postava, [http://ewencp.org/blog/golang-iterators/ Iterators in Go]</ref>
 
''Concurrency-strukturalstruktura''l terkait konvensi Go (saluran dan alternatif channel input) yang berasal dari [[C.A.R. Hoare|Tony Hoare yang]] berkomunikasi berurutan proses model. Tidak seperti sebelumnya serentak bahasa pemrograman seperti Occam atau Limbo (pekerjaan bahasa co-desainer Go Rob Pike ),<ref>Brian W. Kernighan, [http://www.vitanuova.com/inferno/papers/descent.html A Descent Into Limbo]</ref> Go tidak menyediakan built-in gagasan aman atau diverifikasi concurrency.<ref name="memmodel">{{Cite web|url=http://golang.org/doc/go_mem.html|title=The Go Memory Model|publisher=Google|access-date=5 January 2011}}</ref> Sedangkan komunikasi-proses model ini disukai di Go, itu bukan hanya satu: semua goroutines dalam program berbagi satu ruang alamat. Ini berarti bahwa mutable benda-benda dan petunjuk yang dapat dibagi antara goroutines; lihat {{Section link|2=Lack of race condition safety}}, di bawah ini.{{Butuh rujukan|date=December 2016}}
 
==== Kesesuaian untuk pemrograman paralel ====
Meskipun ''Go concurrency'' fitur yang tidak ditujukan terutama untuk [[Komputasi paralel|pemrosesan paralel]],{{r|concurrency-is-not}} mereka dapat digunakan untuk program memori bersama [[Multipengolahan|multi-prosesor]] mesin. Berbagai studi telah dilakukan untuk keefektifan pendekatan ini.<ref name="Cite conference">{{Cite conference}}</ref> salah Satu studi membandingkan ukuran (dalam baris kode) dan kecepatan program yang ditulis oleh programmer berpengalaman yang tidak akrab dengan bahasa dan koreksi terhadap program-program tersebut oleh seorang ahli (dari Google pengembangan tim), lakukan hal yang sama untuk Chapel, Cilk dan Intel TBB. Studi ini menemukan bahwa non-ahli cenderung untuk menulis membagi-dan-menaklukkan algoritme dengan satu go pernyataan per rekursi, sementara ahli menulis mendistribusikan-kerja-sinkronisasi program dengan menggunakan salah satu goroutine per prosesor. Ahli program-program yang biasanya lebih cepat, tapi juga lebih lama.<ref name="Cite conference"/>
 
==== Kurangnya kondisi balapan keselamatan ====