«اسکریپتها» (Scripts) برنامههای کوچکی هستند که با زبانهای برنامه نویسی نوشته شدهاند و هدف از نوشتن آنها جلوگیری از انجام وظایف تکراری و خودکار کردن آنها است. در زبانهای اسکریپتی احتیاجی به کامپایل نیست؛ این بدان معنی است که مرحله خطایابی و اجرا همزمان انجام میشوند. همچنین در صورت وجود مشکل در کدها، دستور خطا صادر خواهد شد. اسکریپتها انواع مختلفی دارند و زبانهای اسکریپت نویسی با زبانهای برنامه نویسی متفاوت هستند. با توجه به اهمیت اسکریپت در جلوگیری از انجام وظایف تکراری در ادامه این مقاله آموزشی به این سوال که «اسکریپت چیست؟» پاسخ داده شده است. همچنین در این نوشتار به سایر مباحث مهم پیرامون مفهوم اسکریپت پرداخته میشود.
کد اسکریپت چیست ؟
اسکریپت در برنامه نویسی کامپیوتر، برنامه یا دنبالهای از دستورالعملها است که به جای پردازنده کامپیوتر (مانند برنامههای کامپایل شده) توسط برنامه دیگری تفسیر (Interpret) یا اجرا میشود. بعضی از زبانها به صراحت «زبانهای اسکریپتی» یا «زبانهای اسکریپت نویسی» در نظر گرفته شدهاند که محبوبترین آنها زبانهای پرل (Perl)، رکس (Rexx) در پردازنده مرکزی IBM، جاوا اسکریپت (JavaScript) و Tcl/Tk هستند. در شبکه جهانی وب، پرل، VBScript و زبانهای اسکریپتی مشابه با آنها، اغلب برای مدیریت ورودی فرمها یا خدمات دیگر وبسایت نوشته شدهاند و در سرور وب پردازش میشوند. برای مثال، یک اسکریپت در زبان برنامه نویسی JavaScript در «سمت کاربر» (Client-Side) و در مرورگر وب اجرا میشود.
به طور کلی، کدنویسی زبانهای اسکریپتی آسانتر و سریعتر از زبانهای ساختار یافتهتر و کامپایل شدهای مانند C و ++C انجام میشود. با این حال، ممکن است اجرای یک اسکریپت نسبت به یک برنامه کامپایل شده بیشتر طول بکشد. زیرا هر دستورالعمل در ابتدا به جای پردازش توسط پردازنده دستورالعمل اصلی، از طریق برنامه دیگری مدیریت میشود که انجام این کار هم به دستورالعملهای اضافی نیاز دارد.
اسکریپت گاهی اوقات به معنای فهرستی از دستورالعملهای سیستم عامل است که در یک فایل از قبل ذخیره شدهاند و هر زمان که نام آن فایل به عنوان فرمانی واحد فراخوانی شود، دستورات مربوطه به صورت متوالی توسط مفسر خط فرمان سیستم عامل اجرا میشوند. در برنامههای چند رسانهای (مولتی مدیا)، اسکریپت به معنای دنبالهای از دستورالعملها است که نوشته شدهاند تا چگونگی ارائه یک دنباله چند رسانهای از فایلها (توالی تصاویر و صداها، زمانبندی آنها و نتایج احتمالی تعامل کاربر) را نشان دهند، حال پس از پاسگویی به سوال اسکریپت چیست، به این سوال پرداخته خواهد شد که «آیا اسکریپت حتماً تحت وب است ؟»
آیا اسکریپت حتماً تحت وب است ؟
واژه اسکریپت به طور معمول برای دستهای از زبانهای برنامه نویسی استفاده میشود که تحت وب قابل اجرا هستند و در واقع به معنی دستورالعملهایی است که با استفاده از زبانهای اسکریپتی نوشته شدهاند.
برنامههای نوشته شده با زبانهای اسکریپتی به کامپایل نیاز نداشته و به طور معمول تفسیر میشوند. با توجه به این که این نوع از زبانها بر روی مرورگر قابلیت اجرا دارند ولی کماکان نمیتوان آنها را اسکریپتهای تحت وب دانست، زیرا ممکن است که این اسکریپتها با زبانهای مبتنی بر ویندوز نوشته شده باشند و روی وب قابلیت اجرا نداشته باشند. در ادامه مقاله اسکریپت چیست به شرح کاربردهای این مفهوم در برنامه نویسی پرداخته شده است.
کاربردهای اسکریپت چیست ؟
اسکریپتها برای تولید صفحات وب و خودکارسازی فرآیندهای کامپیوتری استفاده میشوند. همچنین اسکریپتها میتوانند تعداد زیادی کد را که در یک فایل و در یک زمان استفاده میشوند را اجرا کنند. در اسکریپت نویسی، کدها از طریق واژهنامه یا کامپایلر، معمولاً به ترتیبی اجرا میشوند که در فایل اسکریپت نوشته شدهاند. اسکریپت نویسی در موارد زیر کاربرد دارد:
- ساخت بازیها
- اجرای خودکار برنامهها در پسزمینه
- ارسال ایمیل
- حذف دادهها
- ایجاد برنامههای کاربردی وب
همه چیز در رایانه با استفاده از یک زبان نوشته شده و این شیوه کار کامپیوترها از طریق برنامه نویسی است. اسکریپتها با استفاده از زبانهای اسکریپت نویسی ایجاد میشوند. بنابراین برای درک بهتر اینکه اسکریپت چیست ، نیاز است در ادامه به شرح چیستی زبانهای اسکریپت نویسی پرداخته شود.
زبان اسکریپت نویسی چیست ؟
زبان اسکریپت نویسی یا زبان اسکریپتی، نوعی زبان برنامه نویسی برای سیستمهای زمان اجرا به حساب میآید. این نوع زبان، اجرای وظایفی را به عهده میگیرد که در صورت عدم استفاده از آن، باید توسط اپراتور انسانی انجام شوند.
زبان اسکریپت نویسی را میتوان به عنوان «زبان خاص دامنه» (Domain Specific) برای محیطهای خاص در نظر گرفت. در اسکریپت نویسی یک برنامه، زبان اسکریپت نویسی به عنوان «زبان افزونه» (Extension Language) نیز شناخته میشود. زبانهای اسکریپت نویسی گاهی اوقات به علت این که در سطح بالایی از انتزاع (تجرید | Abstraction) عمل میکنند، به عنوان زبانهای برنامه نویسی سطح بالا شناخته میشوند.
در اصل، اصطلاح زبان اسکریپت نویسی معنای وسیعتری دارد و به طور کلی به زبانهای برنامه نویسی سطح بالای پویا اشاره میکند. بعضی از آنها زبانهایی هستند که به طور دقیق تفسیر شدهاند، در حالی که برخی دیگر از نوع کامپایل شده هستند. در این مقاله، واژه اسکریپت به برنامه کوچکی اشاره دارد که به وسیله یک زبان اسکریپت نویسی ایجاد شده است. به طور معمول در برنامه نویسی اسکریپتی فقط یک فایل وجود دارد که در آن بیشتر از چند هزار خط کد قرار نمیگیرد.
زبانهای اسکریپت نویسی، طیفی شامل برنامههای کوچک تا بزرگ و زبانهای خاص دامنه تا زبانهای برنامه نویسی همه منظوره پویا را در بر میگیرد. به عنوان مثال، زبانهای سطح بالا و پویا مانند پایتون، پرل و TCL برای برنامههای کوچک بهکار میروند و دارای کمتر از چند هزار خط کد خواهند بود. همچنین ممکن است که یک زبان برنامه نویسی در ابتدا به صورت یک زبان کوچک و با دامنه کاربردی بسیار محدود توسعه داده شود و سپس به زبانی قابل حمل و همه منظوره ارتقاء یابد. برعکس آن هم امکانپذیر بوده و امکان دارد که یک زبان همه منظوره، بعدها نسخههای خاصی از یک زبان خاص دامنه را توسعه دهد. در ادامه این مقاله، تفاوت زبانهای برنامه نویسی و زبانهای اسکریپت نویسی و کاربردهای آنها ارائه شده است.
تفاوت زبانهای برنامه نویسی با زبانهای اسکریپت نویسی چیست ؟
به طور کلی، همه زبانهای اسکریپت نویسی جزئی از زبانهای برنامه نویسی به حساب میآیند. تفاوت نظری بین زبانهای برنامه نویسی و اسکریپت نویسی در این است که زبانهای اسکریپت نویسی به کامپایل نیازی ندارند و سریعتر تفسیر میشوند. به عنوان مثال، به طور معمول، پیش از اجرای برنامه توسعه داده شده به زبان برنامه نویسی C، باید برنامه کامپایل شود. در حالی که معمولاً یک زبان برنامه نویسی مانند جاوا اسکریپت یا PHP نیازی به کامپایل ندارد.
به طور کلی، اجرای برنامههای کامپایل شده نسبت به برنامههای تفسیری سریعتر است، زیرا کدهای نوشته شده به زبانهای کامپایلری در همان ابتدا به کد زبان ماشین تبدیل میشوند. علاوه بر این، کامپایلرها فقط یک بار کد را خوانده، آن را تجریه و تحلیل کرده و خطاهای احتمالی کد را به صورت یکباره گزارش میکنند. در صورتی که مفسر در هر بار مواجهه با عبارتهای کد، آنها را میخواند، تجزیه و تحلیل میکند و در صورت وجود خطا در همان لحظه متوقف میشود. در عمل، به دلیل بهبود قابلیتهای محاسباتی سختافزارهای مدرن و شیوههای کدنویسی پیشرفته، تمایز بین این دو برنامه مبهم است.
نکته دیگری که باید به آن توجه داشت این است که هنگام طبقهبندی یک زبان به عنوان زبان اسکریپتی یا زبان برنامه نویسی، محیطی که زبان مربوطه در آن اجرا میشود را باید در نظر گرفت. دلیل اهمیت موضوع مطرح شده این است که میتوان با طراحی مفسر برای زبان C، از آن به عنوان یک زبان اسکریپتی استفاده کرد، در عین حال میتوان با طراحی کامپایلری برای جاوا اسکریپت، آن را به عنوان زبانی غیراسکریپتی (زبان کامپایل شده) بهکار برد. برای مثال، V8، موتور جاوا اسکریپت در گوگل کروم است که کدهای جاوا اسکریپت را به جای تفسیر کردن به کدهای زبان ماشین کامپایل میکند. حال که به سوال اسکریپت چیست، زبانهای اسکریپت نویسی و تفاوت آن با زبانهای برنامه نویسی پرداخته شد، برای درک بهتر تفاوت زبانهای اسکریپت نویسی با زبانهای برنامه نویسی، کاربردهای هر یک از این دو نوع زبان در ادامه شرح داده شدهاند.
کاربردهای زبانهای اسکریپت نویسی چه هستند؟
تعدادی از کاربردهای زبانهای اسکریپت نویسی در ادامه این بخش فهرست شدهاند:
- از طریق زبانهای اسکریپت نویسی میتوان انجام کارهای خاصی در برنامه را خودکارسازی کرد. محیطهایی که از طریق اسکریپت نویسی قابلیت خودکار شدن دارند، شامل نرمافزارهای کاربردی، ویرایشگرهای متن، صفحات وب در مرورگر، پوستههای سیستم عامل، سیستمهای تعبیه شده (سامانههای توکار | Embedded Systems) و بازیهای رایانهای هستند.
- به وسیله زبانهای اسکریپتی میتوان استخراج اطلاعات از مجموعه دادهها را انجام داد.
- در مقایسه با زبانهای برنامه نویسی سنتی، حجم کدهای زبانهای اسکریپت نویسی بیشتر است.
کاربردهای زبانهای برنامه نویسی کدامند؟
برخی از کاربردهای مهم زبانهای برنامه نویسی عبارتند از:
- آنها به طور معمول در برنامهای والد مانند اسکریپتها اجرا میشوند.
- این زبانها در ادغام کد با مدلهای ریاضی سازگاری بیشتری دارند.
- زبانهایی مانند JAVA را میتوان کامپایل کرد و سپس در هر پلتفرمی استفاده کرد.
در ادامه این مقاله آموزشی به بیان مزایا و معایب اسکریپتها پرداخته شده است.
مزایای اسکریپتها
برخی از برتریهای کلیدی اسکریپتها در ادامه فهرست شدهاند:
- اسکریپتها منبع باز (Open Source) هستند و این امکان را برای کاربران فراهم میکنند تا در صورت نیاز اسکریپت را مشاهده و ویرایش کنند.
- نیازی به کامپایل شدن فایل در آنها وجود ندارد؛ اما در صورت لزوم، ممکن است گاهی کامپایل شوند.
- یادگیری و نوشتن اسکریپتها آسان است.
- اسکریپتها بین سیستم عاملهای مختلف به راحتی انتقال پیدا میکنند.
- نسبت به برنامههای واقعی بسیار سریعتر توسعه داده میشوند و بعضی از افراد و شرکتها، اسکریپتها را به عنوان نمونه اولیه (Prototype) برای برنامههای واقعی به کار میبرند.
معایب اسکریپتها
برخی از معایب اسکریپتها به شرح زیر است:
- منبع باز بودن آنها به دیگران اجازه میدهد تا کد منبع را مشاهده کنند که ممکن است توسط برخی شرکتها ممنوع باشد.
- پیش از اجرای اسکریپت، کاربر ملزم به نصب یک مفسر یا برنامه جداگانه است.
- در برخی شرایط، ممکن است اسکریپتها کندتر از یک برنامه کامپایل شده باشند.
معرفی فیلمهای آموزش برنامه نویسی
دورههای آموزشی زبان برنامه نویسی تم آف شامل زبانهای برنامه نویسی تحت وب، زبانهای برنامه نویسی برای اپلیکشنهای موبایل، زبانهای تحت ویندوز و زبانهای همه منظوره است. در زمان انتشار این مطلب آموزشی، مجموعه آموزش برنامه نویسی تم آف شامل ۴۸ دوره آموزشی مجموعاً حاوی ۴۳۶ ساعت محتوای آموزش ویدیویی است و زبانهای برنامه نویسی مختلفی در سطوح مقدماتی، تکمیلی و پیشرفته در این مجموعه ارائه شدهاند. در این دورههای آموزشی علاوه بر آموزش مبانی و دستورات برنامه نویسی به حل مثالهایی برای آموزش بهتر و کاربردیتر پرداخته شده است.
این مجموعه آموزشی برای افرادی مناسب است که مایل هستند در حوزههای برنامه نویسی و ساخت اپلیکیشن، طراحی سایت و سایر حوزهها وارد بازارکار شوند. از جمله دورههای این مجموعه میتوان به دوره آموزش برنامه نویسی پایتون Python (در سطوح مقدماتی، شی گرایی، آموزشهای پروژه محور و کاربردی، کتابخانههای پایتون و سایر موارد)، آموزش زبان برنامه نویسی PHP، آموزش اندروید (Android)، آموزش زبان برنامه نویسی متلب و زبانهای برنامه نویسی دیگر اشاره کرد.
- برای دیدن مجموعه فیلم آموزش برنامه نویسی + اینجا کلیک کنید.
مثالهایی از زبانهای اسکریپت نویسی
تا این بخش از مقاله، پس از پاسخ به این سوال که اسکریپت چیست به مزایا و معایب آن، تفاوتهای اسکریپت نویسی با زبانهای برنامه نویسی و کاربردهای آنها پرداخته شد.
اکنون در ادامه این مطلب آموزشی، مثالهایی از زبانهای اسکریپت نویسی به همراه توضیحی کوتاه و مختصر از کاربردهای آنها ارائه شده است:
- Bash Scripting: اسکریپت نویسی بَش، زبان اسکریپت نویسی تفسیر شدهای است که در سیستم عاملها و محیطهایی مشابه یونیکس (Unix) و شبه یونیکس (Unix-like) بهکار میرود.
- PowerShell: زبان اسکریپت نویسی توسعه داده شده برای استفاده در سیستم عاملهای ویندوز است.
- Sed و AWK: زبانهای پردازش متنی هستند که عمدتاً در محیطهای شبه یونیکس استفاده میشوند.
- پرل: یکی از زبانهای پردازش متن است که بعدها به زبانی همه منظوره تبدیل شد و به عنوان زبان افزونه برای برنامههای کاربردی مختلف بهکار گرفته میشود.
- Python: زبان اسکریپت نویسی همه منظوره است که به عنوان یک زبان افزونهای نیز به حساب میآید.
- Tcl: زبان اسکریپت نویسی برای محیطهای شبه یونیکس بوده که در دهه 1990 برای ایجاد برنامههای رابط کاربری گرافیکی (GUI) محبوب بود.
- JavaScript: جاوا اسکریپت (بعدها: ECMAScript)، زبانی بسیار خاص دامنه و سبکی است که در مرورگر وب اجرا میشود. این زبان قابلیت تغییرات پویا صفحه وب را امکانپذیر میکند و بعدها به زبان برنامه نویسی همه منظوره قابل حمل تبدیل شد.
- Kotlin: با وجود این که کاتلین زبانی کامپایل شده است، اما از REPL و اسکریپت نویسی پشتیبانی میکند (مانند اسکریپتهای ساخت Gradle).
- ویژوال بیسیک برای برنامههای کاربردی: زبانی افزونهای است که به طور ویژه برای برنامههای کاربردی مایکروسافت آفیس ایجاد شده است.
- Lua: زبانی است که به طور کلی برای استفاده به عنوان زبان افزونهای برای برنامههای کاربردی طراحی شده است و به همین دلیل بسیاری از برنامههای کاربردی مختلف از آن استفاده میکنند.
- Lisp: خانوادهای از زبانهای همه منظوره و زبانهای افزونهای برای برنامههای کاربردی خاص به حساب میآید. به عنوان مثال میتوان به Emacs Lisp، برای ویرایشگر Emacs اشاره کرد.
در ادامه این مطلب آموزشی به مشخصات زبانهای اسکریپت نویسی پرداخته شده و قطعه کدهایی در زبانهای برنامه نویسی جاوا و زبان پایتون آمده است.
مشخصات زبان های اسکریپت نویسی
زبانهای اسکریپت نویسی متداول با این هدف خلق شدهاند که یادگیری آنها آسان باشد و به راحتی بتوان با آنها برنامه نویسی کرد. این برنامه نویسی میتواند به صورت فایلهایی با کدهای منبع کوتاه یا به صورت پویا در قالب REPL (تعاملی سطح بالا | پوسته زبان) انجام شود. این مسئله نشان دهنده سادگی سینتکس (نحو) و معناشناسی است. معمولاً یک اسکریپت از ابتدا تا انتها بدون نیاز به نقطه ورودی خاصی اجرا (Entry point) میشود. برای شروع اجرای یک برنامه، بارگذار یا سیستم عامل، کنترل را به نقطه ورودی آن منتقل میکند. در حالی که برای برخی دیگر از سیستم عاملها و زبانهای برنامه نویسی، نقطه ورود در یک کتابخانه، زمان اجرای آن است.
30 تمرین جاوا اسکریپت با راه حل + معرفی سایت های تمرینی
برای مثال، شناسایی جاوا به عنوان یک زبان اسکریپت نویسی چندان رایج نیست. دلیل این مسئله این است که سینتکس و قوانین جاوا در خصوص این که کدام کلاسها در کدام فایلها قرار دارند، طولانی و پیچیده است. همچنین این امکان مستقیماً وجود ندارد که جاوا به صورت تعاملی اجرا شود، زیرا فایلهای منبع تنها میتوانند شامل اعلانهایی باشند که باید به صورت خارجی توسط یک اپلیکیشن میزبان یا یک اجرا کننده اپلیکیشن فراخوانی شوند.
public class HelloWorld {
public void printHelloWorld() {
System.out.println("Hello World");
}
}
قطعه کد مطرح شده در بالا برای چاپ «Hello World»، هیچ کاری انجام نمیدهد. زیرا ()main در کلاس HelloWorld تعریف نشده است. در ادامه کد اصلاح شده آورده شده است:
public class HelloWorld {
public void printHelloWorld() {
System.out.println("Hello World");
}
public static void main(String[] args) {
printHelloWorld();
}
}
در مثال بالا main تعریف شده است، بنابراین میتوان آن را توسط راهانداز فراخوانی کرد، اگرچه هنوز هم نمیتوان آن را به صورت تعاملی اجرا کرد. بر خلاف آن، پایتون اجازه میدهد که برخی از توابع در یک فایل تعریف شوند یا به طور کلی از تعریف توابع اجتناب کنند. همچنین Python این قابلیت را دارا است که در آن از سبک برنامه نویسی دستوری (Imperative Programming) استفاده شود یا حتی از آن به صورت تعاملی استفاده کنند. کد زیر به زبان برنامه نویسی پایتون نوشته شده است:
print("Hello World")
print "Hello World" # Python 2.7 or earlier
این یک خط کد پایتون، عبارت «Hello World» را چاپ میکند و در اینجا عبارت main() هم مورد نیاز نیست.
نحوه تفسیر زبان های اسکریپتی
زبان اسکریپت نویسی به طور معمول از طریق کد منبع یا بایت کد تفسیر (Interpret) میشود. بر عکس آن، محیط نرمافزاری (مفسر) که اسکریپتها برای آن نوشته میشوند، معمولاً با یک زبان کامپایل شده نوشته شدهاند و به شکل کد ماشین توزیع میشوند.
تفاوت کامپایلر و مفسر چیست ؟ — از کاربرد تا مزایا و معایب
ممکن است زبانهای اسکریپت نویسی برای استفاده کاربران نهایی یک برنامه یا فقط برای استفاده داخلی توسعهدهندگان آن طراحی شده باشند. بنابراین آنها میتوانند بخشهایی از برنامه را در زبان اسکریپت نویسی بنویسند. زبانهای اسکریپت نویسی به طور معمول از تجرید (شیوهای از پنهانسازی اطلاعات) استفاده میکنند تا کاربران را از جزئیات انواع متغیرهای داخلی، ذخیرهسازی دادهها و مدیریت حافظه راحت کنند.
اسکریپتها اغلب توسط شخصی ایجاد یا اصلاح شدهاند که آنها را اجرا میکنند، اما اغلب اوقات اسکریپتها توزیع میشوند. مانند زمانی که بخشهای بزرگی از بازیها در زبان اسکریپت نویسی نوشته شدهاند که مثالی ویژه برای آن بازی Google Chrome T-rex است.
انواع زبانهای اسکریپتی کدامند؟
در این بخش از مطلب آموزشی به انواع زبانهای اسکریپت نویسی و تفاوت مهم آنها پرداخته شده است. دو نوع زبان اسکریپت نویسی وجود دارد:
- زبانهای اسکریپت نویسی سمت سرور (Server Side)
- زبانهای اسکریپت نویسی سمت کاربر (Client Side)
تنها تفاوت مهم بین این دو زبان اسکریپت نویسی، این است که زبانهای سمت سرور برای پردازش خود به سرور نیاز دارند، اما زبانهای برنامه نویسی سمت کاربر روی مرورگر وب اجرا میشوند.
زبانهای اسکریپت نویسی سمت سرور شامل زبانهای جاوا اسکریپت، PHP، پرل و زبانهای دیگر میشود. زبانهایی مانند جاوا اسکریپت، AJAX ،JQuery نیز جزء زبانهای اسکریپتی سمت کاربر محسوب میشوند. همچنین لازم به ذکر است که زبانهای اسکریپتی در مدیریت سیستم نیز کاربرد دارند و اسکریپتهای Shell، پرل، پایتون و غیره در این دسته از اسکریپتها جای دارند. علاوه بر این، زبانهای اسکریپت نویسی را میتوان به چندین نوع مختلف دیگر نیز دستهبندی کرد که همپوشانی قابلتوجهی بین انواع آن وجود دارد. در ادامه این بخش از مطلب آموزشی اسکریپت چیست به توضیح انواع این زبانها به همراه مزایا و نمونههایی از آنها پرداخته شده است.
زبان برنامه نویسی Glue چیست ؟
«زبانهای چسبی» یا Glue Languages که به آنها «زبانهای چسبنده» نیز گفته میشود، به طور ویژه، زبانهای برنامه نویسی Glue در مواردی کاربرد دارند که نیاز است برای ساخت یک برنامه کاربردی، مولفههای نوشته شده در زبانهای برنامه نویسی مختلف با یکدیگر ترکیب شوند. در دیدگاه دوگانگی اوستر هوت (Ousterhout)، اسکریپت نویسی به شدت متضاد برنامه نویسی سیستم است. در این دیدگاه، اسکریپت نویسی کدی چسبنده به حساب میآید؛ اتصال مولفههای نرمافزار و زبان مخصوص برای این منظور هم جزء زبانهای چسبنده محسوب میشوند. خط لولهها (Pipelines) و اسکریپت نویسی پوسته نیز نمونههای اولیه زبانهای چسبی هستند، پرل هم در ابتدا برای ایفای همین نقش توسعه یافته بود. همچنین توسعه وب به عنوان رابطی بین پایگاه داده و وب سرور را میتوان کاربردی از زبانهای چسبنده در نظر گرفت.
مزایای زبانهای چسبنده
زبانهای چسبی به ویژه برای نوشتن و نگهداری مفید هستند. سایر مزایای زبانهای چسبنده در ادامه فهرست شدهاند:
- از طریق آنها میتوان دستورات سفارشی مناسبی برای پوسته فرمان نوشت.
- برنامههای کوچکتر بهتر از برنامههای یک زبان کامپایل شده، پیادهسازی میشوند.
- برنامههای “wrapper” برای فایلهای اجرایی، مانند فایل بچ استفاده میشوند که فایلها را جابهجا یا دستکاری میکند و کارهای دیگری را قبل یا بعد از اجرای برنامه با سیستم عامل انجام میدهند. واژهپرداز، صفحهگسترده (Spreadsheet)، پایگاه داده، اسمبلر، کامپایلر و سایر موارد نیز جزء این دسته محسوب میشوند.
- این نوع زبانها برای اسکریپتهایی که ممکن است تغییر کنند نیز بسیار مناسب هستند.
- توسعه سریع نرمافزار در یک راهکار در نهایت در زبان دیگری پیادهسازی میشود که این زبان به طور معمول کامپایل شده (Compiled) است.
نمونههایی از زبانهای Glue
در ادامه این مطلب آموزشی، تعدادی از زبانهای چسبنده پر کاربرد مطرح شدهاند:
- AppleScript
- Erlang
- Python
- Ruby
- Tcl
- اسکریپتهای (ksh, csh, bash, sh and others) Unix Shell
- Unix Shell
- Julia
- JScript and JavaScript
زبانهای ویرایشگر
بعضی از ویرایشگرهای متن از ماکروهایی پشتیبانی میکنند که با زبان ماکروی ساخته شده در ادیتور نوشته شدهاند، به عنوان مثال، ادیتورهای vi ،SemWare Editor (TSE) بهبود یافته (VIM) از این دسته هستند. تعدادی از ادیتورها مانند XEDIT با استفاده از پیادهسازی خارجی پشتیبانی را انجام داده و ادیتورهای دیگری مانند KEDIT نیز وجود دارند که هم از ماکروهایی که با زبان ماکرو ساخته شده در ادیتور و هم از پیادهسازی خارجی پشتیبانی میکنند.
گاهی اوقات از ویرایشگرهای متن و ماکروهای ویرایشی به عنوان بستری برای ارائه برنامههای کاربردی دیگر استفاده میشود که FILELIST و RDRLIST در CMS از همین نمونه هستند. به این نوع از زبانها، زبانهای ویرایشگر یا «Editor Languages» گفته میشود.
Vim چیست ؟ – معرفی ویرایشگر ویم و آموزش دستورات به زبان ساده
زبانهای کنترل وظیفه و پوستههای سیستم عامل
دسته عمدهای از زبانهای اسکریپت نویسی که به راهاندازی و کنترل رفتار برنامههای سیستم مربوط میشوند، برای خودکار کردن کنترل وظیفه توسعه داده شدهاند، به این زبانها، زبانهای کنترل وظیفه و پوستههای سیستم عامل (Job control languages and shells) گفته میشود. به همین علت، ممکن است پوستههایی را که دقیقاً برای همین منظور استفاده میشوند، توسعه داده شده توسط IBM شرکت JCL یا زبانی برای کنترل کردن وظیفه دانست.
سیستم عامل چیست ؟ — به زبان ساده — اهدف وظایف و کاربرد
بسیاری از مفسرهای این زبانها به عنوان مفسرهای خط فرمان مانند پوسته یونیکس یا MS-DOS COMMAND.COM عمل میکنند. برخی دیگر مانند AppleScript بهکارگیری دستورات شبه انگلیسی را برای ساخت اسکریپتها عرضه میکنند.
اسکریپت نویسی رابط کاربری گرافیکی
اسکریپت نویسی رابط کاربری گرافیکی (GUI Scripting) به نوعی زبان اسکریپت نویسی اختصاصی گفته میشود که با پیدایش رابطهای کاربری گرافیکی برای کنترل کامپیوتر به وجود آمدند. این زبانها با همان پنجرههای گرافیکی، منوها، دکمهها و ابزارهای دیگری کار میکنند که کاربر انسانی با آنها سر و کار دارد.
آنها این کار را با شبیهسازی فعالیتهای یک کاربر انجام میدهند. این زبانها معمولاً برای خودکارسازی فعالیتهای تکراری کاربر استفاده میشوند. زبانهایی که کنترل را از طریق فشردن کلیدها یا کلیکهای ماوس و همچنین ضربه زدن یا فشار دادن روی صفحه لمسی شبیهسازی میکنند، زبانهای «ماکرو» نامیده میشوند.
هنگامی که GUI رابطهای مناسبی مانند IBM Workplace Shell فراهم میکند، یک زبان برنامه نویسی همگانی (Generic) مانند OREXX، میتواند برای نوشتن اسکریپتهای رابط کاربری گرافیکی استفاده شود.
زبانهای خاص کاربرد
زبانهای خاص برنامه (Application-Specific Languages) یا همان زبان خاص دامنه (DSL | Domain Specific Language) زبانی تخصصی است که از کلمات دامنه خاصی استفاده میکند. زبانهای خاص دامنه را میتوان به دستههای مختلفی تقسیم کرد که در ادامه این مطلب آموزشی به بعضی از آنها پرداخته شده است:
زبانهای برنامههای خودکفا (قابل اجرا) یا زبانهای خاص دامنه داخلی (پستاسکریپت (PostScript)، XML ،GScript به عنوان برخی از اسکریپتهای توزیع شده به ترتیب توسط MS ،Adobe و Google پیادهسازی شدهاند.) در بین زبانهای دیگر شامل زبان اسکریپتی ساده و روان مناسبی برای نیازهای کاربر برنامه است.
به همین ترتیب، بسیاری از سیستمهای بازی رایانهای از یک زبان اسکریپت نویسی سفارشی برای نشان دادن حرکات برنامه ریزی شده کاراکترهای غیربازیکن و محیط بازی استفاده میکنند.
زبانهای افزونه/توکار
تعدادی از زبانها با هدف جایگزینی زبانهای اسکریپت نویسی خاص دامنه با قابلیت جاسازی (تعبیهپذیری | Embeddable) در برنامههای کاربردی طراحی شدهاند که به این زبانها، «زبانهای توسعه یافته/توکار» یا (Extension/embeddable languages) گفته میشود. برنامه نویس نرمافزار «قلابهایی» (Hook) را در کد نویسی قرار میدهد که زبان اسکریپت نویسی میتواند برنامه را کنترل کند. هوکها، کد ماشینی هستند که در یک ماژول از سیستم عامل جای داده شده تا به روالی که وظیفهای اضافی انجام میدهد، کنترل را انتقال دهند و در محلی متفاوت از ماژول اصلی ذخیره کنند.
ممکن است که از نظر فنی این زبانها معادل یک زبان افزونهای خاص دامنه باشند، اما زمانی که نرمافزاری در ساختار خود، زبان «متداولی (Common)» بهکار برده باشد، برای کاربر این مزیت وجود دارد که مهارتها را از نرمافزاری به نرمافزار دیگر منتقل کند. علاوه بر آن، آماده کردن کتابخانهای (اغلب اوقات کتابخانه C) که زبان همه منظوره بتواند از آن برای کنترل برنامه استفاده کند، بدون این که زبان را برای دامنه خاصی تغییر دهد، به سادگی امکانپذیر است.
جاوا اسکریپت در ابتدا به عنوان زبانی برای اسکریپت نویسی در مرورگرهای وب معرفی شد و هنوز هم در درجه اول زبانهای اسکریپت نویسی فرانتاند قرار دارد. سپس جاوا اسکریپ استانداردسازی شد و به عنوان زبان تعبیهپذیر همه منظوره ECMAScript محبوب شد. Tcl نیز به عنوان زبانی افزونهای ایجاد شد اما بیشتر به عنوان یک زبان همه منظوره مشابه Python، Perl و Ruby استفاده میشود.
در این مقاله آموزشی به مفاهیم اسکریپت چیست، مزایا و معایب اسکریپت و تفاوت آن با زبانهای برنامه نویسی، انواع زبانهای اسکریپت نویسی مانند زبان برنامه نویسی Glue، و مزایای این زبان برنامه نویسی و نمونههایی از این زبان، زبانهای ویرایشگر، زبانهای کنترل وظیفه و پوستههای سیستم عامل، اسکریپت نویسی رابط کاربری گرافیکی، زبانهای خاص کاربرد و زبانهای توسعه یافته/توکار پرداخته شد. در ادامه این مطلب آموزشی، آشنایی با اسکریپت در زبانهای برنامه نویسی مختلفی مانند اسکریپت در اسکرچ، اسکریپت در PHP، اسکریپت در Python به همراه مثال ارائه شده است.
اسکریپت در اسکرچ چیست ؟
برای آشنایی با مفهوم اسکریپت در Scratch، در ادامه این مقاله آموزشی به صورت مختصر به معرفی زبان برنامه نویسی اسکرچ پرداخته شده است. اسکرچ یک ابزار برنامه نویسی رویداد محور و بصری (Visual) بوده که با هدف ایجاد بازیها، برنامههای بصری و داستانهای تعاملی با استفاده از بلاکهای پیشساخته توسعه یافته است.
برای ایجاد یک برنامه در Scratch نیازی به نوشتن کد برای انجام عملیات نیست و عملیات فقط با کشیدن و رها کردن (Drag and Drop) بلاکها انجام میشود که به ویژوال بیسیک تشابه دارد.
اسکریپت در اسکرچ به معنی مجموعهای از دستورالعملها است که در برنامه نویسی اسکرچ استفاده میشود. این اسکریپتها پشته یا مجموعهای از بلاکها هستند که به یکدیگر متصل شدهاند. بلاکهای دستورالعملها به خوبی برای انجام کاری خاص مرتب شدهاند، زیرا تعاملهای اسپرایتها (Sprites) را مشخص میکنند. اسپرایت در اسکرچ، کاراکتر یا شی اصلی برنامه یا عنصر گرافیکی است که تمام فعالیتهای مطرح شده در اسکریپت را انجام میدهد. در ادامه این مقاله آموزشی برای آشنایی با ساخت اسکریپت در اسکرچ، مثالی از ساخت برنامه اسکرچ برای حرکت 30 درجه لوگو در جهت عقربههای ساعت آورده شده است.
مثالی برای ساخت اسکریپت در اسکرچ
در ادامه مراحلی را برای ساخت اسکریپت در اسکرچ دنبال میکنیم.
- در گام اول نیاز است که ویرایشگر اسکرچ باز شود.
- حال باید بلاک «when space key pressed» از بلاک رویداد روی اسکریپت کشیده شود.
- اکنون نیاز است که بلاک «forever» را از بلاک رویداد کشیده و زیر بلاک «when space key pressed» گذاشته شود.
- سپس باید بلاک «wait» از بلاک رویداد آورده شده و زیر بلاک «forever» قرار داده شود.
- در این گام نیاز است بلاک «turn degrees» را از بلوک حرکتی کشیده و زیر بلاک “wait” قرار داد. اکنون مقدار از 15 به 30 درجه در جهت عقربههای ساعت تغییر داده میشود.
- حالا نیاز است که اسکریپت اجرا شود.
نتیجه اجرای مثال اسکریپت در اسکرچ مطرح شده فوق، به صورت زیر است:
اسکریپت در PHP چیست ؟
به طور کلی، برای تعریف کدهایی که به کامپایل صریح نیازی ندارند، از اصطلاح زبان اسکریپت نویسی استفاده میشود. PHP یکی از زبانهایی است که نیازی به کامپایل صریح ندارد، بنابراین هر فایلی که به زبان PHP نوشته میشود، اسکریپت PHP نامیده میشود.
به طور کلی، یک اسکریپت در PHP از تعدادی خط کد تشکیل شده که در داخل و اطراف یک هدف ریشه از قبل ساخته شده، دارای برخی پارامترهای ورودی است که کمی خروجی نهایی را تغییر میدهند.
در PHP، ممکن است در پروژه، یک اسکریپت اصلی (Main) یا بخشهای زیادی وجود داشته باشد، لازم به ذکر است که مرز خاصی برای مشخص کردن اسکریپت وجود ندارد. حتی ممکن است که اسکریپتهای دیگری از اسکریپت فعلی فراخوانی شوند.
PHP ویژگیهای اسکریپتهای
در این بخش از مقاله به بیان ویژگیهای اسکریپتهای PHP پرداخته شده و مثالی برای اسکریپت نویسی در PHP آورده شده است.
- اسکریپت PHP میتواند در هر جایی از سند قرار بگیرد.
- اسکریپتهای آن با عبارت php?> شروع میشوند و با به پایان میرسند. در بخش زیر، قطعه کد آن جهت نمونه آورده شده است:
- پسوند فایل پیش فرض برای فایلهای پیاچپی به صورت «.php» است.
- فایل PHP معمولاً شامل تگهای HTML و تعدادی خط کد زبان PHP است.
در بخش زیر، نمونهای از فایل PHP ساده با اسکریپت PHP آورده شده که از تابع داخلی «echo» برای خروجی متن «Hello World!» در صفحه وب استفاده میکند:
My first PHP page
اسکریپت در Python چیست ؟
اسکریپت در پایتون به معنی مجموعهای از دستورات است که در یک فایل طراحی شدهاند تا مانند یک برنامه اجرا شوند. البته این فایل میتواند حاوی توابع باشد و ماژولهای مختلفی را وارد (Import) کند. اما ایده این است که اسکریپت از خط فرمان یا از پوسته تعاملی پایتون برای انجام کار خاصی اجرا یا نمایش داده شود.
اسکریپت زیر جهت نمونه مطرح شده است:
import numpy as np
def f(x):
"""
A quadratic function.
"""
y = x**2 + 1.
return y
print " x f(x)"
for x in np.linspace(0,4,3):
print "%8.3f %8.3f" % (x, f(x))
بخش اصلی برنامه با عبارت print شروع میشود. راههای مختلفی برای اجرای اسکریپتهای پایتون وجود دارد و در روش زیر نحوه اجرای آن در پایتون آمده است:
>>> execfile("script1.py")
حال پس از آشنایی با مفهوم اسکریپت در زبانهای اسکریپت نویسی مختلف، در بخش پایانی مقاله اسکریپت چیست به معرفی دورههای آموزشی تم آف پرداخته شده که با حوزه این مقاله آموزشی مرتبط هستند.
معرفی فیلمهای آموزشی برنامه نویسی
در سایت تم آف آموزشهای متعددی به خصوص در حوزه برنامه نویسی ارائه شده است. در پایان مقاله آموزشی اسکریپت چیست به معرفی تعدادی از دورههای آموزش برنامه نویسی موجود در سایت تم آف پرداخته شده است.
فیلم آموزش برنامه نویسی پایتون Python – مقدماتی
در این مقاله پس از پاسخ به این سوال که اسکریپت چیست ، به زبان برنامه نویسی پایتون به عنوان یک زبان اسکریپت نویسی اشاره شد. با توجه به این که آموزش این زبان برنامه نویسی مهم در این مطلب ممکن نیست و این زبان برنامه نویسی، زبانی قدرتمند، سطح بالا و همه منظوره است، استفاده از دوره آموزش پایتون تم آف پیشنهاد میشود. طول مدت این تم آف به صورت تقریبی، 20 ساعت و مدرس آن مهندس پژمان اقبالی شمس آبادی است. همچنین بخشهای شی گرایی و مثالهای کاربردی برای این زبان نیز در آموزشهای دیگر موجود در سایت در دسترس هستند. این دوره آموزشی به 5 درس تقسیمبندی شده و مباحث آشنایی با پایتون، ساختمان داده در پایتون، توابع و ماژولها، مبحث کلاس و خواندن و نوشتن فایلها را شامل میشود.
- برای مشاهده فیلم آموزش برنامه نویسی پایتون Python – مقدماتی + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی پی اچ پی PHP
زبان برنامه نویسی PHP زبانی سمت سرور است که در طراحی وبسایتهای پویا (Dynamic) بسیار کاربرد دارد و سیستمهای مدیریت محتوای زیادی مانند وردپرس، جوملا و سایر موارد توسط آن پیادهسازی شدهاند. با توجه به اهمیت و کاربردهای PHP، استفاده از این دوره آموزشی پیشنهاد میشود. مدت زمان این تم آف به صورت تقریبی، 29 ساعت و مدرس آن دکتر سید مصطفی کلامی هریس است. این دوره آموزشی در 30 درس مباحثی مانند دستورات پایهای برنامه نویسی PHP، توابع و مقدمهای بر برنامه نویسی ماژولار، پایگاه داده مبتنی بر فایل با FlintStone، پیادهسازی یک برنامه محاسبات آماری و مدیریت پایگاه داده با MySQL و phpMyAdmin، پروژهها و کتابخانههای دیگر را نیز شامل میشود.
- برای مشاهده فیلم آموزش برنامه نویسی پی اچ پی PHP + اینجا کلیک کنید.
فیلم آموزش جاوا اسکریپت JavaScript
همانطور که در این مقاله آموزشی نیز ذکر شد، جاوا اسکریپت یکی از زبانهای مفسری در سمت کلاینت است که از طریق آن میتوان عناصر HTML موجود در سایت و مقادیر CSS آنها را تغییر داد و همچنین دادههای دریافتی از سمت کاربر را اعتبارسنجی کرد. با توجه به این که جاوا اسکریپت یکی از مهمترین و ضروریترین فناوریهای برنامه نویسی وب به حساب میآید، میتوان گفت یادگیری آن برای افرادی که قصد فعالیت به عنوان برنامه نویس وب را دارند، امری الزامی تلقی میشود. دوره آموزش جاوا اسکریپت تم آف میتوان نقطه شروع مناسبی برای یادگیری جاوا اسکریپت محسوب شود. مدت زمان این تم آف به صورت تقریبی، 9 ساعت و مدرس آن مهندس محمد عبداللهی است. این آموزش در قالب 23 فصل، به بیان مقدمات جاوا اسکریپت، دستورات و ساختارهای کنترلی، رویدادها، اشیاء جاوا اسکریپت و تمرینهای کاربردی و مباحث دیگری میپردازد.
- برای مشاهده فیلم آموزش جاوا اسکریپت (JavaScript) + اینجا کلیک کنید.
فیلم آموزش مقدماتی زبان برنامه نویسی پرل Perl
زبان پرل، زبان برنامه نویسی سطح بالا، مفسری و همه منظوره است. این زبان متن باز بوده و در زمینههای مختلفی مانند نوشتن اکسپلویت و کدهای تخریب توسط هکرها استفاده میشود. همچنین با توجه به قابلیت آن در پردازش متن و تطبیق الگو، برای نوشتن CGI نیز بهکار برده میشود. با توجه به اهمیت این زبان برنامه نویسی، مشاهده این تم آف پیشنهاد میشود. مدت زمان این تم آف به صورت تقریبی، 3 ساعت و مدرس آن علی دژبرد است. این دوره آموزشی در قالب 16 فصل به مباحث پایهای برای زبان پرل، دستورات حلقه، جملات شرطی و نحوه نوشتن آنها در زبان پرل میپردازد. علاوه بر این سایر سرفصلهای این دوره شامل: مثالهای کاربردی، کدنویسی و نحوه رفع خطاهای کدنویسی و کار با نرمافزار است.
- برای مشاهده فیلم آموزش مقدماتی زبان برنامه نویسی پرل Perl + اینجا کلیک کنید.
جمعبندی
زبانهای اسکریپتی زبانهای مفسری هستند که به طور معمول همزمان تفسیر و اجرا میشوند. میتوان گفت که زبانهای اسکریپت نویسی زیر مجموعهای از زبان برنامه نویسی مادر خود هستند که به آنها شبیه بوده ولی تمام ویژگیهای آنها را ندارند. در این مقاله آموزشی به مباحثی مانند اسکریپت چیست ، کاربردهای اسکریپت و مزایا و معایب آن، تفاوت زبانهای برنامه نویسی با زبانهای اسکریپت نویسی، انواع زبانهای اسکریپت نویسی و مفهوم اسکریپت در زبانهایی مانند Python ،PHP و Scratch پرداخته شد.