Apakah ada alasan bahwa titik koma dipilih sebagai terminator garis alih-alih simbol yang berbeda?
Saya ingin mengetahui sejarah di balik keputusan ini, dan berharap jawabannya akan mengarah pada wawasan yang dapat memengaruhi keputusan di masa depan.
programming-languages
syntax
Seorang Coder
sumber
sumber
Jawaban:
Dalam bahasa Inggris, titik koma digunakan untuk memisahkan item dalam daftar pernyataan, misalnya
Saat memprogram Anda memisahkan sejumlah pernyataan dan menggunakan penghentian penuh dapat dengan mudah dikacaukan untuk titik desimal. Menggunakan tanda titik koma memberikan metode parse yang mudah untuk memisahkan masing-masing pernyataan program sambil tetap dekat dengan tanda baca bahasa Inggris normal.
Edit untuk ditambahkan
Pada hari-hari awal ketika memori mahal, pemrosesan lambat, dan bahasa pemrograman pertama sedang dirancang, ada kebutuhan untuk membagi program menjadi pernyataan terpisah untuk diproses. Beberapa bahasa mengharuskan setiap pernyataan ditempatkan pada garis sehingga carriage return dapat bertindak sebagai pembatas pernyataan. Bahasa lain memungkinkan format yang lebih bebas untuk tata letak teks dan karenanya diperlukan karakter pembatas tertentu. Karakter ini dipilih sebagai titik koma, kemungkinan besar karena kesamaan dengan penggunaannya dalam bahasa Inggris (ini harus menjadi anggapan; saya tidak ada di sana pada saat itu) dan karena tidak menghasilkan konflik dengan tanda baca lainnya tanda dan simbol yang diperlukan untuk tujuan sintaksis matematis atau lainnya.
Edit lagi
Kebutuhan akan beberapa karakter terminator kembali ke persyaratan untuk mem-parsing teks bahasa. Kompiler awal ditulis dalam bahasa assembly atau, dalam beberapa kasus, langsung dalam instruksi mesin biner buatan tangan. Memiliki karakter khusus yang mengidentifikasi akhir pernyataan dan membatasi potongan teks yang sedang diproses membuat pemrosesan lebih mudah. Seperti yang saya katakan di atas, bahasa lain telah menggunakan carriage return atau kurung. Algol, Pascal, Ada, BCPL, B, C, PL / M, dan keluarga bahasa lainnya menggunakan koma. Mengenai yang mana yang pertama kali menggunakan karakter khusus ini, saya tidak mengingat sejarah cukup jauh. Pilihan dan adopsinya masuk akal sebagai
Sebagai komentar terakhir, saya pikir ada lebih banyak waktu yang dihabiskan untuk jawaban dan komentar ini daripada yang dihabiskan dalam memutuskan untuk menggunakan titik koma untuk mengakhiri pernyataan ketika merancang bahasa pertama yang menggunakannya dengan cara ini.
sumber
Banyak bahasa menggunakan sintaks yang dimodelkan setelah C (yang dimodelkan setelah B - terima kasih @Crollster). Seperti yang dapat dilihat di komentar, ada rantai panjang bahasa seperti itu ... B terinspirasi oleh PL / I, yang didahului oleh ALGOL dalam menggunakan
;
sebagai pemisah.Karena dalam C pernyataan terminator adalah
;
, bahasa-bahasa ini mengikuti.Adapun mengapa itu dipilih sebagai terminator pernyataan di C - mungkin karena penggunaannya dalam bahasa Inggris "untuk menunjukkan pernyataan saling tergantung" .
C juga ditemukan pada PDP-11 pada saat jumlah memori yang tersedia terbatas untuk set karakter, sehingga para penemu bahasa harus bekerja dalam batasan-batasan ini.
sumber
FORTRAN kereta bekas digunakan untuk menggambarkan pernyataan. COBOL menggunakan periode. LISP tidak menggunakan apa-apa, mengandalkan tanda kurung untuk semuanya. ALGOL adalah bahasa pertama yang menggunakan titik koma untuk memisahkan pernyataan. PASCAL mengikuti petunjuk ALGOL, menggunakan tanda koma untuk memisahkan pernyataan.
PL / I menggunakan titik koma untuk mengakhiri pernyataan. Ada perbedaan, dan itu mudah dilihat di PASCAL. Ada mengikuti petunjuk PL / I pada item yang satu ini, bukannya ALGOL.
Titik koma sebagai pemisah pernyataan atau terminator dengan cepat diterima oleh komunitas ilmu komputer sebagai notasi yang berguna, dan, sejauh yang saya tahu, setiap bahasa blok-terstruktur berikutnya mengikuti petunjuk ALGOL dan menggunakan tanda koma untuk memisahkan atau mengakhiri pernyataan.
Saya diberitahu bertahun-tahun yang lalu bahwa BCPL menggunakan titik koma DAN carriage return sebagai pemisah pernyataan / terminator, tetapi saya tidak pernah menggunakan bahasa itu sendiri dan tidak dapat memverifikasi ini. Pada titik tertentu, penggunaan carriage return untuk memisahkan atau mengakhiri pernyataan dijatuhkan dari keturunan BCPL. BCPL begat B, B begat C, C begat C ++, Java, D dan sejumlah hal yang kurang dipikirkan secara matang dibandingkan PASCAL dan Ada.
sumber
Beberapa bahasa telah menggunakan simbol lain - versi lama BASIC menggunakan titik dua sebagai gantinya, misalnya.
Mengabaikan beberapa pengecualian, saya pikir ada dua alasan utama. Yang pertama adalah bahwa Anda hanya mencari sesuatu yang tidak ambigu. Dalam parser biasa, jika Anda mengalami kesalahan yang cukup serius sehingga Anda tidak dapat melanjutkan parsing pernyataan saat ini, Anda biasanya mencoba untuk mendapatkan parser kembali disinkronkan dengan hanya melompat ke depan ke terminator pernyataan dan memulai kembali parser dari mulai dari pernyataan selanjutnya. Untuk itu, Anda menginginkan sesuatu yang biasanya tidak terjadi di tempat lain dalam kode, dan tanda titik koma adalah simbol dengan sedikit makna lain yang terlampir, sehingga cukup mudah untuk mendedikasikannya untuk tujuan ini.
Alasan kedua agak mirip, tetapi lebih ditujukan pada orang yang membaca / menggunakan kode. Sekali lagi, kembali ke fakta bahwa simbol yang sebenarnya Anda gunakan tidak terlalu berarti. Ada keuntungan substansial dalam keterbacaan yang diperoleh dari penggunaan simbol yang biasa dilihat pembaca Anda untuk tujuan tertentu, kapan dan jika memungkinkan. Itu tidak berarti bahwa C adalah satu-satunya sintaks yang sempurna dan yang lainnya harus mengikutinya dengan rendah hati, tetapi itu berarti bahwa cukup banyak orang yang akrab dengan gaya sintaksis yang bahasa samar-samar serupa mendapatkan banyak (dan kehilangan sangat sedikit) dengan mengikuti kira-kira sintaksis yang sama di mana ia bisa.
Saya perhatikan bahwa ini hampir seperti merancang hampir semua program lain. Jika saya menulis sebuah program yang menggunakan beberapa jenis windows, saya akan mencoba untuk hanya menggunakan fitur asli platform target. Banyak keputusan yang mewujudkan sebagian besar akan sewenang-wenang, dan dapat dilakukan secara berbeda tanpa kehilangan fungsionalitas yang besar - tetapi sama-sama, mengubahnya tanpa keuntungan substansial dalam fungsionalitas hanya membingungkan pengguna tanpa mencapai sesuatu yang bermanfaat. Prinsip dasar yang sama berlaku untuk "apa yang harus mengakhiri (atau memisahkan) pernyataan dalam bahasa?" sebagai "seperti apa tampilan bilah gulir", atau "bagaimana seharusnya kontrol pohon bekerja?" Dalam semua kasus ini, keputusannya sebagian besar arbitrer, dan keseragaman memberikan manfaat besar dalam dan dari dirinya sendiri.
Saya akan menambahkan bahwa hal yang sama terjadi di banyak bahasa, hanya dengan cara yang sebagian besar dari kita sudah terbiasa sebelum pemrograman sehingga beberapa orang berpikir tentang hal itu. Mengapa semua orang menggunakan "+" untuk mengindikasikan penambahan, atau "-" untuk menunjukkan pengurangan? Karena bentuk simbol tidak terlalu penting, tetapi semua orang yang setuju untuk menerapkan makna yang sama untuk setiap simbol sangat penting.
sumber
Titik koma awalnya diusulkan dalam Algol 60 sebagai pemisah pernyataan , bukan terminator.
Sebelum Algol 60, satu-satunya bahasa pemrograman tingkat tinggi yang ada adalah Fortran, yang mengharuskan setiap pernyataan berada pada baris terpisah. Pernyataan yang mencakup banyak baris, seperti do-loop, dianggap aneh, dan dianggap sebagai 'blok pernyataan'.
Para perancang Algol 60 menyadari bahwa pernyataan memerlukan struktur hierarkis (jika-kalau-kalau-itu, lakukan-loop, pernyataan kasus dll) dan mereka bisa bersarang di dalam satu sama lain. Jadi, ide setiap pernyataan yang berada di jalur yang terpisah tidak masuk akal lagi. Komposisi berurutan dari pernyataan bentuk S1; S2; ...; Sn di opsional tertutup mulai - akhir kurung disebut pernyataan majemuk , dan masuk ke dalam struktur hirarkis laporan yang dibayangkan oleh Algol 60. Jadi, di sini, titik koma jelas pernyataan pemisah , bukan sebuah terminator.
Ini memunculkan masalah dalam praktik. Algol 60 juga memiliki "pernyataan kosong" yang dilambangkan dengan tidak menulis apa pun. Jadi, orang dapat menulis " mulai S1; akhir " di mana tanda koma muncul seolah-olah itu mengakhiri S1. Tetapi kompiler Algol 60 benar-benar memperlakukannya sebagai pemisah antara S1 dan pernyataan kosong tak terlihat yang mengikutinya. Kehalusan ini sedikit banyak bagi programmer praktis. Setelah terbiasa dengan bahasa yang berorientasi garis seperti Assembly dan Fortran, mereka benar-benar menganggap titik koma sebagai terminator untuk pernyataan. Ketika program ditulis, biasanya titik koma diletakkan di akhir pernyataan, seperti:
dan titik koma benar-benar tampak seperti terminator untuk pernyataan pertama. Jika pemrogram memperlakukan titik koma sebagai terminator, maka pernyataan seperti ini akan memberikan kesalahan sintaksis:
karena titik koma mengakhiri "jika" dan, jadi, "yang lain" menjadi menggantung. Pemrogram benar-benar bingung.
Jadi, PL / I, yang merupakan penerus IBM untuk garis berorientasi Fortran, memutuskan untuk membuat titik koma sebagai terminator pernyataan daripada pemisah. Programmer senang dengan pilihan itu. Mayoritas bahasa pemrograman mengikutinya. (Pascal menolak tren itu, tetapi penggantinya Ada menyerah.)
[Catatan ditambahkan: Artikel Wikipedia tentang perbandingan bahasa pemrograman memiliki tabel yang bagus yang merangkum bagaimana titik koma diperlakukan dalam berbagai bahasa pemrograman.]
sumber
Ini adalah pekerjaan menebak yang murni, tetapi melihat keyboard QWERTY standar terbatas pada nilai-nilai ASCII, karakter alami untuk penghentian / pemisahan adalah.!?::; dan carriage kembali. dari mereka!?: harus segera didiskualifikasi karena mengambil beberapa kunci dan pemutusan pernyataan akan menjadi hal yang sangat umum. Periode akan didiskualifikasi karena mereka mudah dikacaukan dengan titik desimal yang akan membuatnya tidak perlu rumit untuk menjadi terminator karena ruang komputer awal yang terbatas. carriage return akan didiskualifikasi setelah garis kode berpotensi lebih panjang daripada yang dapat ditampilkan pada satu baris pada layar, sehingga akan lebih sulit untuk membaca program ketika garis harus digulir secara horizontal, atau membutuhkan karakter tambahan untuk membuat kelanjutan pada baris berikutnya yang lagi-lagi menambah kompleksitas. ini meninggalkan, dan; sebagai opsi, dari mereka, digunakan lebih sering dalam tulisan dibandingkan dengan; jadi titik koma dipilih karena lebih mudah untuk diketik, kurang membingungkan karena menambah makna pada karakter dengan makna terbatas dan kurang rumit karena kasus khusus tidak benar-benar ada dengan penggunaannya.
Titik koma dipilih karena itu adalah karakter terbaik berdasarkan kemalasan dan kesederhanaan.
sumber
Ini sebagian besar pilihan yang sewenang-wenang. Beberapa bahasa telah membuat pilihan lain. COBOL mengakhiri pernyataan dengan
.
karakter tersebut. FORTRAN, BASIC, dan Python umumnya mengakhiri pernyataan dengan baris baru (dengan sintaks khusus untuk pernyataan multi-baris). Dan Lisp mengurung pernyataannya dengan tanda kurung.Alasan utama
;
sangat populer sebagai pemisah pernyataan / terminator adalah bahwa sebagian besar bahasa populer saat ini didasarkan pada ALGOL , yang menggunakan konvensi itu.Simbol apa lagi yang bisa Anda pilih?
Karakter ASCII # $ @ [] ^ _ `{|} ~ tidak selalu ada dalam pengkodean karakter awal seperti ISO 646 .
Karakter
()*+-/<=>
biasanya digunakan sebagai operator matematika dan akan membuat ambiguitas penguraian jika digunakan sebagai terminator pernyataan.Masalah serupa akan berlaku untuk
'
dan"
, yang biasanya digunakan sebagai pembatas string;,
, yang biasanya digunakan untuk memisahkan argumen fungsi, dan.
, yang biasanya digunakan sebagai titik desimal (atau sebagai pembatas dalam konstruksi sepertisome_struct.some_field
).Daun itu
!%&:;?
.Memilih
!
atau?
mungkin tidak akan menyebabkan kesulitan teknis, tetapi makna bahasa Inggris mereka akan memberikan suasana yang salah untuk program ini.Itu
&
akan menjadi pilihan yang lebih masuk akal sebagai pemisah pernyataan (bukan terminator), karenadapat dibaca sebagai perintah untuk melakukan hal A dan kemudian melakukan hal B. Tetapi sebagian besar bahasa dengan
&
operator menggunakannya sebagai logika atau bitwise DAN sebagai gantinya.The
%
tanda dapat menyebabkan kebingungan dalam pernyataan sepertiinterest_rate = 2.99%
(yang akan mengatur variabel2.99
bukan yang diharapkan0.0299
). Tentu saja, makna matematika yang terkenal dari%
tidak menghentikan C dari menggunakannya sebagai operator sisanya.Sehingga pergi
:
dan;
.:
adalah pilihan yang masuk akal, dan memang digunakan sebagai pemisah pernyataan intra-line di sebagian besar dialek BASIC.Tetapi
;
memiliki tata bahasa Inggris di sisinya; dapat digunakan untuk memisahkan klausa dalam sebuah kalimat.sumber
Daripada mencoba menjawab pertanyaan utama Anda, saya pikir lebih baik fokus pada pertanyaan implisit Anda:
Jika Anda ingin belajar tentang desain bahasa pemrograman dan sejarah implementasi, dan mendapatkan lebih banyak wawasan tentang prosesnya, maka proses dari Sejarah Konferensi Bahasa Pemrograman adalah tempat yang sangat baik untuk memulai. (Saya pikir Anda akan memerlukan keanggotaan ACM untuk dapat mengakses proses.)
Mengambil pertanyaan utama Anda sebagai contoh pertanyaan yang mungkin ingin Anda coba jawab dengan membaca proses HOPL, saya ingin menawarkan poin berikut: orang yang merancang bahasa pemrograman baru biasanya melakukannya karena mereka menganggap yang mereka tahu adalah entah bagaimana rusak / kurang. Bahasa baru mereka, di satu sisi, dirancang untuk memperbaiki kekurangan ini. Di sisi lain, perancang bahasa juga akan menyalin elemen desain dari bahasa lain yang mereka anggap baik, atau mereka tidak mengubah elemen yang mereka tidak mengalami masalah dengannya.
Terutama bagian terakhir yang penting: alih-alih mencoba mencari tahu bahasa pemrograman mana yang pernah menjadi yang pertama menggunakan titik koma sebagai terminator dan mengapa banyak bahasa pemrograman lain disalin, Anda mungkin akan belajar lebih banyak dengan melihat bahasa yang tidak menyalin. saya t. Misalnya, sementara Smalltalk mengambil banyak inspirasi dari Simula, itu tidaksalin sintaksinya dan khususnya penggunaan titik koma sebagai terminator pernyataan. Itu mengubah terminator (separator benar-benar) menjadi berhenti penuh, dan menggunakan titik koma untuk sesuatu yang lain. Sebaliknya, bahasa pertama yang pernah menggunakan titik koma sebagai terminator pernyataan mungkin memiliki alasan untuk mengubah ini dari apa yang digunakan dalam bahasa yang datang sebelumnya. Mungkin juga bahwa itu adalah bahasa pertama yang memperkenalkan seluruh konsep terminator pernyataan (atau melakukannya secara independen dari bahasa lain) dan bahwa titik koma digunakan untuk beberapa alasan yang sekarang hilang waktu. (Saya menduga yang terakhir adalah kasus di sini, karena tidak ada dari penjawab lain yang mampu menggali kutipan dari orang yang memperkenalkan tanda titik koma daripada menawarkan dugaan retrofit tentang mengapa tanda titik koma merupakan pilihan yang baik.) Tetapi untuk menyatakan kembali saya titik, Saya pikir Anda akan belajar lebih banyak dengan melihat mengapa perancang bahasa mengubah sesuatu daripada mengapa mereka menyalin / menyimpannya. Ketika orang mengubah hal-hal yang biasanya mereka inginkan atau harus menjelaskan perubahan itu, sementara mereka tidak melakukannya ketika menyalin atau menjaga hal-hal yang sama karena “mengapa kita mengubahnya? itu hanya caranya! ”
sumber
Ini tentang visibilitas.
Pemisah pernyataan awal adalah '.' seperti pada COBOL dan jalur baru, carriage return dalam FORTRAN.
CR terbukti membatasi dalam hal itu membuat sulit untuk mengalirkan pernyataan melalui beberapa baris.
Berhenti penuh menyebabkan masalah yang lebih menarik. Ketika Anda membaca teks bahasa Inggris, otak Anda memproses penghentian penuh pada tingkat subliminal, Anda sadar bahwa sebuah kalimat telah berakhir dan Anda dapat berhenti sejenak untuk bernafas tetapi Anda tidak benar-benar memperhatikannya. itu menandakannya. Juga dalam banyak font '.' adalah karakter sekecil mungkin yang terkadang diterjemahkan sebagai satu piksel. Hilang atau periode ekstra menjadi penyebab kesalahan paling umum dalam program COBOL.
Jadi belajar dari kesalahan awal ALGOL memilih terminator tertentu yang akan memungkinkan pernyataan mengalir melalui beberapa baris, dan, memilih satu yang terlihat dan mudah diperhatikan oleh pembaca manusia. Semi-kolon menjadi besar dan tidak biasa dalam bahasa Inggris yang umum untuk tidak diproses secara tidak sadar.
sumber
Pemahaman saya bahwa itu dipilih karena ada kebutuhan untuk terminator pernyataan eksplisit selain dari carriage-return / new-line. Kembali pada zaman layar 80-kolom, sebenarnya memiliki satu baris pembungkus kode melintasi beberapa baris sudah cukup umum sehingga menggunakan \ r atau \ n untuk terminator pernyataan tidak akan berfungsi.
Titik koma hanya nyaman karena mereka tidak digunakan dalam pernyataan logika / matematika. Dengan demikian, mereka tidak bertentangan dengan isi pernyataan yang sebenarnya sampai tingkat yang signifikan.
Secara pribadi, saya pikir penggunaan terus-menerus dari titik koma, bersama dengan persyaratan gaya untuk menjaga garis di bawah 80 karakter, terus terang bodoh dan ketinggalan zaman. Bahasa seperti python telah menunjukkan secara luas bahwa Anda dapat menulis mudah dimengerti, kode ringkas lebih mudah tanpa mereka. Juga, jika Anda memiliki masalah dengan garis yang lebih panjang dari 80 karakter, Anda memerlukan monitor yang lebih besar.
sumber
Berikut adalah dua pertanyaan: Mengapa ALGOL mendapat titik koma dan mengapa bahasa lain mengejarnya.
Pertanyaan pertama sudah dijawab dengan berbagai cara di sini.
Sebagai yang kedua, ALGOL sangat banyak digunakan sebagai bahasa pseudocode untuk penulisan algoritma. Jadi, titik koma segera menjadi alami bagi pengguna bahasa yang berbeda. Dan tentu saja mereka dibawa ke bahasa yang lebih muda.
sumber
Saya mungkin salah, tapi saya pikir ini ada hubungannya dengan fakta bahwa di banyak assembler, titik koma digunakan untuk memulai komentar, biasanya dimasukkan setelah instruksi. Semuanya setelah sebuah
;
komentar, dan tidak lagi menjadi bagian dari instruksi itu sendiri.Lalu ada kebutuhan untuk menghentikan instruksi ketika Anda mengetikkannya dalam bahasa juru bahasa. Instruksi singkat (misalnya ekspresi matematis) dapat diakhiri dengan hanya menekan tombol Enter, memberi tahu penerjemah bahwa ekspresi siap untuk dihitung dan menghasilkan hasil. Tetapi kadang-kadang seseorang ingin memasukkan beberapa baris kode untuk instruksi, jadi salah satu cara untuk mencapai itu adalah dengan menggunakan beberapa karakter khusus sebagai terminator instruksi daripada hanya bergantung pada tombol Enter. Dengan cara ini, pengguna dapat memasukkan lebih banyak baris kode sekaligus, karena Enter belum mengirimkannya ke penerjemah. Hanya ketika penerjemah menemukan karakter terminating dalam baris yang dimasukkan dengan Enter, akhirnya akan menjalankannya dan menghitung hasilnya.
Sekarang gabungkan kedua hal ini bersama-sama, dan tanda titik koma tampaknya menjadi pilihan yang jelas untuk karakter penghentian: ia memberi tahu di mana bagian instruksi berakhir dan bagian komentar dimulai, jadi ketika penerjemah menjumpainya dalam sebuah garis, ia tahu bahwa ia dapat memerah semua baris dari ekspresi yang disangga sejauh ini dan jalankan, karena instruksi baru saja berakhir, sekarang kita berada di komentar (well, setidaknya sampai akhir baris ini, karena baris berikutnya akan dimulai dalam kode mode lagi, memulai ekspresi / instruksi baru).
Tentu saja ini mengasumsikan bahwa itu benar-benar titik koma yang telah digunakan untuk komentar oleh orang yang datang dengan ide ini untuk menggunakannya kembali sebagai terminator instruksi. Kalau itu karakter lain, kita mungkin berakhir dengan terminator instruksi yang berbeda.
Inb4: Tidak, ini bukan akun historis. Saya tidak punya bukti bahwa ini adalah cara sebenarnya titik koma menjadi hidup. Itu hanya bagaimana saya membayangkan itu mungkin terjadi.
sumber
Sebagian besar bahasa menggunakan semi-kolon karena sudah banyak digunakan untuk tujuan itu dan perubahan tidak masuk akal.
Dan mempertimbangkan bahasa pertama untuk membuat pilihan itu, Anda harus mempertimbangkan apa alternatifnya. Saat mendesain bahasa, Anda ingin karakter yang diperlukan tersedia, dan rangkaian karakter saat ini diberi kode pada 6 bit, seringkali dengan beberapa pola yang disediakan, seringkali dengan beberapa karakter yang tidak ditetapkan dengan jelas (untuk kejadian selanjutnya, pikirkan tentang varian nasional ISO-646 - varian AS dikenal dengan nama ASCII - yang menggunakan kembali kode untuk karakter "umum" seperti
[
,#
atau$
, dan melihat efeknya dalam konteks di mana hanya ada setengah posisi kode posisi tersedia dan surat dan digit memesan lebih dari setengahnya).Mungkin tidak ada karakter lain yang dapat digunakan sebagai pemisah pernyataan secara intuitif (
.
mungkin sudah satu-satunya penantang serius untuk kriteria itu) dan tanpa memperkenalkan kesulitan lexing atau parsing pada saat teori parsing dan lexing masih dalam penjabaran (.
sekarang keluar dari pertanyaan karena penggunaannya dalam bilangan real).sumber
Alasan lain mengapa menggunakan titik koma adalah karena itu adalah salah satu karakter yang tidak kita butuhkan atau gunakan lebih sering.
Asumsikan kita lebih sering menggunakannya sebagai nama variabel atau sesuatu dan jika titik koma akan digunakan sebagai kata kunci atau sebagai operator, itu akan menjadi konflik simbol untuk kompiler, maka penting untuk menggunakan simbol yang tidak sering digunakan dalam pengkodean.
Saya percaya bahasa pemrograman gaya C membuatnya populer dan kemudian penulis bahasa pemrograman baru tidak ingin menemukan kembali roda dan mereka terus menggunakannya, sampai sekarang.
sumber