فری‌بیسیک

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از فری بیسیک)
پرش به: ناوبری، جستجو

FreeBasic یک مترجم بیسیک 32 بیتی منبع باز برای ویندوز، حالت معکوس داس، لینوکس، ایکس باکس می‌باشد. FreeBasic اجازهٔ پشتیبانی سطح بالایی را برای برنامه‌هایی که با کیو بیسیک نوشته شده اند با استفاده از نسخه خاص کیو بیسیک می‌دهد. بسیاری از برنامه‌هایی که برای کیو بیسیک نوشته شده اند بدون نیاز به تغییر دراین حالت ترجمه و اجرا می‌شوند . در هر حال، بیشتر برنامه‌های اساسی قبل از اینکه با استفاده از نسخهٔ خاص پیش فرض ترجمه شوند، نیاز به تغییراتی خواهند داشت.

ویژگی‌ها[ویرایش]

FreeBasic یک مترجم خود میزبان است که تقریباً 120000 خط کد است ( فقط هستهٔ مترجم و نه شامل کتابخانه‌ها ). این استفاده از ابزار برنامه نویسی GNU را به عنوان پشت خط امکان پذیر می سازد و می‌توانند میز فرمان و گرافیک قابل اجرا را بعلاوهٔ کتابخانه‌های ایستا و پویا تولیدکند . FreeBasic استفادهٔ کامل از کتابخانه‌های C و بخشی از کتابخانه‌های C++ را پشتیبانی می‌کند. این به برنامه نویسان اجازهٔ استفاده و ساخت کتابخانه‌هایی برای C و بسیاری از زبان‌های برنامه نویسی دیگر را می‌دهند. FreeBasic هنوز یک مترجم بهینه سازی نیست، اما در سرعت، نزدیک به ابزارهای مسیر اصلی مانند GCC ارزیابی شده است.

نحو[ویرایش]

در نحو FreeBasic کوشش شده است تا حد امکان به نحو Basic نزدیک باشد. اگرچه در این نحو تلاش بر این بوده است که با نمونهٔ قبلی خود سازگار بماند ،FreeBasic از معیارها و شیوه‌های مدرن برنامه نویسی تبعیت می‌کند. ویژگی‌های رویه‌ای استاندارد همراه با ویژگی‌های شئ گرا مانند نوع‌ها، اشیاء، سربار گذاری عملگرها، سربارگذاری تابع، فاصله نام‌ها و ... به FreeBasic اضافه شده اند. خطهای FreeBasic، هنگامی که کاراکترهای انتهای خط پیدا شوند، یا توسط کولن پایان می‌یابند. به همین خاطر، خطوط نباید یک کاراکتر ویژه ( مانند سمیکالن در C ) برای آگاه ساختن مترجم از پایان خط داشته باشند . ممکن است چندین دستور که هرکدام با یک کالن جدا شده اند در یک خط نوشته شوند . FreeBasic ازتوضیحات بلوکی همراه با ملاحظات پایان خط پشتیبانی می‌کند. یک خط کامل توضیحات با یک آپاستروف ساخته می‌شود درحالی که بلوک‌های توضیحات برنامه با /’ شروع و با /’ پایان می‌یابند.

سازگاری[ویرایش]

FreeBasic جانشین زبان برنامه نویسی کیو بیسیک می‌باشد. طی گسترش آن تغییراتی داده شد تا آن را با تسهیلات نوین سازگار کند و ویژگی‌های برنامه نویسی پیشرفته را آسان سازد. به منظور توسعهی کامپایلر ، GCC موافق و همچنین حفظ توانایی استفاده از زبان سازگار کیو بیسیک مجموعه گزینهٔ –lang ساخته شد. هنگامی که مجموعه زبان FB را انتخاب می کنیم( -lang fb به عنوان آرگومان خط فرمان )، تمامی ویژگی‌های جدیدی که FreeBasic پیشنهاد می‌کند موجود می‌باشد و ویژگی‌های هکیش از کیو بیسیک که با شیوه‌های نوین برنامه نویسی سازگار بودن پذیرفته نمی‌شود . مجموعه زبان FB-Light (-lang fblight) دسترسی به بیشتر ویژگی‌های جدید و غیر شئ گرایFreeBasic را مهیا می سازد، اما سبک برنامه نویسی شبیه نسخه‌های قدیمی بیسیک را می پذیرد. قوانین نحو، مانند پذیرفتن متغییرهای ضمنی، پسوندها ، GOSUB / RETURN، برچسب‌های عددی و ... دراین این گزینهٔ lang مجاز می‌باشد. مجموعه زبان QB (lang qb) شبیه به lang fb می‌باشد اما بیشتر روی تکرار شبیه رفتار کیو بیسیک متمرکز شده است. Lang qb برای ساده سازی اجرای برنامه‌هایی که در اصل برای کیو بیسیک نوشته شده اند طراحی شده است و در حالت هایی که lang fbtile به اندازهٔ کافی سازگار نیست مفید می‌باشد.

برنامه نمونه[ویرایش]

همانند کیو بیسیک یک برنامه برای نوشتن یک خط از متن در صفحه نمایش، توسط یک دستور ساده انجام می‌شود.

print "Hello, World!"

کتابخانهٔ گرافیکی[ویرایش]

FreeBasic دارای یک کتابخانهٔ نرم‌افزار گرافیکی دوبعدی داخلی است تا با کیو بیسیک سازگار باشد که نمودارهای سادهٔ اولیه ( مانند مستطیل‌ها، خطوط و دایره‌ها ) و ویژگی‌های اضافی که در کتابخانهٔ گرافیکی کیو بیسیک حاضر نبوده اند را برای کاربر تهیه می‌کند. این کتابخانه خودش وابسته به سیستم‌عامل نمی‌باشد. بنابراین برنامه در سرتاسر پایگاه‌های دارای کتابخانه قابل حمل است. اگرچه این کتابخانه داخلی است، تنها زمانی که کسی استفاده از آن را انتخاب کند قرار داده می‌شودکه این با آسانی با فراخوانی یک دستور FBgfx screen انجام می‌شود. کتابخانه‌های رایج مانند +opengl ساختن یک پنجره توسط رابط برنامه کاربردی ( ویندوز، لینوکس و ... ) برای تسریع سخت‌افزار می‌تواند بدون مداخله با کتاب خانه گرافیکی کیو بیسیک استفاده شود.

توسعه آینده[ویرایش]

FreeBasic به پیشرفت و توسعه خود به سمت هدفش که یک نرمافزار نهایی GCC باشد ادامه می‌دهد که اجازه خواهد داد بسیاری از ویژگی هایی که در C++ و زبان‌های برنامه نویسی شئ گرای دیگر پیدا شده اند، قابلیت حمل به تقریباً هر سامانه نوین و فنون بهینه سازی پیشرفته را داشته باشد. با انتشار نسخه ی0.17، برنامه نویسی شئ گرا به علاوهٔ کلاس‌ها و با توسعهٔ نوع اولیه معرفی شد پیاده سازی‌های بیشتری انتظار می‌رود.

منابع[ویرایش]