Pertanyaan yang diberi tag «language-design»

Pertanyaan yang melibatkan desain dan struktur bahasa pemrograman.

2
Mengapa operator bitwise memiliki prioritas lebih rendah daripada perbandingan?
Bisakah seseorang menjelaskan alasannya, mengapa dalam banyak bahasa paling populer (lihat catatan di bawah) operator perbandingan (==,! =, <,>, <=,> =) Memiliki prioritas lebih tinggi daripada operator bitwise (&, |, ^ , ~)? Saya tidak berpikir saya pernah menemukan penggunaan di mana prioritas ini akan alami. Itu selalu seperti: if( …


9
Mengapa bahasa tidak termasuk implikasi sebagai operator logis?
Ini mungkin pertanyaan yang aneh, tetapi mengapa tidak ada implikasi sebagai operator logis dalam banyak bahasa (Java, C, C ++, Python Haskell - meskipun sebagai yang terakhir ada pengguna yang mendefinisikan operatornya sepele untuk menambahkannya)? Saya menemukan implikasi logis yang jauh lebih jelas untuk ditulis (terutama dalam menegaskan atau menyatakan …


2
Mengapa 'void' tidak diizinkan sebagai tipe umum di C #
Apa keputusan desain yang mendukung voidtidak dapat dibangun dan tidak diizinkan sebagai tipe generik? Bagaimanapun, ini hanyalah kekosongan khusus structdan akan menghindari total PITA untuk memiliki yang berbeda Funcdan Actiondelegasi. (C ++ memungkinkan voidpengembalian eksplisit dan memungkinkan voidsebagai parameter templat)

3
Apa itu sistem tipe?
Latar Belakang Saya merancang bahasa, sebagai proyek sampingan. Saya memiliki assembler yang berfungsi, analisa statis, dan mesin virtual untuk itu. Karena saya sudah dapat mengkompilasi dan menjalankan program non-sepele menggunakan infrastruktur yang saya bangun, saya berpikir untuk memberikan presentasi di universitas saya. Selama pembicaraan saya, saya menyebutkan bahwa VM menyediakan …

5
Mengapa semua fungsi <algorithm> hanya mengambil rentang, bukan wadah?
Ada banyak fungsi yang berguna &lt;algorithm&gt;, tetapi semuanya beroperasi pada "urutan" - pasangan iterator. Misalnya, jika saya memiliki wadah dan suka menjalankannya std::accumulate, saya perlu menulis: std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Yang ingin saya lakukan adalah: int sum = std::accumulate(myContainer, 0); Yang sedikit lebih mudah …

4
Mengapa iterator di Python memunculkan eksepsi?
Berikut sintaks untuk iterator di Jawa (sintaksis yang agak mirip di C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Itu masuk akal. Berikut sintaks yang setara dalam Python: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Saya pikir Pengecualian seharusnya hanya digunakan …

8
Mengapa mendesain bahasa modern tanpa mekanisme penanganan pengecualian?
Banyak bahasa modern menyediakan fitur penanganan pengecualian yang kaya , tetapi bahasa pemrograman Apple Swift tidak menyediakan mekanisme penanganan pengecualian . Tenggelam dalam pengecualian seperti saya, saya mengalami kesulitan membungkus pikiran saya di sekitar apa artinya ini. Swift memiliki asersi, dan tentu saja mengembalikan nilai; tetapi saya mengalami kesulitan membayangkan …

13
Mengapa operator penugasan menugaskan ke sisi kiri?
Saya mulai mengajar pemrograman teman baru-baru ini (kami menggunakan Python), dan ketika kami mulai membahas pembuatan variabel dan operator penugasan, ia bertanya mengapa nilai di sebelah kanan diberikan ke nama di sebelah kiri, dan bukan sebaliknya. . Saya tidak terlalu memikirkannya sebelumnya, karena itu tampak alami bagi saya, tetapi dia …

5
Mengapa bahasa pemrograman lama terus direvisi?
Pertanyaan ini bukan, "Mengapa orang masih menggunakan bahasa pemrograman lama?" Saya mengerti itu dengan cukup baik. Sebenarnya dua bahasa pemrograman yang saya tahu paling baik adalah C dan Skema, yang keduanya berasal dari tahun 70-an. Baru-baru ini saya membaca tentang perubahan C99 dan C11 versus C89 (yang tampaknya masih menjadi …

4
Mengapa struct dan kelas memisahkan konsep dalam C #?
Saat pemrograman di C #, saya menemukan keputusan desain bahasa yang aneh yang tidak bisa saya mengerti. Jadi, C # (dan CLR) memiliki dua tipe data agregat: struct( tipe nilai, disimpan di tumpukan, tidak ada warisan) dan class(tipe referensi, disimpan di heap, memiliki warisan). Pengaturan ini terdengar bagus pada awalnya, …



22
Apakah spasi putih dalam pengidentifikasi pernah idiomatik? [Tutup]
Gaya C # menyarankan penggunaan CamelCase dalam pengidentifikasi untuk membatasi kata-kata. Cadel tradisi menyarankan menggunakan-strip-gantinya. Apakah pernah ada bahasa pemrograman di mana menggunakan spasi di pengidentifikasi tidak hanya diizinkan, tetapi idiom yang umum digunakan ketika menggunakan pengidentifikasi multi-kata? Dimungkinkan untuk memiliki pengidentifikasi dengan spasi di beberapa implementasi Skema , tetapi …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.