زبان برنامه نویسی چیست؟
زبان برنامه نویسی نوعی زبان برنامه نویسی است که در آن دستورالعمل ها به صورت جداگانه در تفسیر می شوند زمان اجرا. با زبان های برنامه نویسی مرسوم تر مانند درجه سانتی گراد و C++، کد به طور کامل از قبل کامپایل شده است. زبانهای اسکریپت رویکرد بسیار سادهتری دارند که یادگیری آنها را آسانتر و کدنویسی سریعتر میکند. با این حال، آنها به اندازه زبانهای متعارف ساختاریافتهتر پایدار یا کارآمد نیستند.
تفاوت بین زبان های برنامه نویسی و برنامه نویسی چیست؟
زبانهای اسکریپت اغلب با زبانهای برنامهنویسی مقایسه میشوند که گویی طرف مقابل یک سکه هستند. با این حال، زبان های برنامه نویسی در واقع زیرمجموعه ای از زبان های برنامه نویسی هستند. همه زبان های برنامه نویسی زبان های برنامه نویسی هستند، اما همه زبان های برنامه نویسی زبان برنامه نویسی نیستند. اغلب، چنین مقایسههایی برای تمایز زبانهای برنامهنویسی از زبانهای برنامهنویسی معمولی انجام میشود.
با زبان های متعارف، کد برنامه قبل از اجرا به طور کامل تهیه می شود. اگرچه زبانها از روشهای متفاوتی برای تهیه کد برای پردازش استفاده میکنند، اما معمولاً با کد منبع قابل خواندن توسط انسان شروع میکنند، آن را به کد سطح پایینتر کامپایل میکنند و در نهایت آن را به کد تبدیل میکنند. کد ماشین. کد ماشین مختص معماری پلتفرمی است که روی آن اجرا می شود. کد ماشین گاهی اوقات به پردازنده در قالب یک فایل اجرایی. علاوه بر کامپایلر، فرآیند آماده سازی ممکن است شامل یک اسمبلر، یک لینکر، کد بایت مترجم یا اجزای دیگر
برخلاف رویکرد توسعه مرسوم، زبان های برنامه نویسی معمولاً در زمان اجرا به مترجم منتقل می شوند. مترجم تبدیل می کند سناریو به کد ماشین وارد شده و آن را به پردازنده ارسال می کند. اسکریپت به شکل اصلی قابل خواندن توسط انسان باقی می ماند در حالی که مترجم دستورالعمل ها را تبدیل کرده و آنها را برای پردازش می فرستد.
شکل زیر یک نمای کلی از نحوه مقایسه زبان های برنامه نویسی معمولی با زبان های برنامه نویسی در هنگام تهیه کد ماشین ارائه می دهد. کد معمولی ابتدا به کامپایلرکه آن را به کد شی، کد اسمبلی یا کد میانی مانند بایت کد. اگر دومی باشد، کد به یک مفسر زمان اجرا ارسال می شود.
همانطور که در شکل نشان داده شده است، زبان های برنامه نویسی معمولی رویکردهای متفاوتی برای تهیه کد دارند. اگر زبان معمولی باشد، مانند C یا C++، ابتدا کد برای تبدیل اولیه به کامپایلر ارسال می شود. کامپایلر یا آن را به کد شی تبدیل می کند و به لینک دهنده می فرستد یا آن را به کد اسمبلی تبدیل می کند و به اسمبلر می دهد. سپس اسمبلر آن را به کد شی تبدیل می کند و به لینک کننده می فرستد که کد اجرایی را تولید می کند.
با این حال، همه زبان های مرسوم از این رویکردها پیروی نمی کنند. اگر زبان مانند مثال است جاوا یا C#، کامپایلر کد را به یک زبان میانی تبدیل می کند که در زمان اجرا به یک مترجم مبتنی بر ماشین مجازی ارسال می شود. سپس مفسر کد ماشین را تولید کرده و به پردازنده ارسال می کند.
اینها تنها راه هایی نیستند که زبان های برنامه نویسی مرسوم از طریق آنها کامپایل و به کد ماشین ترجمه می شوند. با این حال، روش های نشان داده شده در شکل به نشان دادن تفاوت این زبان ها با زبان های برنامه نویسی کمک می کند. یک زبان برنامه نویسی مانند پایتون یا پیش پردازشگر فرامتن (PHP، تا زمان اجرا به صورت خام باقی می ماند و پس از آن به مترجم ارسال می شود. مترجم تفسیر می کند دستورات یکی در یک زمان، آنها را به کد ماشین تبدیل می کند که می تواند توسط پردازنده استفاده شود.
از آنجایی که زبان های برنامه نویسی از پیش کامپایل نشده اند، ممکن است به خوبی زبان های معمولی عمل نکنند. با این حال، زبان های برنامه نویسی و نرم افزارهای ترجمه به طور پیوسته در طول زمان بهبود یافته اند و به کاهش برخی از نگرانی ها در مورد کمک می کنند. بهره وری.
زبان های برنامه نویسی و زبان های برنامه نویسی مرسوم از جهات دیگری نیز متفاوت هستند. به عنوان مثال، زبان های برنامه نویسی به برنامه های دیگر بستگی دارد. شما نمی توانید از آنها برای ساخت افراد مستقل استفاده کنید برنامه های کاربردی همانطور که می توانید با زبان های معمولی. علاوه بر این، زبان های برنامه نویسی تمایل دارند کنترل مستقیم کمتری بر روی سخت افزار ارائه دهند. با یک زبان معمولی، برنامه نویسان می توانند به راحتی پردازنده را کنترل کنند، حافظه و ورودی خروجی منابع
زبان های اسکریپت نیز تمایل به تایپ آزاد دارند. این بدان معناست که الف نوع متغیر در کد تعریف نشده است، اما در زمان اجرا تعیین می شود و به مقدار متغیر بستگی دارد. علاوه بر این، گاهی اوقات نوع متغیر می تواند در طول اجرای اسکریپت تغییر کند. به عنوان مثال، اسکریپت پایتون زیر در ابتدا a را تعریف می کند متغیر تحت عنوان چشم انداز و یک لیست کوتاه از دو مقدار را به متغیر اختصاص می دهد.
# create scenery variable and return value and type
scenery = ['mountains', 'trees']
print('\nThe value for "scenery" is', scenery)
print('The type for "scenery" is', type(scenery))
# assign scenery[1] value to scenery variable
scenery = scenery[1]
print('\nThe value for "scenery" is now', scenery)
print('The type for "scenery" is now', type(scenery), '\n')
پس از تعریف متغیر، اسکریپت مقدار اصلی متغیر و نوع متغیر را چاپ می کند. سپس اسکریپت مقدار دوم را به لیست اختصاص می دهد، درختان، به متغیر. سپس اسکریپت مقدار جدید و نوع داده متغیر را چاپ می کند. خروجی زیر خروجی هر دستور چاپ را نشان می دهد.
The value for "scenery" is ['mountains', 'trees']
The type for "scenery" is <class 'list'>
The value for "scenery" is now trees
The type for "scenery" is now <class 'str'>
زبانهای برنامهنویسی مرسوم به شدت تایپ میشوند، به این معنی که در هنگام تعریف، نوع به متغیر اختصاص داده میشود. به این ترتیب، خطاها در زمان کامپایل بیشتر از زمان اجرا شناسایی می شوند و در نتیجه کد قابل اعتمادتری به دست می آیند. متغیرهای با تایپ قوی همچنین به این معنی است که نمی توان آنها را سهوا به نوع اشتباه تغییر داد.
از آنجایی که زبان های اسکریپت و مفسران آنها در طول زمان تکامل یافته اند، خطوط بین آنچه باید و آنچه نباید به عنوان یک زبان برنامه نویسی طبقه بندی شود شروع به محو شدن کرده است. امروزه بسیاری بر این باورند که طبقه بندی نباید توسط خود زبان تعیین شود، بلکه باید بر اساس نحوه استفاده از زبان تعیین شود.
چگونه از زبان های برنامه نویسی استفاده می شود؟
زبان های اسکریپت اغلب به عنوان هر دو دسته بندی می شوند سرور– طرفین یا مشتری– سمت. زبان های برنامه نویسی سمت سرور – مانند PHP، مالش در و Python — بر روی پردازش می شوند سرور میزبان. زبان های برنامه نویسی سمت کلاینت – مانند جاوا اسکریپتزبان نشانهگذاری فرامتن و برگههای سبک آبشاری – معمولاً در رایانه کاربر پردازش میشوند. مرورگر. اسکریپت های سمت کلاینت بار سرور و شبکه را کاهش می دهند. با این حال، اسکریپت های سمت سرور برای کاربر قابل مشاهده نیستند و به طور کلی امن تر در نظر گرفته می شوند.
زبان های اسکریپت به طور گسترده ای استفاده می شوند برنامه های کاربردی وب برای بهبود عملکرد و افزایش آنها پویا. اگرچه بسیاری از اسکریپت ها بر روی سرور پردازش می شوند، اسکریپت سمت سرویس گیرنده – به ویژه جاوا اسکریپت – هنوز به طور گسترده در توسعه وب استفاده می شود. به همین دلیل، وبسایتها اغلب از کاربران میخواهند که مرورگرهای خود را پیکربندی کنند تا امکان اجرای اسکریپتهای سمت کلاینت را فراهم کنند. در غیر این صورت، برخی از ویژگی های صفحه وب ممکن است کار نکنند.
برنامه نویسان همچنین از زبان های برنامه نویسی در موقعیت های دیگر مانند چند رسانه ای و بازی ها. علاوه بر این، آنها می توانند از اسکریپت ها استفاده کنند خودکار کردن وظایف در برنامه های خود و یا برای اتصال سیستم های مختلف اجزاء.
هنگامی که یک زبان برنامه نویسی برای پیوند دادن اجزاء استفاده می شود، گاهی اوقات به آن زبان یک زبان الزام آور می گویند. زبانهای چسب اغلب برای انواع دادههای انبوه خاص، مانند آرایهها، پشتیبانی میکنند. آنها همچنین می توانند جمع آوری زباله را به طور خودکار برای بازیابی حافظه و جلوگیری از نشت حافظه انجام دهند.
یکی دیگر از کاربردهای رایج زبان های اسکریپت نویسی است مدیریت سیستم. تیمهای فناوری اطلاعات میتوانند از اسکریپتها برای خودکارسازی عملیات روتین و همچنین انجام وظایف یکباره استفاده کنند. به عنوان مثال، اسکریپت پایتون زیر دایرکتوری a را طی می کند سیستم عامل مک کامپیوتر و فهرستی از زیرشاخه های آن را به همراه تعداد آیتم های هر کدام برمی گرداند.
# import the os module
import os
# define target directory
path="/users/mac3/documents/testdata/"
print('\npath:', path, '\n')
# retrieve subdirectory in target directory
for item in os.listdir(path):
sub = os.path.join(path, item)
# return only subdirectories
if os.path.isdir(sub):
size = len(os.listdir(sub))
# print info about each subdirectory
print(item + ': ' + str(size) + ' items')
print('\n')
در این مثال، اسکریپت نتایج زیر را برمی گرداند که شامل نام دایرکتوری مورد نظر، به دنبال آن نام زیرشاخه ها و تعداد آیتم های هر کدام است.
path: /users/mac3/documents/testdata/
TestFolderH: 5 items
TestFolderA: 21 items
TestFolderF: 18 items
TestFolderG: 15 items
TestFolderI: 21 items
TestFolderK: 20 items
TestFolderL: 30 items
TestFolderE: 14 items
TestFolderB: 20 items
TestFolderC: 9 items
TestFolderD: 10 items
TestFolderM: 18 items
TestFolderJ: 0 items
البته، اسکریپتها میتوانند بسیار پیچیدهتر باشند، که میتواند به ویژه برای خودکارسازی وظایف مفید باشد. برنامه نویسان همچنین از زبان های برنامه نویسی برای گزارش، آمار، برنامه های افزودنی نرم افزار، پردازش متن، برنامه نویسی back-end استفاده می کنند. سیستم های جاسازی شده، تست نرم افزار و بسیاری موارد استفاده دیگر
نمونه هایی از زبان های برنامه نویسی چیست؟
معمولاً کار با زبان های برنامه نویسی ساده تر از زبان های برنامه نویسی معمولی است. خواندن، نوشتن و نگهداری کد اغلب آسانتر است. به همین دلیل، طیف گسترده ای از زبان های برنامه نویسی در حال حاضر در دسترس هستند، از جمله مثال های زیر:
- اپل اسکریپت. یک زبان برنامه نویسی توسعه یافته توسط اپل برای ساخت برنامه های کوچک به نام اپلت ها که به عنوان ربات ها. اپلت ها می توانند به طور مستقل داده های چند رسانه ای، از جمله ویدیوی دیجیتال، متن و محتوای وب را پردازش و مدیریت کنند.
- ضربه شدید. را نسخه رایگان پوسته Bourne توزیع شده با لینوکس و گنو سیستم عامل
- پوسته بورن. اصلی یونیکس shell که با نام برنامه اش sh.
- پوسته C. یک اسکریپت پوسته و پلت فرمی که برای برنامه نویسانی اختراع شد که سینتکسی شبیه به زبان برنامه نویسی C را ترجیح می دهند.
- جاوا اسکریپت. یک زبان برنامه نویسی که توسط نت اسکیپ. قابلیتهای مشابهی با ویژوال بیسیک مایکروسافت، Tcl مشتق از یونیکس Sun دارد. پرل و رکس IBM.
- پوسته کورن. یک پوسته اسکریپت و پلتفرم که شامل تمام ویژگی های پوسته C، یا پوسته csh و Tab C یا tcsh. را پوسته کورن توابع برنامه نویسی مشابه را ارائه می دهد پوسته بورن.
- LotusScript. زبان اسکریپتی که پشتیبانی می کند توسعه شی گرا برای برنامه های نرم افزاری IBM
- پرل. یک زبان اسکریپت نویسی با سینتکس شبیه به C. Perl می تواند به صورت اختیاری درست قبل از اجرا در کد C یا بایت کد کراس پلتفرم کامپایل شود.
- PHP. یک زبان اسکریپت نویسی همه منظوره و مفسر که به طور رایگان در دسترس است و به طور گسترده در توسعه وب استفاده می شود، به ویژه برای برنامه های کاربردی وب که بر روی سرورهای وب لینوکس میزبانی می شوند.
- پاورشل. یک چارچوب و زبان برنامه نویسی که برای انجام و خودکارسازی وظایف مدیریت سیستم ویندوز طراحی شده است. پاورشل شامل بیش از 130 ابزار خط فرمان استاندارد برای توابعی است که قبلاً کاربران را ملزم به ایجاد اسکریپت در Visual Basic، VBScript یا C# میکرد.
- پایتون. یک زبان برنامه نویسی نسبتا ساده که ویژگی های قدرتمندی را ارائه می دهد اما یادگیری آن آسان تر از بسیاری از زبان های دیگر است. Python اغلب برای افزودن قابلیتهای اسکریپتنویسی به برنامههای موجود استفاده میشود، اگرچه از طیف گستردهای از موارد استفاده دیگر پشتیبانی میکند.
- مالش در. یک زبان اسکریپت نویسی پویا منبع باز با یک نحو ساده که تا حدی از زبان های آدا و ایفل الهام گرفته شده است. روبی یک زبان بسیار خوانا برای کسانی است که با زبان های برنامه نویسی مدرن آشنا هستند.
https://www.youtube.com/watch?v=rtyXJC6RdpA
انتخاب یک زبان برنامه نویسی اغلب با مشکلی که برنامه نویس می خواهد حل کند و هدف محاسباتی که زبان برای دستیابی به آن طراحی شده است تعیین می شود. نگاهی بیاندازید تفاوت بین زبان های برنامه نویسی و برنامه نویسی.