PDA

View Full Version : گفتگو: ساخت زبان برنامه نویسی



immortalsoull
جمعه 14 تیر 1392, 00:53 صبح
سلام دوستان عزیز !
من خیلی وقت است که می خواهم یک زبان برنامه نویسی کامپایلری بسازم !
خوب من نیاز به یک کار بلد دارم که این کار را باهم انجام بدیم .

من راجب نوشتن کامپایلر و طراحی آن مطالبی خواندم اما همان طور که گفتم نیاز یه کمک دارم !

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

کامپایلر از دو قسمت جلویی و عقبی تشکیل شده است که برای تعریف آن باید از حروف با قاعده استفاده کرد !

مثال : [a-z]

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

ویژگی های زبان :

تعریف متغییر ----> $ int variable name
$ double variable name
$ string variable name

کلمات کلیدی : int , double , string , and , or , while , if , write , read , sub

شروع برنامه : sub main
پایان برنامه : end sub

توابع : (write(variable or string برای خروجی کرفتن

(read(variable or string برای ورودی گرفتن

عملگر ها : * و + و - و / و ^ و %

عملگر های انتسابی : > و < و => و =< و ==

عملگر های منطقی : and , or , !

عبارت های کنترلی : ( ) if
]

[

( ) while
]

[

تنها همین یک زبان که خیلی راحت است و در محیط console خروجی چاپ می شود .

دوستان عزیز اگر کسی است که متواند به من کمک کند ممنون می شوم اطلاعات خودشون را در اختیار بگذارند

در ضمن این تنها یک پروژه ساده و قصد آن آشنایی با ساخت کامپایلر و ارتباط دادن آن با یک IDE است پس ممنون می شوم مطالب را با بیان ساده و راحت قرار دهید .

ممنون :)

Arcsinos
جمعه 14 تیر 1392, 14:38 عصر
الان ابزارهای رایگانی هست که هم قسمت جلوبندی (frotend) و هم قسمت عقب بندی(backend) رو انجام میدن ، شما فقط کافیه که سیتکسی که میخوای رو به اون ابزارها بدی و بقیه ی کارها رو اونها انجام میدن ، یعنی کار تجزیه و تحلیل و ترجمه و تولید کد و .... رو خودشون انجام میدن . برای کسب اطلاعات بیشتر و دریافت کد این اسکنرها و پارسر ها میتونی به کتاب کامپیلر آقایان ای هو و همکاران مراجعه کنی. یاعلی

immortalsoull
جمعه 14 تیر 1392, 19:30 عصر
ممنون دوست عزیز می شه یک خورده بیشتر توضیح دهید ؟

پرویز بازگشا
جمعه 14 تیر 1392, 21:18 عصر
سلام دوست عزیز


من یک زبان مفسری نوشته بودم.
تا jump پیش رفتم. تو for و while گیر کردم...

http://parsian-programmers.vcp.ir/23860-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-Lian3D-Engine/166951-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%84%DB%8C%D8%A7%D9%86.html

hamidhws
جمعه 14 تیر 1392, 21:26 عصر
نمیخوام نظر منفی بدم شایدم من اشتباه میکنم. ولی دوست و دوستان عزیز چرا ما همیشه سعی داریم چرخ رو دوباره اختراع کنیم؟الان با وجود فریم ورک قدرتمندی مثل دات نت و یا زبان هایی مثل دلفی و ... با اون همه قدمت و تجربه و پشتیبانی بی نظیر هست . من واقعا دلیل کارتون رو نمیفهمم!

immortalsoull
جمعه 14 تیر 1392, 22:03 عصر
دوست عزیز من فقط می خواهم مراحل طراحی کامپایلر و ارتباط آن با یک IDE را یاد بگیرم و نیاز به کسی داشتم که این کار را یاد بده فکر نکنم دخیلی به اختراع دوباره چرخ داشته باشد !

immortalsoull
جمعه 14 تیر 1392, 22:31 عصر
ممنون دوست عزیز مشاهده کردم برنامه شما را ولی من دنبال مفسر نیستم چون سرعتش پایین است . بازم تشکر :لبخندساده:

govaleshgar2
سه شنبه 18 تیر 1392, 06:47 صبح
بسیار نیک. حالا که میگی هدفت یادگیریه. تصریح کن که میخواهی پیاده سازی کامپایلر را تمرین کنی. یا طراحی زبان؟