تکنولوژی

داستان Basic چهل ساله

شرق – در شماره قبل خوانديد كه بيش از آن كه نام مايكروسافت با بيل گيتس عجين باشد اين بيسيك است كه هنوز بعد از ۴۰ سال براى بيل گيتس همچون فرزند دردانه اى عزيز است .در اين شماره ادامه نحوه شكل گيرى بيسيك را از نظر بگذرانيد.
•••
بنابر اين دلايل، ما نوشتن مفسر بيسيك را ترجيح داديم: اول اينكه بيسيك آنقدر ساده بود كه ما فكر مى كرديم بتوانيم آن را به علاوه برنامه هاى كاربر در يك محيط ۴ كيلوبايتى فشرده كنيم و دوم اينكه ما دوست داشتيم يك برنامه معنى دار تك خطى با بيسيك بنويسيم. در آن زمان در زبان هاى ديگر متغيرهاى بسيار زيادى وجود داشت و شما براى حك كلمه «HELLO» بر روى صفحه نمايش مجبور بوديد چندين خط كد بنويسيد. به اين ترتيب توابع مديريت و طول متغيرها در بيسيك نسبت به بقيه زبان ها مفيدتر بود. در ابتداى ظهور بيسيك ما سازندگان اولين سرى ميكروكامپيوترها را متقاعد كرديم كه آنها به بيسيك نياز دارند چرا كه با نب بيسيك بر روى سيستم هايشان آنها را قابل استفاده مى كردند و مردم مى توانستند به راحتى از سيستم شان به دليل نبودن سيستم عامل استفاده كنند.

در آن زمان اين سيستم ها طورى طراحى شده بود كه فقط مى شد آنها را روشن كرد و كار زيادى از آنها ساخته نبود. در سال ۱۹۷۹ سيستم عامل پديد آمد. تا اين زمان بيسيك تنها راهى بود كه بيشتر مردم مى توانستند از كامپيوترشان استفاده كنند. بيسيك بسيار مورد توجه مردم قرار گرفته بود. در آن زمان ما مردم را به نوشتن كتاب هايى در مورد برنامه نويسى بيسيك تشويق مى كرديم چرا كه مى خواستيم ديگران نيز با برنامه نويسى بيسيك و ليست برنامه هاى مختلف آن آشنا شوند. خواهش ديگر ما از مردم اين بود كه با بيسيك برنامه بنويسند و سپس يا آن را بفروشند و يا به طور رايگان در اختيار ديگران بگذارند.

در آن زمان به غير از پل آلن و من اشخاص ديگرى نيز به تهيه بيسيك هاى مختلفى مشغول بودند: «مى چن ونگ» با «Tiny BASIC»، «استيون لنينگر» با «Radio Shake Level 1BASIC»، «استيو وزنياك» با «Apple Integer BASIC» و «گوردون ايبانك» با « Basic and CBasic». در بين تمامى اين بيسيك ها فقط بيسيك مايكروسافت بالاخره توانست در حافظه فقط خواندنى بيش از ۵۰ نوع از ماشين هاى آن زمان ظاهر شود و به اين ترتيب عملاً استاندارد شد.

اولين بيسيك واقعاً شبيه زبان بيسيك امروزى بود. در آن بيسيك شما مجبور بوديد فقط از متغيرهاى يك حرفى استفاده كنيد و در ضمن شما بايد از شماره خط نيز استفاده مى كرديد. با اين وجود بيسيك ثابت كرد كه مى تواند يك راه بسيار خوب براى ساخت برنامه هاى مفيد باشد راهى كه هميشه و همه جا قابل دسترسى است. يكى از ويژگى هاى آن بيسيك «بازخورد كردن» آن بود. همچنين مديريت رشته آن نيز به شما اين امكان را مى داد كه به آسانى برنامه هاى كاربردى متن گرايى را طراحى كرده و بنويسيد.

از كارهاى ديگر ما جاسازى افعال POKE، PEEK ، INP و OUT در آن بيسيك بود. به اين ترتيب با استفاده از اين افعال كه از كلمات رزرو شده بيسيك بودند مى توانستيد منابع كد درون سيستم را ابه جا كنيد و يا تغيير دهيد. همچنين كارى كرديم كه برنامه نويسان مى توانستند از داخل بيسيك به شيوه هاى زبان ماشين دست پيدا كرده و قسمت هاى مهم برنامه شان را سريع تر اجرا كنند. مفسرها به آسانى قابل توسعه هستند بنابراين اغلب ويژگى هاى جديد را به آن بيسيك اضافه مى كرديم. ما همچنين «زبان هاى كلان رشته نگاره سازى» را كه از فعل هاى Play و Draw استفاده مى كردند توسعه داديم. ويژگى هاى ديگرى كه حاصل تجربيات ما در نوشتن مفسرها بود به طور تمام و كمال در GW BASIC كه براى ماشين هاى ژاپنى ساخته شده بود ظاهر شد. وقتى GW BASIC در حافظه كامپيوترهاى شخصى جاى گرفت زبان بيسيك بسيار گسترده و بزرگ جوه گر شد.

اگر در ديسك هاى فقط خواندنى IBM تغييراتى حاصل نمى شد بدون شك بيسيك با مشكل مواجه مى شد ولى اين چنين نشد و توانست بالاتر از سطح يك مفسر توسعه بايد و بدين ترتيب بى نهايت عمومى شد. يك چيز هنوز براى من تعجب آور است و آن اين كه چطور درصد بالايى از كاربران PC جى دابليو بيسيك را تجربه كردند؟! البته شايد يكى از دلايلش اين باشد كه آموختن و استفاده از آن بسيار ساده بود. وقتى بيسيك در دنياى بزرگ كامپيوتر PC و سازگار با آن كم آورد و دچار مشكل شد تنها راه اين بود كه Quick BASIC را بسازيم. در اين بين كمپانى هاى ديگرى نيز بيسيك را توسعه دادند كه از آن جمله مى توان خود مخترعين بيسك يعنى «كمنى» و «كورتس» را نام برد كه بيسيك جديد خود را True BASIC ناميدند.

امروزه وقتى بيسيك را به برنامه نويسان نشان مى دهم نظرشان اين است كه بيسيك كمى شبيه «پاسكال» است. مردمى كه تصور مى كردند بيسيك نيز مانند «بيسيك آ» – با ساختارى ضعيف كه نمى توانست يك زبان «خط گرا» باشد _ است با ديدن آن متعجب شدند. با اين اوصاف بيسيك در سال ۱۹۸۳ بسيار مدرن شد و بالاخره در اواسط دهه ۸۰ ويژگى هاى زير باعث بهتر شدن آن شد: به عنوان يك زبان با اضافه شدن طول متغير و نام هاى برچسب، ساختارهاى ركورد و ابزار بهتر ساختارى كردن بلوك، به عنوان يك محيط برنامه نويسى با ويرايشگر توكار، اشكال زدايى توكار و توانايى بسيار مهم ترجمه _ اجرا و به عنوان يك زبان ترجمه شد، با عكس العمل سريع ترى در برابر دوره منظم ترجمه، اشكال زدايى، ويرايش، ترجمه و نظارت بر كدهاى سطح بالا.

بيسيك همچنين براى مديريت ساختارهاى پيچيده و تعامل بهتر با نگاره سازى، توانايى اجراى شيوه هاى برگشتى را نيز به دست آورد. در همين زمان بيسيك بيشتر از هر زمان ديگرى ساختارى منسجم يافته بود. چرا كه حلقه هاى DO …WHILE، WHILE…WEND،DOUNTIL، LOOP …WHILE و LOOP UNTIL و عبارت SELECT CASE به آن اضافه شده بود. توانايى هاى امروز بيسيك به شما اين امكان را مى دهد كه ساختارهاى داده را به همان خوبى C يا PASCAL بسازيد. در بيسيك امروزى فضا برنامه ها به ۶۴ كيلوبايت محدود نمى شود بلكه برنامه هاى امروزى بيسيك مى توانند از فضاى حافظه موجود استفاده كنند كه به مراتب بيشتر از ۶۴ كيلوبايت است.

در بيسيك امروزى تنها يك آرايه مستقلاً مى تواند بيش از ۶۴ كيلوبايت حافظه استفاده كند. شما همچنين مى توانيد از اعداد طولانى (۳۲ بيتى) نيز در برنامه هايتان استفاده كنيد. ساختارهاى ركورد توانايى هاى ديگر از جمله تعريف ساختار داده، تركيب بعضى از انواع داده هاى مستقل مانند رشته ها و اعداد را در اختيار شما مى گذارد. محيط برنامه نويسى بيسيك نيز دچار تغييراتى شده است براى مثال در كونيك پيك ۴ و ۵/۴ يك ويرايشگر تمام صفحه اى توكار با تركيب ويرايش اتوماتيك، اشكال زدايى توكار و يك راهنماى وابسته به بافت مراحل ساخت برنامه ها را تا حد امكان سريع تر و آسان تر مى كرد.

در همين زمان شركت Borland نيز يك ويرايشگر تمام صفحه اى را داخل Turbo Basic جاسازى كرد. يكى از تغييرات مهم و اساسى در بيسيك برگشت مفسرها به سمت مترجم ها بود يعنى برگشت به بيسيك اوليه اى كه در كالج دارتموث ساخته شد. زيرا آن هم يك كامپايلر بود. بعد از ظهور سيستم عامل با فراهم شدن حافظه اى بيشتر از ۶۴ كيلوبايت تا اندازه اى ساخت مترجم هاى بيسيك امكان پذيرتر شد و خيلى زود مترجم هاى بيسيك بر روى ميكروكامپيوترها ظاهر شدند.

اين مترجم ه محصولاتى از مايكروسافت و ديجيتال ديسرچ (CBASIC-۸۶) بود. بعدها بيسيك هاى ديگرى مانند Better BASIC، Quick BASIC، True BASIC، Z Basic و Turbo Basic توليد شدند. اما در اين حركت بزرگ به سمت مترجم ها نبايد ويژگى هاى بسيار خوب مفسرها مانند بازخورد سريع و نمايش سريع خطاها را كه باعث موفقيت مفسرها شده بود، ناديده گرفت.

پيشرفت در تكنولوژى مترجم باعث توليد يك مترجم بيسيك شد كه تقريباً نمايشى از يك مفسر بود. بنابراين مى توان گفت اين بيسيك تركيبى از مترجم و مفسر بود. مترجم هاى «يك طرفه اى» كه در يك مرحله قادر به ترجمه صداها و سپس قادر به ترجمه هزاران خط از كدها فقط در چند ثانيه بودند، ظاهراً شبيه عملرد يك مفسر بود ولى در عمل سرعت اجراى برنامه را نيز افزايش مى داد. بعد از مدتى طرح تلفيق ويژگى هاى يك مفسر و يك مترجم را در حافظه ورودى امتحان كرديم. اين طرح از يك روش كدگذارى بسيار مخصوص بهره مى برد به طورى كه وقتى با محيطى همچون ويرايشگر كوئيك بيسيك تركيب شود اين امكان را براى شما فراهم مى كند كه كدهاى خود را تايپ كرده، اشكال زدايى كنيد و در پايان نيز تغييرات لازم را به عمل آوريد، درست شبيه عمليات درون يك مفسر. پس از اين مراحل شما آماده اجراى برنامه هستيد. حال مى توانيد برنامه يا محصول خود را براى به دست آوردن حداكثر سرعت در حجمى فشرده تر در يك فايل اجرايى ترجمه كنيد.

از قابليت هاى ديگر ترجمه بيسيك مى توان از دستيابى به شيوه هاى زبان هاى ديگر از درون بيسيك نام برد. از آنجا كه مترجم قادر به توليد فايل هاى با توسعه OBJ ميانى استاندارد است، مى توانيد فايل هاى با توسعه OBJ زبان هاى C يا پاسكال را با فايل هاى با توسعه OBJ بيسيك تركيب كرده و شيوه هاى زبان هاى بيگانه را از داخل برنامه بيسيك فرا خوانيد.

با چنين پيشرفتى در تكنولوژى مترجم شهرت چندين ساله بيسيك به عنوان زبانى با سرعت اجرايى پايين از بين رفت. امروزه بسيارى از برنامه هاى تجارى مشهور با زبان بيسيك نوشته شده اند. براى مثال برنامه طرح گويند، به نام Accousta CADD ، برنامه مدير ايستگاه راديويى به نام Music Scan و حتى برنامه مهمى براى زيست شناسان ذره اى به نام DNA Inspector . به هرحال زبان بيسيك از زبان هاى معروفى همچون C و PASCAL چيزى كم ندارد چرا كه برنامه هاى ترجمه شده بيسيك مى توانند به سرعت برنامه هاى ترجمه شده در پاسكال و C اجرا شوند. من هنوز ادعا مى كنم كه يكى از طرفداران پروپا قرص بيسيك هستيم.

در بيسيك بسيارى از امور به آسانى انجام مى گيرد در حالى كه اين امر در زبان هاى ديگر شما را تا حدى در فشار مى گذارد. بنابراين بيسيك در برنامه نويسى خلاق دست شما را بازمى گذارد.

تا به حال برنامه نويسان زيادى را براى مسابقه برنامه نويسى به هر زبانى كه آنها بخواهند دعوت كرده ام و شرط مى بندم همان برنامه را با كوئيك بيسيك طورى بنويسم كه از برنامه آنها سريع تر و بهتر اجرا شود.

در اين زمينه تاكنون از اطرافيان كنايه هاى محبت آميز شنيده ام: اگر نوشتن برنامه اى مهم نياز به يك برنامه ريزى مناسب و حساب شده دارد، كافى است آن را به بيل بسپاريد تا در تعطيلات آخرهفته اش آن را به بيسيك بنويسد.

به هرحال معتقدم زبانى به قدرتمندى بيسيك وجود ندارد، هرچند كه هنوز هم راه هاى زيادى براى كاركرد بهتر آن وجود دارد.

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا