بتا (زبان برنامه‌نویسی)

از ویکی‌پدیا، دانشنامهٔ آزاد
بتا
پارادایم برنامه‌نویسیشیءگرا
طراحی شده توسطBent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard
وبگاه

بتا یک زبان شیءگرا خالص است که از مدرسه اسکاندیناوی در شیءگرایی سرچشمه می‌گیرد، جایی که اولین زبان شی گرا سیمولا توسعه یافت.[۱]

این پروژه از اکتبر ۲۰۲۰ غیرفعال است.[۲]

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

دیدگاه فنی[ویرایش]

از دیدگاه فنی، بتا چندین ویژگی منحصر به فرد را ارائه می دهد. کلاس ها و عبارت‌ها در یک مفهوم متحد می شوند و یک الگو را تشکیل می‌دهند. همچنین، کلاس ها به عنوان ویژگی های شیء تعریف می شوند. این یعنی یک کلاس نمی تواند بدون یک شیء نمونه سازی شود. در نتیجه بتا از کلاس های تودرتو پشتیبانی می‌کند. کلاس ها را می توان به صورت مجازی تعریف کرد، دقیقاً مانند روش های مجازی که در بیشتر زبان های برنامه‌نویسی شیءگرا می توانند وجود داشته باشند.

بتا از دیدگاه شیءگرا در برنامه‌نویسی پشتیبانی می‌کند. دارای روش‌های قدرتمندی برای پشتیبانی از شناسایی، طبقه‌بندی و ترکیب‌بندی شیء است. بتا یک زبان نوع ایستا مانند سیمولا، ایفل و C++ است که اکثر بررسی‌های نوع در زمان کامپایل انجام می‌شود. [۱] هدف بتا دستیابی به تعادل بهینه بین بررسی نوع کامپایل و بررسی نوع زمان اجرا است.

الگوها[ویرایش]

یکی از ویژگی های اصلی و خاص بتا، مفهوم الگوها است. در یک زبان برنامه نویسی دیگر، مانند C++ ، یک نفر دارای چندین کلاس و عبارت است. بتا هردوی این مفاهیم را با استفاده از الگوها بیان می کند.

به عنوان مثال، یک کلاس ساده در C++ دارای فرم خواهد بود.

class point {
    int x, y;
};

در بتا، همان کلاس را می توان با الگو نمایش داد.

point: (#
    x, y: @integer
#)

یعنی کلاسی به نام point دارای دو فیلد x و y از نوع عدد صحیح خواهد بود. نمادهای (# و #) الگوها را معرفی می‌کنند. دو نقطه برای ایجاد الگوها و متغیرها استفاده می شود. علامت @ قبل از نوع عدد صحیح در تعریف فیلد مشخص می‌کند که اینها فیلدهایی با نوع عدد صحیح هستند.


به عنوان مقایسه‌ای دیگر، یک عبارت در C++ می تواند به این شکل باشد.

int max(int x, int y)
{
    if (x >= y)
    {
        return x;
    }
    else
    {
        return y;
    }
}

در بتا، این تابع را می توان با استفاده از یک الگو ایجاد کرد.

max: (#
    x, y, z: @integer
enter (x, y)
do
    (if x >= y // True then
        x -> z
    else
        y -> z
    if)
exit z
#)

x ،y و z متغیرهای محلی هستند. کلمه کلیدی enter پارامترهای ورودی الگو را مشخص می کند و کلمه کلیدی exit نتیجه تابع را مشخص می‌کند. بین این دو، کلمه کلیدی do پیشوندی برای عملیاتی است که باید انجام شود. بلوک شرطی با (if و if) محدود می‌شود، یعنی کلمه کلیدی if بخشی از پرانتز باز و بسته می شود. در نهایت، عملگر انتساب "->" مقدار سمت چپ خود را به متغیر سمت راست خود اختصاص می دهد.

مثال سلام دنیا![ویرایش]

(#
do Hello world!’->PutLine
#)

پیوند به بیرون[ویرایش]

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

  1. ۱٫۰ ۱٫۱ Source: Ole Lehrmann Madsen: An overview of BETA
  2. https://beta.cs.au.dk/