|
++C در مقايسه با BASIC براي كارهاي تعاملي مناسبتر است زيرا
عبارات آن ميتوانند بيانهاي معتبر باشند. براي مثال شما ميتوانيد يك
تكليف را تايپ كنيد، ارزش آن به شما نشان داده خواهد شد. همچنين متغيرها
نيز بيانهاي معتبر ++C هستند. آنچه ميخواهم در اين مقاله به شما نشان
دهم، قدرت استفاده از ++C در اين حالت تعاملي بصورت عملي است، و
اينكه اين كار چگونه ميتواند بطور بالقوه بازدهي برنامه نويسان را تقويت
نمايد.
++C تعاملي به يك هماهنگي نسبتا ملايم نياز دارد. در ++C
استانداردبيانها ميتوانند با ساير توضيحات تركيب شوند، اما تنها در بدنه
توابع و يا كلاسها. در ++C تعاملي تعاريف توابع ميتوانند بصورت
مفهومي عمومي با بيانها تركيب شوند.
} ;x*x return { (x double)sqr double >;
;(٢)sqr >;
٠.٤ (double)
;٢ = x double >;
;x >;
٠.٢=x (double)
تمام اينها بيانهاي معتبر ++C هستند، با اين استثنا كه هيچ محدوديت
مفهومي در استفاده از آنها وجود ندارد. در اينجا دوست قديمي و بدنام ما
(پردازنده) بسيار مفيد ميشود. براي مثال من براي استفاده از بيان IF
هميشگي، عموما يك ماكرو را تعريف ميكنم:
(++i ;(n) < i ;٠=i int)for (n,i)FOR define# >;
;endl << i << cout (٥,i)FOR >;
٠
١
٢
٣
٤ اين دليل ديگري بر اين مسئله است كه ++C زبان تعاملي بهتري نسبت به
پاسكال (و حتي بيسيك) است. اين يك زبان مختصر و مفيد است كه ميتواند
با ماكروها حتي از اين هم فشردهتر شود.
در حال حاضر ايجاد كردن مفاهيم خودتان در ++C رسمي اصولا ايده خوبي
نيست. اما در يك مضمون محاورهاي، ميتوانيد از يك سبك غير رسميتر
استفاده كنيد. در يك سند قانوني رسمي به زبان انگليسي، نبايستي از
اختصارها (نظير "t'don") استفاده كنيد. اما در طول يك نشست تعاملي براي
پيگيري سريعتر تعامل، ممكن است از هر موردي كه از نظر نحوي قانوني
باشد، به كرات استفاده كنيد:
()end.(ls),()begin.(ls) (ls)ALL define# >;
;(arr,(ls)ALL)COPY >;
من اصولا در هنگام تهيه كدها تمايلي به انجام اينكار ندارم.
استفاده از ++C در يك شيوه تفسيري، بيش از حد پيچيده در نظر گرفته
ميشد اما اين يك مشكل تاريخي است كه بايستي در مسيري كه برنامه در
ابتدا بكار گرفته ميشد، انجام شود: پردازنده، مترجم (به C)، كامپايلر (به
اسمبلي)، اسمبلر (به كد ابجكت) و لينكر (به كد قابل اجرا). يك مفسر مدرن
نظير UnderC، ورودي را از طريق يك Tokenizer پيش پردازشي
دريافت ميكند، و آن را مستقيما به Pcode كامپايل ميكند كه بلافاصله پس
از آن اجرا ميشود. اين كد بطور آشكاري كندتر از نتيجه يك كامپايلر واقعي
است، اما سيستمهاي تعاملي تنها بايد از زمان واكنش انسان سريعتر باشند.
اصولا اگر شما بتوانيد كاري را در كمتر از ١٥٠ ميلي ثانيه انجام دهيد، شما
بعنوان يك عملگر آني در نظر گرفته ميشويد. اين مسئله كه در اجراهاي
تعاملي يك مبدله پيچيدگي/سرعت وجود دارد، افسانهاي است كه واقعيت
ندارد.
|