طراحی و پیاده سازی زبان های برنامه سازی (استاد یراقی)



مقایسه دو زبان کامپایلری





مثال

C++

مثال

C

 

int count, number;

 

float percent, total; 

 

 

long int number1; float a , m ; char ch1='a', ch2='b' ;

const float PI=4113 ;

نام متغیر

نوع داده

تعریف

متغیر

#include <iostream.h> #include <string.h> int main() {

   string stringA = "C++",

   string stringB = "Is Cool",    cout << "Length of stringA = " << stringA.length() << endl;

   cout << "Length of stringB = " << stringB.length() << endl;    return 0;

 

 

 

 

 

 

String.str

 

 

 

 

 

 

Char str[10];

 

 

 

 

 

 

نام رشته char

 

 

 

 

 

تعریف

رشته

class myclass {    int number;

   void greeting(); 

};

class classname

{

    // members

};

#include "stdio.h"  int main (void) 

   {

extern int firsi ,last; printf ("%d %d " , first , last ) ;         return 0 ; 

    }       

 int first = 10 , last = 20 ; 

int x,y; char ch ;         int main (void)   

   } */ دستورات1       

                                    /*دستورات2

                 

}

void func1

(void)  func2                           

           

       {                                         

        

        x=124;                             

}

                              

 

 

 

 

 

 

 

 

 

تعریف

کلاس



 




مقایسه دو زبان مفسری




 مقایسه دو زبان مفسری


 مثال

php

 مثال

python

 

$ Int_Num = 21 ;

<?php

$ var_name = value ; 

?>

 

type(71)

n = 71

 

<type ’int’>

 

 تعریف متغیر

 

 

$ My_Name = " Developer " ;

 


کاربرد :

زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده ها، و عملیات یا تبدیل هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می کند.

یک برنامه نویس از انتزاعات آماده در زبان استفاده می کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده ترین عناصر موجود بیان می شوند(مفاهیم ابتدایی نامیده می شوند).

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


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


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


مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از:


C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



تاریخچه : 


پیشرفت های اولیه : 
اولین زبان برنامه نویسی به قبل از رایانه های مدرن باز می گردد. قرن ۱۹ دستگاه های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال هایی از زبان های برنامه نویسی با حوزه مشخص شناخته می شوند. با شروع قرن بیستم، پانچ کارت ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند
در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.
در دهه ۴۰، اولین رایانه های دیجیتال که توسط برق تغذیه می شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.
کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه های زبان ماشین استفاده می کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می شوند جایگزین شد
در سال های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه های به روز شده این برنامه ها همچنان مورد استفاده قرار می گیرند، و هر کدام قویا توسعه زبان های بعد را تحت تاثیر قرار دادند.
در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان های برنامه نویسی به شدت متاثر از محدودیت های رابط بودند.


پالایش
دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه های آن بهینه سازی ایده های اولیه نسل سوم زبان برنامه نویسی بود:
APL
برنامه نویسی آرایه ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL)
دراوایل دهه ۶۰ طراحی شده بود تا ایده های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به
عنوان اولین زبان کاملا شئ گرا معرفی شد.
C
بین سال های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog
، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.


هر یک از این زبان ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان ها از تبار حداقل یکی از زبان های فوق به شمار می آیند.
دهه های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.
"
ادسگر دیکسترا" در نامه ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان های سطح بالا حذف شود.
در دهه های ۶۰ و ۷۰ توسعهٔ تکنیک هایی صورت گرفت که اثر یک برنامه را کاهش می داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.


یکپارچگی و رشد
دهه ۸۰ سال های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه های گزافی صرف تحقیق در مورد زبان نسل پنجم می شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد.
به جای ایجاد مثال های جدید، تمام این تلاش ها ایده هایی که در دهه های قبل حلق شده بودند را بهتر کرد.
یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم های بزرگ از طریق مدول ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم های مدولی برجسته ای را در دهه ۸۰');

آخرین جستجو ها