Sebagian besar ini tidak ada hubungannya dengan membuatnya mudah bagi penulis kompiler dan efisiensi penguraian, tetapi, lebih berkaitan dengan merancang sintaks yang mendorong kode yang mudah dibaca dan tidak ambigu.
Para desainer bahasanya berpikir akan lebih baik untuk dapat menulis literal angka seperti angka 1 sebagai sekadar 1 .
Sangat mungkin untuk merancang sintaksis bahasa di mana literal numerik dikutip dalam beberapa cara misalnya tildas sehingga literal numerik untuk nomor satu dikodekan sebagai ~ 1 ~ dan segala sesuatu yang bukan kata kunci dan tidak dilampirkan dalam kutipan diperlakukan sebagai nama variabel .
Jadi Anda bisa membuat kode pernyataan seperti:
1 = ~2~
two = 1 * ~2~
Tetapi juga:
2 = ~3~
six = 2 + 2
Sintaks apa pun yang Anda pilih ambigu dan sulit diikuti kode tidak dapat dihindari.
Bahasa C dan sebagian besar bahasa "kurung keriting" diturunkan dari C juga menganggap itu ide yang baik untuk memungkinkan programmer untuk kode Oktal dan Hexadecimal literal secara langsung, dan, untuk menentukan jenis literal jika ini penting. Begitu
010 // Octal 10 = 8;
0x10 // Hexadecimal 10 = 16;
5l // long integer with decimal value 5
2.0d // double float with value 2
Jadi, bahkan jika Anda mengizinkan nama variabel dimulai dengan angka diikuti dengan kombinasi angka dan huruf yang menyertakan setidaknya satu huruf, Anda akan memberikan masalah pada programmer untuk memutuskan apakah suatu kelompok tertentu membentuk nama variabel atau literal numerik sehingga
2lll = 22 // OK
2ll = 2 // compiler error
Ambiguitas seperti itu tidak akan membantu siapa pun menulis atau membaca program.
Untuk contoh dunia nyata yang berhubungan dekat, Anda dapat melihat bahasa PL / 1 yang perancangnya berpikir bahwa menggunakan kata kunci sebagai nama variabel adalah ide yang bagus sehingga:
IF THEN THEN THEN = ELSE; ELSE ELSE = THEN;
IF IF THEN ELSE = IF; ELSE THEN = ELSE;
DO WHILE (WHILE = DO); END = WHILE + DO; END;
Adalah kode yang valid yang mengkompilasi dan mengeksekusi.