زبان برنامهنویسی؛ دستورهای دقیق به رایانه
رایانهها مانند انسانها نیستند. آنها نمیتوانند حدس بزنند یا مفهوم جملههای مبهم را بفهمند. برای اینکه به رایانه بگوییم چه کاری انجام دهد، باید از زبان برنامهنویسی استفاده کنیم. این زبان، مجموعهای از دستورهای دقیق و قانونمند است که رایانه آنها را خط به خط اجرا میکند. درست مثل دستور پخت یک غذا که اگر یک مرحله را اشتباه بنویسی، غذایت خراب میشود.
برنامهنویسی یعنی نوشتن یک دنباله از دستورها برای حل یک مسئله. مثلاً فرض کن میخواهی به رایانه بگویی که اعداد یک تا ده را جمع کند. تو باید این کار را به زبانی بنویسی که رایانه بفهمد. زبانهای برنامهنویسی مختلفی وجود دارند؛ مثل زبان پایتون، جاوا، یا سیپلاسپلاس. هر کدام از این زبانها قواعد خاص خود را دارند، اما همه آنها از یک اصل پیروی میکنند: دقیق بودن. اگر یک نقطه یا ویرگول را جا بیندازی، رایانه دستور را متوجه نمیشود و خطا میدهد.
برای اینکه بهتر متوجه شوی، به یک مثال ساده توجه کن. فرض کن میخواهی به دوستت بگویی که یک لیوان آب بردارد. اگر بگویی «آب»، او ممکن است معنیهای مختلفی برداشت کند. اما اگر بگویی «لطفاً از یخچال یک لیوان آب سرد بردار و بیاور»، دستورت کامل و بدون ابهام است. برنامهنویسی هم دقیقاً به همین شکل عمل میکند؛ فقط به جای کلمات انسانی، از کلمات و نمادهای مخصوص زبان برنامهنویسی استفاده میکند.
کاپیتولاسیون؛ مصونیت قضایی بیگانگان در ایران
حالا از دنیای رایانه به دنیای حقوق میرویم. کاپیتولاسیون یا قضاوتسپاری، یک قرارداد بینالمللی بود که به بیگانگان ساکن در ایران، مصونیت قضایی میداد. یعنی اگر یک شهروند خارجی در ایران جرمی مرتکب میشد، دادگاههای ایران نمیتوانستند او را محاکمه کنند. به جای آن، پروندهاش به دادگاه کشور خودش یا دادگاه ویژهای که برای بیگانگان در نظر گرفته شده بود، میرفت.
این موضوع برای مردم ایران بسیار گران تمام شد. چون وقتی یک خارجی در ایران خلاف میکرد، هیچ کس نمیتوانست او را مجازات کند. مثلاً اگر یک راننده خارجی با بیاحتیاطی به عابر پیادهای آسیب میزد، دادگاه ایرانی حق نداشت او را به زندان بیندازد یا جریمه کند. این حس بیعدالتی و نابرابری را در جامعه ایجاد میکرد؛ چرا که یک ایرانی به خاطر همان جرم باید پاسخگو میبود، اما یک خارجی نه.
کاپیتولاسیون ریشه در قراردادهایی داشت که ایران با برخی کشورهای اروپایی در دورهٔ قاجار امضا کرده بود. این قراردادها به بهانهٔ حمایت از اتباع خارجی، عملاً استقلال قضایی ایران را زیر سؤال میبردند. بعدها، با پیروزی انقلاب اسلامی، این قراردادها لغو شدند و دادگاههای ایران دوباره صاحب اختیار کامل برای رسیدگی به جرائم همهٔ افراد، چه ایرانی و چه خارجی، شدند.
پرسشهای چالشی برای درک بهتر
پرسش ۱: چرا زبان برنامهنویسی باید «قانونمند» باشد؟ مگر نمیتوانیم به رایانه با زبان خودمان دستور بدهیم؟
رایانهها مانند انسان معنی کلمات را نمیفهمند. آنها فقط دنبالهای از صفر و یک را پردازش میکنند. زبان برنامهنویسی یک پل ارتباطی است که دستورهای ما را به زبان ماشین ترجمه میکند. اگر این زبان قانونمند نباشد، مترجم نمیتواند دستور را به درستی ترجمه کند و رایانه سردرگم میشود. به همین دلیل است که برنامهنویس باید دقیقاً از قواعد آن زبان پیروی کند؛ درست مثل قواعد دستور زبان فارسی که اگر نادیده گرفته شوند، جمله بیمعنی میشود.
پرسش ۲: آیا کاپیتولاسیون فقط در ایران وجود داشت یا در کشورهای دیگر هم بود؟
بله، در گذشته بسیاری از کشورهای ضعیفتر یا در حال توسعه، چنین قراردادهایی را با قدرتهای بزرگ امضا کرده بودند. این قراردادها معمولاً به اجبار و برای جلوگیری از فشارهای سیاسی یا نظامی پذیرفته میشدند. اما امروزه بیشتر کشورها بر اصل «برابری در برابر قانون» تأکید دارند و مصونیت قضایی فقط برای گروههای خاص مانند دیپلماتها به رسمیت شناخته میشود؛ آن هم با شرایط و محدودیتهای مشخص.
پرسش ۳: چه شباهتی بین زبان برنامهنویسی و قراردادهای حقوقی مانند کاپیتولاسیون وجود دارد؟
هر دو به «دقیق بودن» وابستهاند. در برنامهنویسی، یک اشتباه کوچک باعث میشود دستور اجرا نشود. در قراردادهای حقوقی هم اگر یک بند به درستی نوشته نشود یا ابهام داشته باشد، ممکن است سوءاستفاده شود. کاپیتولاسیون نمونهای از یک قرارداد حقوقی بود که به دلیل نابرابری و ابهامهایش، باعث بیعدالتی شد. درست مثل یک برنامهٔ رایانهای که اگر اشکال داشته باشد، نتیجهاش خرابکاری خواهد بود.
پرسش ۴: اگر کاپیتولاسیون لغو شد، پس الان بیگانگان در ایران چه وضعیتی دارند؟
امروزه در ایران، همهٔ افراد اعم از ایرانی و خارجی، در برابر قانون مساوی هستند. اگر یک خارجی در ایران مرتکب جرم شود، دادگاههای ایران صلاحیت رسیدگی به پروندهٔ او را دارند. تنها استثنا، دیپلماتهایی هستند که بر اساس کنوانسیون وین، مصونیت قضایی محدودی دارند. این تفاوت بزرگ نشان میدهد که ایران پس از انقلاب، استقلال قضایی خود را به دست آورده و دیگر اجازه نمیدهد هیچ کشوری در امور داخلی آن دخالت کند.
مرور آنچه خواندیم
در این مقاله دیدیم که زبان برنامهنویسی یک زبان قانونمند برای دادن دستور به رایانه است و بدون رعایت دقیق قواعد آن، رایانه نمیتواند کاری انجام دهد. از سوی دیگر، کاپیتولاسیون یک قرارداد حقوقی بود که به بیگانگان در ایران مصونیت قضایی میداد و باعث نابرابری در برابر قانون میشد. هر دو مفهوم بر اهمیت «قانون» و «دقت» تأکید دارند؛ یکی در دنیای فناوری و دیگری در دنیای حقوق. با لغو کاپیتولاسیون، ایران استقلال قضایی خود را بازیافت و امروز همه در برابر قانون یکسان هستند. همچنین، برنامهنویسی به ما میآموزد که با دقت و نظم میتوانیم مسائل پیچیده را حل کنیم و به رایانهها کارهای مفید بیاموزیم.