لماذا معظم لغات البرمجة لاتسمح أن يبدأ إسم المتغير برقم

السلام عليكم

مالسبب ان معظم اللغات لاتقبل ان يبدأ المتغير برقم

بحثت في جوجل ووجدت اجابة في stackoverflow ولكن لم افهم منها شيئاً , او بمعني اصح لم توضح الامور بشكل جيد لي

خالص ودي

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

16

حسنا من نفس الاجابة على Stackoverflow

قديما لغة مثل الفورتران لم تتطلب ترك مسافة بين ترقيم السطر وبدأ الكود حيث ان ترقيم الأسطر يدويا جزء من الكود ، فمثلا كود مثل هذا

10 V1=100

20 PRINT V1

يمكن كتابته بهذه الطريقة بدون مسافات

10V1=100

20PRINTV1

لكن تخيل معى متغير كهذا

101V=100

متغير يبدأ برقم فهل المقصود منه

10 1V = 100

أو

101 V = 100

أو

1 01V = 100

هذا بالنسبة للغات القديمة جدا مثل الفورتران والكوبول لذا أرسيت قاعدة منذ هذا الوقت بمنع بدأ المتغير برقم أو أن يكون المتغير كاملا عبارة عن رقم :)

مع ذلك لغات أحدث مثلا لا تستخدم ترقيم الأسطر مثل C لديها مشكلة أخرى فى بدء المتغيرات برقم ، خذ مثلا

int 2d = 42;

double a = 2d;

فهل تكون قيمة a هى 42 أو 2.0 لأن أى رقم متبوعا بحرف d يتم ترجمته على أنه double ؟

أتمنى أن أكون لخصت الاجابة بما لا يخل بالمعنى :)

فهمت الجزء الاول من الاجابة , ولكن لم استوعب الجزء الثانى الخاص بال c lang

هل ممكن توضيح اكثر ؟

لأن المترجم او المفسر يستخدم أول حرف غالبا لتحديد نوع التعبير,

فاذا ما بدأ برقم فهو number, اذا بدأ بحرف فهو identifier,

لهذا السبب لا يسمح ببدأ المتغير برقم.

من الأسباب التي قد تواجهها في كل اللغات، أن هذا سيعطي إمكانية عمل شيء مثل:

 var 0 = 1;

الأمر سيخلق كارثة بكل المقاييس.

عفوا لم افهم المثال ,