زبان اسکریپت‌نویسی

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

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

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

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

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

ویژگی‌های اسکریپت‌هاویرایش

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

نام‌های دیگر زبان اسکریپت‌نویسیویرایش

  • یک زبان اسکریپت نویسی می‌تواند به عنوان یک زبان خاص دامنه برای محیط خاص دیده شود. در مورد اسکریپت‌های یک برنامه کاربردی، به آن‌ها زبان توسعه (به انگلیسی: 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.
  • بعضی از این زبان‌ها از ابتدا برای استفاده در یک محیط خاص توسعه یافته‌اند، و سپس در یک زبان خاص دامنه یا همه‌کاره توسعه گرفته‌اند.
  • زبان‌های اسکریپت‌نویسی می‌توانند برای استفاده توسط کاربر نهایی یک برنامه طراحی شده باشند، (توسعه کاربر نهایی)
  • یا ممکن است برای استفاده درونی توسط توسعه دهندگان طراحی شده باشند، بنابراین آنها بخش‌های یک برنامه را در زبان اسکریپت‌نویسی بنویسند.

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

انواع اسکریپت‌هاویرایش

زبان های اسکریپت‌نویسی برای اجرا نیاز به مفسر دارند تا در ابتدا تبدیل و دستور به دستور ترجمه شده و سپس اجرا شوند اما زبان های برنامه نویسی قبل از اجرا توسط کامپایلر تبدیل به کد ماشین شده و برای اجرا از کامپایلر استفاده می نمایند.

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

زبان های اسکریپت‌نویسی نیاز به کدنویسی کمتری داشته و زمان کمتری از برنامه نویسی می گیرند اما در برنامه نویسی با سایر زبان ها، برنامه نویس مجبور است تا تمامی دستورها را به صورت دستی وارد نماید.

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

زبان های اسکریپت‌نویسی برای اجرا نیاز به مفسر دارند تا در ابتدا تبدیل و دستور به دستور ترجمه شده و سپس اجرا شوند اما زبان های برنامه نویسی قبل از اجرا توسط کامپایلر تبدیل به کد ماشین شده و برای اجرا از کامپایلر استفاده می نمایند.

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

زبان های اسکریپت‌نویسی نیاز به کدنویسی کمتری داشته و زمان کمتری از برنامه نویسی می گیرند اما در برنامه نویسی با سایر زبان ها، برنامه نویس مجبور است تا تمامی دستورها را به صورت دستی وارد نماید.

در برخی از موارد زبان های برنامه نویسی محدودیت بیشتری نسبت به زبان های اسکریپت‌نویسی دارند. بطور مثال شما قادر به ایجاد و طراحی یک برنامه دسکتاپ یا تلفن همراه به وسیله زبان های برنامه نویسی نخواهید بود چرا که هیچگونه محیطی برای اجرای آن ها وجود ندارد. برای درک بهتر می توان PHP را مثال زد که از فریم ورک های آن نظیر وردپرس برای وب سایت ها یا برنامه های تحت وب استفاده میگردد [

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

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

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

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

اسکریپت 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."