-طراحی شده برای تولید سریع برنامه های برنامه نویسی بلوکی کوچک که برنامه های موجود را هماهنگ می کند. با توجه به ادغام آنها با HTML، آنها همچنین برای ساخت صفحات وب میزبانی شده بر روی سرورها استفاده شده اند.[52][53]
دهه 2000 تا کنون
در طول دهه 2000، کاهش سرعت در توسعه زبان های برنامه نویسی جدید وجود داشت که به محبوبیت گسترده ای دست یافت.[54] یکی از نوآوری ها برنامه نویسی سرویس برنامه نویسی بلوکی گرا بود که برای بهره برداری از سیستم های توزیع شده که اجزای آن توسط یک شبکه به هم متصل شده اند، طراحی شده بود. خدمات مشابه اشیاء در برنامه نویسی شی گرا هستند، اما در یک فرآیند جداگانه اجرا می شوند.[55] C# و F# ایدههایی را بین برنامهنویسی ضروری و کاربردی به هم میرسانند.[56] پس از سال 2010، چندین زبان جدید - Rust، Go، Swift، Zig و Carbon - برای نرمافزار حیاتی عملکردی که C در گذشته برای آن استفاده میشد، رقابت کردند.[57] بسیاری از زبان های برنامه نویسی برنامه نویسی بلوکی جدید از تایپ ثابت استفاده می کنند در حالی که تعداد کمی از زبان های جدید از تایپ پویا مانند Ring و Julia استفاده می کنند.[58][59]
برخی از زبان های برنامه نویسی جدید به عنوان زبان های برنامه نویسی بصری مانند Scratch، LabVIEW و PWCT طبقه بندی می شوند. همچنین، برخی از این زبانها بین استفاده از برنامهنویسی متنی و بصری مانند Ballerina ترکیب میشوند.[60][61][62][63] همچنین، این روند منجر به برنامه نویسی بلوکی توسعه پروژههایی میشود که به توسعه VPLهای جدید مانند Blockly توسط Google کمک میکنند.[64] بسیاری از موتورهای بازی مانند Unreal و Unity از برنامهنویسی بصری نیز پشتیبانی میکنند.[65][66]
عناصر
همه زبانهای برنامهنویسی دارای بلوکهای ساختمانی اولیه برای توصیف دادهها و فرآیندها یا تبدیلهای اعمال شده بر روی آنها هستند (مانند جمع دو عدد یا انتخاب یک آیتم از یک مجموعه). این برنامه نویسی بلوکی اصول اولیه با قواعد نحوی و معنایی تعریف می شوند که به ترتیب ساختار و معنای آنها را توصیف می کنند.
نحو
مقاله اصلی: نحو (زبان های برنامه نویسی)
درخت کد پایتون را با توکنیزاسیون داخلی تجزیه کنید
برجسته کردن نحو اغلب برای کمک به برنامه نویسان در تشخیص عناصر کد منبع استفاده می شود. زبان بالا پایتون است.
شکل سطحی یک زبان برنامه نویسی به عنوان نحو آن شناخته می شود. بیشتر زبان های برنامه نویسی صرفا متنی هستند. آنها از توالی متن از جمله کلمات، اعداد و علائم نگارشی استفاده می کنند، مانند زبان های طبیعی نوشتاری. از سوی دیگر، برخی از زبان های برنامه نویسی ماهیت گرافیکی بیشتری دارند و از روابط برنامه نویسی بلوکی بصری بین نمادها برای تعیین یک برنامه استفاده می کنند.
نحو یک زبان ترکیب احتمالی نمادها را توصیف می کند که یک برنامه صحیح نحوی را تشکیل می دهند. معنای داده شده به ترکیبی از نمادها توسط معنایی (چه رسمی یا کدگذاری شده در برنامه نویسی بلوکی یک پیاده سازی مرجع) انجام می شود. از آنجایی که بیشتر زبان ها متنی هستند، این مقاله به نحو متنی می پردازد.
نحو زبان برنامه نویسی معمولاً با استفاده از ترکیبی از آموزش برنامه نویسی کودکان و نوجوانانعبارات منظم (برای ساختار واژگانی) و فرم Backus–Naur (برای ساختار دستوری) تعریف می شود. در زیر یک دستور زبان ساده بر اساس Lisp آمده است:
بیان ::= اتم | فهرست
اتم ::= عدد | سمبل
شماره ::= [+-]؟[0-9]+
نماد ::= [A-Za-z].*
لیست ::= ( عبارت* )
این دستور زبان موارد زیر را مشخص می کند:
یک عبارت یا یک اتم یا یک لیست است.
اتم یا عدد است یا نماد.
یک عدد دنباله ای ناگسستنی از یک یا چند رقم اعشاری است که به صورت اختیاری قبل از علامت مثبت یا منفی قرار می گیرد.
نماد، حرفی است که با صفر یا بیشتر از هر کاراکتری (به استثنای فضای سفید) همراه شود. و
یک لیست یک جفت پرانتز منطبق با عبارات صفر یا بیشتر در داخل آن است.
در زیر نمونههایی از توالیهای نشانهای به خوبی شکلگرفته در این دستور زبان آمده است: 12345، () و (a b c232 (1)).
همه برنامه های صحیح نحوی از نظر معنایی صحیح برنامه نویسی بلوکی نیستند. با این وجود، بسیاری از برنامههای صحیح نحوی، طبق قوانین زبان، بد شکل هستند. و ممکن است (بسته به مشخصات زبان و درستی اجرا) منجر به خطا در ترجمه یا اجرا شود. در برخی موارد، چنین برنامه هایی ممکن است رفتار نامشخصی از خود نشان دهند. حتی زمانی که یک برنامه در یک زبان به خوبی تعریف شده باشد، ممکن است باز هم معنایی داشته باشد که توسط شخصی که آن را نوشته است مورد نظر نباشد.
با استفاده از زبان طبیعی به عنوان مثال، ممکن است نتوان به یک برنامه نویسی بلوکی جمله از نظر دستوری درست معنی داد یا ممکن است جمله نادرست باشد:
"ایده های سبز بی رنگ با عصبانیت می خوابند." از نظر دستور زبان به خوبی شکل گرفته است اما هیچ معنای عمومی پذیرفته شده ای ندارد.
"جان یک مجرد متاهل است." از نظر دستوری به خوبی شکل گرفته است اما معنایی را بیان می کند که نمی تواند درست باشد.
قطعه زبان C زیر از نظر نحوی صحیح است، اما عملیات هایی را انجام می دهد که از نظر معنایی تعریف نشده اند (عملیات *p >> 4 برای مقداری که نوع پیچیده دارد معنی ندارد و p->im تعریف نشده برنامه نویسی بلوکی است زیرا مقدار p برابر است نشانگر تهی):
مختلط *p = NULL;
پیچیده abs_p = sqrt(*p >> 4 + p->im);
اگر اعلان نوع در خط اول حذف شود، برنامه خطایی را در متغیر تعریف نشده p در طول کامپایل ایجاد می کند. با این حال، برنامه همچنان از نظر نحوی صحیح است زیرا اعلانهای نوع فقط اطلاعات معنایی را ارائه میدهند.
گرامر مورد نیاز برای تعیین یک زبان ب Block programming رنامه نویسی می تواند