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

یک زبان اجرانامه‌نویسی یا اسکریپت‌نویسی یک زبان برنامه‌نویسی است که اجرای وظایف را خودکارسازی می‌کند.

یک زبان اجرانامه‌نویسی (به انگلیسی: script language یا scripting language) یک زبان برنامه‌نویسی است که اجرای وظایف را خودکارسازی می‌کند. اجرانامه‌ها برای محیط‌های زمان اجرای خاص طراحی شده‌اند.[۱] اگر از زبان اجرانامه‌نویسی استفاده نشود، وظایف باید تک به تک توسط عامل انسانی اجرا گردد. زبان‌های اجرانامه‌نویسی اکثراً تفسیر می‌شوند (به جای آنکه کامپایل شوند).[۲]

چند مثال از وظایفی که توسط اجرانامه خودکارسازی می‌شوندویرایش

این محیط‌ها می‌توانند توسط اجرانامه‌ها خودکارسازی شوند:

اجرانامه‌ها به آغازین‌ها که معمولاً یا وظایف ابتدایی یا فراخوانی رابط برنامه‌نویسی کاربردی هستند، اجازه می‌دهد تا به برنامه‌های دیگر ترکیب گردند.[۲]

ویژگی‌های اجرانامه‌هاویرایش

  • زبان‌های اجرانامه معمول، بسیار سریع یادگرفته و نوشته می‌شوند.[۳]
    • یعنی فایل‌های کدمنبع آن‌ها کوچک است، یا کد آنها تنها یک حلقه بخوان-ارزیابی کن-چاپ کن (Read–eval–print loop) تعاملی دارد (پوسته زبانی REPL).[۴]
  • زبانهای اجرانامه معمولاً نحو و معناشناسی ساده ای دارند.[۲]
  • معمولاً یک اجرانامه (کد نوشته شده در زبان اجرانامه) از ابتدا به انتها اجرا می‌شود، و نقطه ورودی صریح دیگری ندارد.[۲]
  • تفسیری اند: یک زبان اجرانامه معمولاً از طرف کد منبع یا بایت‌کد «تفسیر» می‌شود.[۳]
    • در مقابل محیط نرم‌افزاری که اجرانامه برای آن نوشته می‌شود معمولاً در یک زبان کامپایل شونده نوشته شده‌است، و در یک کد ماشین توزیع می‌شود.
  • اجرانامه‌ها معمولاً از انتزاع استفاده می‌کنند، که نوعی پنهان سازی اطلاعات است. تا لازم نباشد کاربران جزییات نوع متغیر درونی، ذخیره داده، و مدیریت حافظه را بیاورند.[۲]
  • اجرانامه‌ها معمولاً توسط فردی که آنها را اجرا می‌کند ساخته و دستکاری می‌شوند، اما آنها معمولاً توزیع می‌شوند، مثل موقعی که بخش‌های بزرگ بازی‌ها در یک زبان اجرانامه نوشته می‌شود.[۲]

نام‌های دیگر زبان اجرانامه‌نویسی (scripting language)ویرایش

  • یک زبان اجرانامه نویسی می‌تواند به عنوان یک زبان خاص دامنه برای محیط خاص دیده شود. در مورد اجرانامه‌های یک برنامه کاربردی، به آن‌ها زبان تعمیم (به انگلیسی: extension language) هم می‌گویند.[۲]
  • گاهی به اجرانامه‌ها زبان برنامه‌نویسی بسیار سطح بالا (Very high-level programming language) می‌گویند. زیرا در بالاترین سطح انتزاع عمل می‌کنند.[۲]
  • در بزرگ رایانه‌ها به آن‌ها زبان کنترل (به انگلیسی: control languages) می‌گویند، زیرا برای کنترل وظیفه استفاده می‌شود.[۲]

یک مثال از اجرانامه و برنامه عادی غیر اجرانامهویرایش

مثال غیر اجرانامهویرایش

برای مثال، معمول نیست که جاوا را یک زبان اجرانامه بدانیم، زیرا کلاس‌های موجود در فایل‌ها دارای نحو پیچیده و قواعد زیادی می‌باشد و به صورت تعاملی، امکان اجرای مستقیم جاوا نیست، زیرا فایل‌های منبع می‌توانند فقط شامل تعاریف باشند، که این تعاریف باید از «خارج» توسط برنامه کاربردی میزبان یا راه‌انداز برنامه‌کاربردی فراخوانی شوند.[۲]

public class HelloWorld {
    public void printHelloWorld() {
        System.out.println("Hello World");
    }
}

این قطعه کد می‌خواهد "Hello World" را چاپ کند، و کاری نمی‌کند زیرا main در کلاس HelloWorld تعریف نشده‌است.[۲]

مثال اجرانامهویرایش

در نقطه مقابل پایتون امکان تعریف بعضی از توابع را در یک فایل منفرد می‌دهد، و روی هم رفته جلو تعریف مجزای تابع را می‌گیرد، و از سبک برنامه‌نویسی دستوری استفاده می‌کند. یا به صورت تعاملی از آن استفاده می‌کند.[۲]

print("Hello World")

این یک خط کد است که "Hello World" را چاپ می‌کند، و هیچ عبارت اعلانی مثل main() در اینجا نیاز نیست.[۲]

در زبان‌های برنامه‌نویسیویرایش

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

عبارت «زبان اجرانامه» همچنین برای ارجاع به

  • زبان‌های سطح بالا و همه منظوره پویا، مثل Perl، PoweShell، Python، و Tcl به کار می‌رود. در این زبان‌ها اجرانامه برای برنامه‌های کوچک به کار می‌رود (کمتر از چند هزار خط کد).
  • یا در زبان‌های خاص دامنه مثل زبان‌های پردازش متن sed و AWK.
  • بعضی از این زبان‌ها از ابتدا برای استفاده در یک محیط خاص توسعه یافته‌اند، و سپس در یک زبان خاص دامنه یا همه‌کاره توسعه گرفته‌اند.
  • زبان‌های اجرانامه می‌توانند برای استفاده توسط کاربر نهایی یک برنامه طراحی شده باشند، (توسعه کاربر نهایی)
  • یا ممکن است برای استفاده درونی توسط توسعه دهندگان طراحی شده باشند، بنابراین آنها بخش‌های یک برنامه را در زبان اجرانامه بنویسند.

مثالهایی از این دسته عبارت است از: جاوا اسکریپت، پرل و پایتون.

انواع اجرانامه‌هاویرایش

زبان‌های چسبیویرایش

اجرانامه‌ها در مقابل برنامه‌نویسی سیستمی قرار دارند. از این نظر، اجرانامه‌ها مخصوصاً کد چسبی اند، و مولفه‌های نرم‌افزاری را متصل می‌کنند (زبانی که برای این هدف اختصاص یافته‌است یک زبان چسبی است).[۲]

زبان کنترل وظیفه و پوسته سیستم عاملویرایش

یک کلاس عمده از زبان‌های اجرانامه برای خودکار سازی کنترل وظیفه پدید آمدند، که با شروع و کنترل رفتار برنامه‌های سیستمی مرتبط است.[۲]

اجرانامه GUIویرایش

با پدید آمدن واسط کاربری گرافیکی، یک نوع بخصوص از زبان اجرانامه برای کنترل یک رایانه پدید آمد. این زبان‌ها با گرافیک‌های مشابه با پنجره، منو، دکمه، و غیره که انسانها با آن کار می‌کنند، تعامل داشتند.[۲]

زبان‌های برنامه کاربردیویرایش

زبان‌های برنامه کاربردی خاص می‌توانند به رده‌های بسیار متفاوتی شکسته شوند، (اجراشونده‌ها) زبان برنامه کاربردی مبتنی مجزا، زبان‌های درونی برنامه کاربردی خاص (مثل postscript) و از بین آنها زبان‌های اجرانامه اصطلاحی وجود دارد که برای نیازهای کاربر برنامه کاربردی متناسب سازی شده‌اند.[۲]

زبان‌های تعمیم یافته/توکارویرایش

تعدادی از زبان‌ها برای هدف جایگزینی با زبان‌های اجرانامه کاربردی خاص طراحی شده‌اند، این کار از طریق قرار گرفتن در برنامه کاربردی انجام می‌شود.[۲]

تاریخچهویرایش

در دهه ۱۹۶۰ اولین پوسته‌های فرمان ساخته شدند. کاربران این پوسته‌ها گاه مجبور بودند برای انجام امور خود، سلسله‌ای از دستورهای تکراری یا مشابه را در پوسته وارد کنند. کم‌کم به پوسته‌ها قابلیت‌هایی اضافه شد که کاربر با آن می‌توانست الگوی دستور km های خود را به پوسته اعلام کند و پوسته به‌طور خودکار دستورها را انجام می‌داد. این پیشرفت‌ها منجر به ساخت اولین اسکریپت‌های پوسته‌ای شد.

در واقع اسکریپت‌های اولیه برنامه‌های کوچکی بودند که به وسیله آن‌ها می‌شد برخی وظایف تکراری و پراستفاده یا یک وظیفه طولانی را به‌طور خودکار انجام داد. زبان‌های اسکریپت‌نویسی امروزه پیشرفت‌های زیادی کرده‌اند. آن‌ها در زمینه‌هایی چون کنترل وظایف و پوسته، واسط‌های گرافیکی کاربر، واژه‌پردازی، خدمت‌گزاران وب و خدمت‌گیرنده‌های وب استفاده می‌شوند.

منابعویرایش

  1. "ECMAScript 2019 Language Specification". www.ecma-international.org. Retrieved 2018-04-02.
  2. ۲٫۰۰ ۲٫۰۱ ۲٫۰۲ ۲٫۰۳ ۲٫۰۴ ۲٫۰۵ ۲٫۰۶ ۲٫۰۷ ۲٫۰۸ ۲٫۰۹ ۲٫۱۰ ۲٫۱۱ ۲٫۱۲ ۲٫۱۳ ۲٫۱۴ ۲٫۱۵ ۲٫۱۶ ۲٫۱۷ "Scripting language". Wikipedia. 2020-03-03.
  3. ۳٫۰ ۳٫۱ Brown, Vicki. "Scripting Languages". Retrieved 2009-07-22.
  4. Hey, Tony; Pápay, Gyuri (2014). The Computing Universe: A Journey through a Revolution. Cambridge University Press. p. 76. ISBN 978-1-31612322-5, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a REPL programming environment. […] The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language."