نمایش نتایج 1 تا 4 از 4

نام تاپیک: وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟

  1. #1

    وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟

    سلام
    دوستان من می خوام بدونم چرا وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟؟؟یعنی وقتی متغیر با عدد شروع میشه کامپایلر ایراد میگیره!!!
    من دنبال دلیل منطقی هستم!؟؟؟
    و می دونم که چون این برای کامپالیر پیش فرضه که متغیر نمی تونه با عدد شروع شه.
    فقط دنبال دلیل منطقیش می گردم.
    فکر نمی کنم دلیلش این باشه که برای بالا رفتن سرعت کامپایلر و یا آسونی گرامر این فرضی رو برای کامپایلر تعریف کرده باشند!!!
    به نظر شما دلیل منطقیش چی می تونه باشه؟؟؟؟

  2. #2

    نقل قول: یه سوال ساده در برنامه نویسی c

    نقل قول نوشته شده توسط mn4030 مشاهده تاپیک
    سلام دوستان من می خوام بدونم چرا وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟؟؟یعنی وقتی متغیر با عدد شروع میشه کامپایلر ایراد میگیره!!! من دنبال دلیل منطقی هستم!؟؟؟ و می دونم که چون این برای کامپالیر پیش فرضه که متغیر نمی تونه با عدد شروع شه. فقط دنبال دلیل منطقیش می گردم. فکر نمی کنم دلیلش این باشه که برای بالا رفتن سرعت کامپایلر و یا آسونی گرامر این فرضی رو برای کامپایلر تعریف کرده باشند!!! به نظر شما دلیل منطقیش چی می تونه باشه؟؟؟؟
    سلام.
    فرض کنید میشد اینکارو کرد، اونوقت چطوری باید

    • اعداد Hex رو نشون میدادیم؟ (مثل 0x100 که میشه 256 دسیمال)
    • اعداد Oct رو نشون میدادیم؟ (مثل 0144U که میشه 100 دسیمال)
    • اعداد Dec رو مشخص میکردیم؟ (مثل 300U که میشه 300 دسیمال)
    • اعداد Float رو نشون میدادیم؟ (مثل 12.85f)
    • و ...

    این خط کد رو بطور نمونه در نظر بگیرید:

    const float pi = 3.14f;


    اینجا، ما یه سری Token داریم، یه سری Pattern داریم و یک سری Lexeme. در مثال فوق، Token ما id هستش (از دید Lexical Analyzer در Compiler ها)، pi یک Lexeme محسوب میشه و pattern مربوطه نیز میگه که این identifier باید "با حرف شروع بشه و پشتش حرف یا عدد بیاد". این مساله باعث ساده تر شدن کار پردازش Token ها بطرز چشمگیری میشه، علاوه بر اینکه در بسیاری از موراد نیز باعث ابهام زدایی میشه. اگر Lexeme میتونست با عدد شروع بشه، اونوقت نوشتن یک (یا چند) Regular Expression برای پردازش Token ها با دردسرهای عجیب و غریبی روبرو میشد، AST پیچیده میشد و Symbol Table ها باید اطلاعات فربه تری رو در خودشون نگه میداشتن. برای اینکه متوجه جزییات مساله بشه، لطفا به کتابی در مورد Compiler ها و طرز کار اونها رجوع کنید.

    موفق باشید.

  3. #3
    کاربر جدید آواتار NilooooliN
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    Tehran
    پست
    7

    نقل قول: وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟

    نقل قول نوشته شده توسط mn4030 مشاهده تاپیک
    سلام
    دوستان من می خوام بدونم چرا وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟؟؟یعنی وقتی متغیر با عدد شروع میشه کامپایلر ایراد میگیره!!!
    من دنبال دلیل منطقی هستم!؟؟؟
    و می دونم که چون این برای کامپالیر پیش فرضه که متغیر نمی تونه با عدد شروع شه.
    فقط دنبال دلیل منطقیش می گردم.
    فکر نمی کنم دلیلش این باشه که برای بالا رفتن سرعت کامپایلر و یا آسونی گرامر این فرضی رو برای کامپایلر تعریف کرده باشند!!!
    به نظر شما دلیل منطقیش چی می تونه باشه؟؟؟؟
    ببینید در واقع با این سوال شما دو سوال دیگه مطرح میشه: نتونستند یا نمی خواستن که رقم در ابتدای شناسه ها قرار بگیره؟ در این مورد باید گفت که نمی خواستند، چون در صورتی که نام شناسه ها با رقم شروع شود، در این صورت شبیه عبارات ریاضی می شود و خوانایی برنامه پایین میاید و در هنگام خواندن برنامه ممکن است به اشتباه آن را عبارات ریاضی در نظر بگیریم، نه یک شناسه!!!! همش همینه

  4. #4
    کاربر جدید آواتار h_motamed123
    تاریخ عضویت
    آذر 1387
    محل زندگی
    یزد
    پست
    11

    نقل قول: وقتی می خوایم یه متغیر رو نامگذاری کنیم چرا نمی تونیم کارکتر اول رو عدد بذاریم؟

    نقل قول نوشته شده توسط NilooooliN مشاهده تاپیک
    ببینید در واقع با این سوال شما دو سوال دیگه مطرح میشه: نتونستند یا نمی خواستن که رقم در ابتدای شناسه ها قرار بگیره؟ در این مورد باید گفت که نمی خواستند، چون در صورتی که نام شناسه ها با رقم شروع شود، در این صورت شبیه عبارات ریاضی می شود و خوانایی برنامه پایین میاید و در هنگام خواندن برنامه ممکن است به اشتباه آن را عبارات ریاضی در نظر بگیریم، نه یک شناسه!!!! همش همینه
    این کار اصلا به خاطر خوانایی برنامه و کاربر نیست به خاطره خود کامپایلر انجام میشه تا عبارت محاسباتی را از عدد و متغیر تشخیص داده و دیاگرام انتقال درست را فراخوانی کند تا در بحث تشخیص و تصحیح خطا دچار اشکال نشود و به عمد انجام شده است.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •