فری‌بیسیک

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

## ویژگی‌ها
FreeBasic یک مترجم خود میزبان است که تقریباً ۱۲۰۰۰۰ خط کد است (فقط هستهٔ مترجم و نه شامل کتابخانه‌ها). این استفاده از ابزار برنامه‌نویسی 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 به اندازهٔ کافی سازگار نیست مفید می‌باشد.

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

```freebasic
print "Hello, World!"
```


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

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

## منابع

* Official site
* Official forum
* SourceForge homepage
* FreeBASIC Documentation in Wiki Format

رده:ابزارهای برنامه‌نویسی برای ویندوز
رده:ابزارهای برنامه‌نویسی لینوکس
رده:پروژه‌های سورس‌فورج
رده:خانواده‌های زبان‌های برنامه‌نویسی بیسیک
رده:زبان‌های برنامه‌نویسی رویه‌ای
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۲۰۰۴ (میلادی)
رده:زبان‌های برنامه‌نویسی سطح بالا
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:کامپایلرها و مفسرهای آزاد
رده:کتابخانه‌های رایانه‌ای آزاد
رده:نرم‌افزارهای آزاد برنامه‌نویسی‌شده با بیسیک
رده:نرم‌افزارهای داس
رده:نرم‌افزارهایی که از پروانه جی‌پی‌ال استفاده می‌کنند
رده:زبان‌های برنامه‌نویسی ایستا