بایگانی برچسب‌ها : زبان برنامه نویسی

زبان برنامه نویسی سطح بالا High-level Programming Language

زبان برنامه نویسی سطح بالا یا High-level Programming Language چیست؟

زبان برنامه نویسی سطح بالا (High-level Programming Language) به گونه‌ای از زبان های برنامه نویسی گفته می‌شود که از میزان انتزاع (Abstraction) بالایی نسبت به جزئیات رایانه و زبان ماشین برخوردار هستند. به عبارت بهتر در این زبان‌ها نسبت به زبان‌های سطح پایین (Low-level Programming Language)، برنامه نویسان با پیچیدگی‌های سیستم های رایانه ای (آنچه به طور مستقیم توسط پردازنده ها و رایانه ها قابل فهم و اجرا می‌باشد) کمتر دست و پنجه نرم می‌کنند.

مقایسه زبان برنامه نویسی سطح بالا و زبان برنامه نویسی سطح پایین

سورس کدهایی که به زبان های سطح بالا نوشته می‌شوند معمولا به زبان طبیعی (انگلیسی) شباهت بیشتری دارند (شامل مجموعه‌ای از کلمات، نمادها و جملات هستند) و یادگیری آن‌ها نیز آسانتر است. در این زبان‌ها، اغلب بخش‌های مهم سیستمی (نظیر مدیریت حافظه) بدون اینکه برنامه نویس با آن درگیر شود به صورت خودکار انجام می‌شود و به طور کلی توسعه یک برنامه به زبان های سطح بالا (از کدنویسی گرفته تا اشکال زدایی، نگه داری و …) در مقایسه با توسعه آن در یک زبان سطح پایین کار آسانتری خواهد بود.

در این زبان‌ها برخلاف زبان های سطح پایین (نظیر زبان اسمبلیتوسعه دهنده به جای آنکه مستقیما با مفاهیمی نظیر ثبات های پردازنده یا آدرس های حافظه سر و کار داشته باشد از آبجکت ها، متغیرها، حلقه ها، زیرروال ها، دستورات شرطی و … برای ایجاد برنامه استفاده می‌کند.

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

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

از جمله زبان های برنامه نویسی سطح بالا می‌توان به ویژوال بیسیک (Visual Basic)، سی شارپ (C#پی اچ پی (PHP)، دلفی (Delphi) و بسیاری از زبان های پرکاربرد دیگر اشاره کرد.

نحوه اجرای کدهای نوشته شده به یک زبان سطح بالا

معمولا به منظور اجرای کد نوشته شده به یک زبان سطح بالا و تبدیل آن به دستورات قابل فهم (یا قابل اجرا) توسط پردازنده از کامپایلر یا مفسر استفاده می‌شود. در مدل اول، کد نوشته شده پیش از اجرا توسط نرم افزاری به نام کامپایلر به فرم قابل اجرا توسط پردازنده تبدیل می‌شود و در مدل دوم دستورات به طور مستقیم با کمک نرم افزاری به نام مفسر اجرا می‌شوند. البته گفتنی است نوعی معماری نادر به نام معماری کامپیوتر زبان سطح بالا (High-level Language Computer Architecture) نیز وجود دارد که امکان اجرای مستقیم کدهای این نوع زبان ها را فراهم می‌آورد.

زبان برنامه نویسی سطح بالا
مقایسه یک قطعه کد ساده در یک زبان برنامه نویسی سطح بالا و یک زبان سطح پایین – استفاده از شئ گرائی در زبان های سطح بالا از جمله مزایایی است که در اغلب این زبان ها وجود دارد و باعث آسانتر شدن کدنویسی و جلوگیری از تکرار می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

زبان همه منظوره General-Purpose Language – GPL

زبان همه منظوره یا General-purpose language چیست؟

زبان همه منظوره (General-purpose language به اختصار GPL) یا زبان با اهداف عمومی به گونه‌ای از زبان‌های رایانه‌ای گفته می‌شود که دارای بازه‌ی گسترده‌ای از کاربردها در حوزه‌های مختلف می‌باشند. با توجه به این که چنین زبان‌هایی به طور اختصاصی برای یک حوزه‌ی مشخص طراحی نشده‌اند الزاما شامل ویژگی‌ها و قابلیت‌های تخصصی برای حوزه‌های مجزا نمی‌باشند.

هرچند در اغلب موارد، این مفهوم در مورد زبان‌های برنامه نویسی به کار می‌رود اما علاوه بر زبان‌های برنامه نویسی، زبان‌هایی همچون زبان‌های نشانه گذاری همه منظوره (نظیر XML) و زبان‌های مدل سازی همه منظوره (نظیر UML) را نیز دربرمی‌گیرد. از جمله زبان‌های برنامه نویسی General-purpose پرکاربرد نیز می‌توان به C، جاوا (Java)، پرل (Perl) و پایتون (Python) اشاره نمود.

گفتنی است این اصطلاح در نقطه‌ی مقابل زبان‌های خاص دامنه یا مخصوص یک حوزه (Domain-Specific Language) (نظیر HTML که به منظور ایجاد صفحات وب استفاده می‌شود) قرار می‌گیرد. البته ممکن است یک زبان همه منظوره در عین حالی که دارای کاربرد گسترده‌ای است شامل قابلیت‌های مناسب و ویژه برای یک حوزه مشخص نیز باشد و یا از سوی توسعه دهندگان معمولا در یک حوزه‌ی مشخص مورد استفاده قرار بگیرد. به علاوه در مواردی که یک زبان General-purpose از محبوبیت بالایی برخوردار می‌باشد ممکن است یک کتابخانه الحاقی برای یک حوزه خاص توسط اشخاص ثالث منتشر شود که امکانات تخصصی آن حوزه را به زبان مورد نظر می‌افزاید.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

زبان اسمبلی Assembly Language

زبان اسمبلی یا Assembly Language چیست؟

زبان اسمبلی (Assembly Language) یک زبان برنامه نویسی سطح پایین است که نزدیکی بالایی به دستورالعمل‌های ماشین دارد. این زبان به اختصار با نام ASM نیز شناخته می‌شود.

ویژگی‌های زبان اسمبلی

برخلاف اکثر زبان‌های برنامه نویسی سطح بالا که (به واسطه کامپایلرها یا مفسرها) روی معماری‌های کامپیوتری مختلف قابل استفاده می‌باشند هر زبان اسمبلی، به صورت ویژه برای یک نوع معماری کامپیوتر طراحی می‌شود. بنابراین برنامه‌هایی که به این زبان‌ها نوشته می‌شوند اصطلاحا پرتابل (قابل حمل) نیستند و برای اجرا شدن روی ماشینی با معماری متفاوت لازم است برای همان معماری مجددا نوشته شوند.

به ازای هر دستورالعمل ماشین، ثبات و … معادل‌هایی سمبولیک در زبان اسمبلی وجود دارد. هر عمل همراه با یک یا چند عملوند در این زبان یک دستور را تشکیل می‌دهند.

اسمبلر

دستورات Assembly به منظور آماده شدن برای اجرا، با کمک برنامه‌ای به نام اسمبلر (Assembler) به کد ماشین تبدیل می‌شوند. این برنامه برای تولید آبجکت کد، نمادهای قابل حفظ کردن و مدهای آدرس دهی و عملیات‌های مختلف را به معادل‌های عددی دودویی آن ترجمه می‌کند. اسمبلرهای سطح بالا (High-level Assembler) ویژگی‌های زبان های سطح بالا نظیر تعریف توابع، ساختارهای کنترلی پیشرفته‌تر (نظیر IF) و شئ گرایی را با ویژگی‌های مرسوم ترکیب می‌کنند.

فرایند تبدیل دستورات Assembly به کد ماشین را اسمبلینگ (Assembling) سورس کد می‌نامند. عکس این عمل (تبدیل از زبان ماشین به Assembly) نیز توسط برنامه‌ای موسوم به Disassembler انجام می‌شود.

مثالی از یک دستور اسمبلی

معمولا در هر دستور Assembly پس از دستورالعمل، لیستی از داده‌ها یا پارامترها قرار می‌گیرد. به عنوان مثال در معماری 8086 از نماد MOV برای لود کردن داده در ثبات‌های پردازنده استفاده می‌شود. دستور زیر مقدار هگزادسیمال 61 (معادل عدد دهدهی 97) را در ثبات AL لود می‌کند:

MOV AL, 61h

این دستور توسط اسمبلر به رشته باینری زیر تبدیل می‌شود. این رشته به یک پردازنده با معماری x86 اعلام می‌کند عدد 97 را در ثبات AL قرار دهد. پنج بیت 10110 کد باینری مربوط به این دستورالعمل است و سه بیت بعدی (یعنی 000) مشخصه ثبات AL است. در نهایت 01100001 نیز معادل باینری عدد 97 است.

10110000 01100001

همانطور که مشاهده می‌کنید دستور اول که به زبان اسمبلی نوشته شده است نسبت به رشته صفر و یک معادل با آن به مراتب خواناتر و قابل فهم‌تر است. از سوی دیگر دستورات این زبان نسبت به زبان‌های برنامه نویسی سطح بالا به زبان ماشین نزدیک‌تر است و به این ترتیب برنامه نویس در زبان اسمبلی روی آنچه قرار است انجام شود (جزئیات و نحوه دقیق انجام عمل در سطوح پایین) کنترل بیشتری خواهد داشت.

برنامه‌هایی که به یک زبان سطح بالا نوشته می‌شوند معمولا از نظر کارایی و سرعت به پای معادل همان برنامه که به یک زبان ASM نوشته شده است نمی‌رسند. بنابراین هرچند کدنویسی به زبان اسمبلی امری طاقت فرسا و زمانبر است اما در مورد کاربردهای خاصی نظیر تعامل مستقیم با سخت افزار و ایجاد برنامه‌هایی که نیاز به بهینه سازی حرفه‌ای دارند استفاده از این زبان مفید خواهد بود.

اسمبلی Assembly
نمونه ای از برنامه سلام دنیا به زبان اسمبلی

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

زبان برنامه نویسی سی شارپ C# Programming Language

زبان برنامه نویسی سی شارپ یا C# چیست؟

سی شارپ (C#) یک زبان برنامه‌نویسی شئ گرا و همه منظوره است که توسط شرکت مایکروسافت و به مدیریت Anders Hejlsberg تولید شده است. دامنه‌ی کاربرد این زبان برنامه‌نویسی از نرم افزارهای کوچک تا محصولات پیچیده نظیر سیستم‌عامل‌ها و کاربردهای تحت وب و … را در برمی‌گیرد.

Anders Hejlsberg در سال 1999 در مایکروسافت رهبری تیمی برای پروژه‌ی COOL (مخفف عبارت “C-like Object Oriented Language” به معنای “زبان شئ‌گرای مشابه سی”) را برعهده گرفت. مایکروسافت درنظر داشت همین نام را به عنوان نام نهایی این زبان برنامه‌نویسی مورد استفاده قرار دهد، اما به دلایل تجاری مجبور به تغییر نام آن به سی شارپ شد. گفتنی است استفاده از کاراکتر # (شارپ) از موسیقی گرفته شده است (نماد شارپ در موسیقی به این معناست که نُت نوشته شده باید نیم پرده‌ی کروماتیک بالاتر برده شود). چنین سیاستی در نامگذاری، مشابه استراتژی به کار رفته در نامگذاری زبان برنامه نویسی C++ می‌باشد. به عبارت بهتر نمادهای ++ و # هر دو از برتری (و قدرت بالاتر) زبان‌های C++ و C# نسبت به زبان C حکایت دارند. از سوی دیگر می‌توان نماد # را ترکیبی از چهار علامت + (در چهار گوشه) در نظر گرفت که از این جهت نیز روی برتری C# (و بهبودیافتگی و قابلیت‌های پیشرفته‌تر آن) نسبت به C++ هم تأکید شده است.

نسخه‌ی اول سی شارپ به صورت رسمی در سال 2002 و بر پایه‌ی دات نت فریم ورک 1 منتشر شد و جدیدترین نسخه‌ی آن یعنی C# 7.0 در سال 2017، همراه با Microsoft Visual Studio 2017 و دات نت فریم ورک 4.6.2 عرضه شده است.

از نظر ساختاری، این زبان شباهت‌های بسیاری به زبان‌های C و C++ دارد. استفاده از سمی‌کلن برای مشخص کردن پایان دستورات، استفاده از آکولاد برای گروه‌بندی دستورات و … از جمله شباهت‌های میان این زبان‌ها به شمار می‌رود. برای مستندات سی شارپ، تعدادی پیاده‌سازی مختلف وجود دارد که از مهم‌ترین آن‌ها می‌توان به Microsoft Visual C# و Mono اشاره نمود.

برنامه Hello, World! به زبان C#:

using System;
class Program
{
  static void Main(String[] args)
  {
     Console.WriteLine("Hello, world!");
  }
}

زبان برنامه نویسی سی پلاس پلاس C++ Programming Language

زبان برنامه‌نویسی سی پلاس پلاس (C++) چیست؟

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

منشأ تولد این زبان برنامه نویسی به اواخر دهه 70 میلادی بازمی‌گردد. Bjarne Stroustrup در سال 1979 کار روی پروژه‌ای به نام C with Classes (سی همراه با کلاس‌ها) را به عنوان توسعه‌ای از زبان برنامه نویسی C آغاز کرد که چهار سال پس از آن نامش به سی پلاس پلاس تغییر داده شد و به طور رسمی در سال 1985 منتشر شد. استفاده از این نام به دلیل هم‌خوانی ارتباطش با زبان برنامه نویسی C است. هم‌چنین عملگر افزایش (یا Increment) به کار رفته در نام این زبان (که در بسیاری از زبان‌های برنامه‌نویسی با نماد ++ شناخته می‌شود) نیز تأکیدی بر پیشرفت C++ نسبت به زبان C می‌باشد.

ویژگی‌ها و کاربردهای C++

سی پلاس پلاس یک زبان کامپایلی است که همانند سی پیاده‌سازی‌های گوناگونی از آن برای پلتفرم‌ها و سیستم‌عامل‌های مختلف فراهم شده است. گفتنی است ساختار اصلی این زبان از زبان سی الهام گرفته شده است و بسیاری از زبان‌های مدرن امروزی نظیر سی شارپ و جاوا تحت تأثیر سی و فرزند خوش‌نامش سی پلاس پلاس شکل گرفته‌اند.

ویژگی‌هایی چون شئ گرایی، وراثت، چندریختی، سربارگذاری عملگرها، مدیریت استثنائات و … از جمله ویژگی‌هایی است که علاوه بر قابلیت‌های به ارث برده شده از زبان سی در سی پلاس پلاس به چشم می‌خورد.

امروزه زبان سی پلاس پلاس همانند سی با اهداف متمایل به برنامه نویسی سیستمی و جاسازی شده (Embedded)، مورد استفاده‌ی فراوان توسعه‌دهندگان قرار می‌گیرد. به علاوه، کارایی و همچنین انعطاف‌پذیری بالای این زبان برنامه نویسی آن را به گزینه‌ی بسیار مناسبی برای توسعه‌ی اپلیکیشن‌های دسکتاپ و همچنین مواردی که به کارایی و عملکرد بالایی نیاز دارند تبدیل کرده است.

برنامه‌ی Hello World به زبان C++:

#include <iostream>
int main()
{
    std::cout << "Hello, world!\n";
}

زبان برنامه نویسی سی C Programming Language

زبان برنامه نویسی سی یا C Programming Language چیست؟

زبان برنامه نویسی C یک زبان برنامه‌نویسی همه منظوره است که اوایل دهه‌ی 1970 توسط Dennis Ritchie در Bell Labs طراحی و ساخته شد. هدف اصلی از ساخت این زبان، استفاده از آن در برنامه‌نویسی‌های سیستمی بوده است، البته همان‌طور که اشاره شد کارایی زبان C عمومی می‌باشد و به این حوزه محدود نمی‌شود.

اهمیت زبان C

بسیاری از زبان‌های پرکاربرد امروزی از جمله سی پلاس پلاس، جاوا، سی شارپ، پی اچ پی و … ویژگی‌های اصلی و برخی از ساختارهای مهم خود را از زبان C الهام گرفته‌اند به طوری که شباهت‌های میان این زبان‌ها با زبان سی کاملا مشهود است. به علاوه این زبان در نگاشت به دستورات ماشین از کارایی مناسبی برخوردار است، به همین دلیل در بسیاری از موارد توانسته است جایگزین مناسبی برای کاربردهایی باشد که در گذشته از زبان اسمبلی برای برنامه نویسی آن‌ها استفاده می‌شده است (طراحی و توسعه‌ی سیستم‌عامل‌ها و ساخت نرم‌افزار برای ابررایانه‌ها از جمله این کاربردها به شمار می‌رود).

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

سایر ویژگی‌های زبان C

زبان سی از برنامه نویسی ساخت یافته (Structured Programming) پشتیبانی می‌کند. انتهای دستورات در این زبان با علامت ; (سمی کلن) مشخص می‌شوند و محدوده‌ی دستورات در بلاک‌های مختلف نیز در داخل آکولاد یا { } قرار داده می‌شود.

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

با این حال، زبان برنامه نویسی C برخی از ویژگی‌هایی که در زبان‌‌های مدرن و سطح بالای امروزی مشاهده می‌شود (نظیر شیء گرایی و زباله‌روبی) را پشتیبانی نمی‌کند. کلمات کلیدی موجود در این زبان برنامه‌نویسی با وجود قدرت بالایی که دارد بسیار اندک بوده و در نسخه‌های جدید به حدود 50 کلمه می‌رسد.

برنامه‌ی Hello World به زبان C:

#include <stdio.h>
int main(void)
{
    printf("hello, world\n");
}

بیسیک BASIC

بیسیک یا BASIC چیست؟

بیسیک (BASIC) که مخفف عبارت Beginner’s All-purpose Symbolic Instruction Code می‌باشد از جمله زبان‌های برنامه نویسی سطح بالاست که در آن روی آسانی استفاده تأکید شده است.

نسخه‌ی اصلی زبان بیسیک در سال 1964 توسط John G. Kemeny و Thomas E. Kurtz در کالج دارتموث طراحی شد. هدف آن‌ها از توسعه‌ی این زبان برنامه نویسی تسهیل استفاده از رایانه برای دانشجویانی بود که در رشته‌های مختلف تحصیل می‌کردند.

از کاربردی‌ترین کلمات کلیدی که در زبان BASIC یافت می‌شده می‌توان به موارد زیر اشاره نمود:

  • LET: تخصیص مقدار به متغیر
  • IF … THEN … ELSE: مقایسه و تصمیم‌گیری
  • FOR … NEXT: حلقه تکرار به تعداد مشخص
  • WHILE … WEND: حلقه تکرار تا زمان صحت شرط
  • GOTO: پرش به یک خط یا برچسب
  • PRINT: نمایش پیام روی صفحه
  • INPUT: گرفتن مقدار یک متغیر از کاربر
  • REM: نوشتن کامنت و توضیحات

جالب است بدانید در دنیایی که بسیاری از زبان‌های برنامه نویسی در آن به دست فراموشی سپرده شده‌اند همچنان می‌توان ردپای BASIC را در یکی از محبوب‌ترین زبان‌های برنامه نویسی مدرن به نام ویژوال بیسیک (Visual Basic) مشاهده نمود به طوری که با وجود ظهور زبان‌های جدیدی همچون سی شارپ هنوز هم فرزندان این خانواده طرفداران زیادی را به خود اختصاص داده‌اند.

بیسیک
نمایی از MSX BASIC 3

برنامه ی Hello World به زبان BASIC:

PRINT "Hello, World!"
END