PDA

View Full Version : مبتدی: راهنمایی برای ساخت یک کامپایلر ساده



jimpatrick
پنج شنبه 05 اسفند 1395, 04:32 صبح
سلام دوستان

میخواستم یه کامپایلر ساده بسازم که دستورات زیر را که داخل یک فایل .txt هستشو بشناسه و اونو تبدیل به زبان C++‎‎‎‎‎‎‎‎ کنه و خروجیشو بده:
متن فایل که به عنوان ورودی میخونیم و کامپایل میکنیم:

in a
in b
c=a+b
out c
ینی ما باید کاری کنیم که کامپایلرمون متنو تحلیل لغوی، معنایی، نحوی کنه و به صورت زیر درش بیاره:

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
int a,b,c;
cin>>a;
cin>>b;
c=a+b;
cout<<c;
}
لطف کنید بگید باید از کجا شروع کنم.
بسیار سپاسگزارم

jimpatrick
دوشنبه 09 اسفند 1395, 23:42 عصر
ممنون از راهنمایی‌های جامعتون

m.r226
شنبه 14 اسفند 1395, 10:26 صبح
وقتی می گین یه کامپایلر ساده یعنی چقدر ساده؟
چند تا عملگر رو پشتیبانی کنه؟ (بهت پیشنهاد میکنم از کانتینر set تو c++ استفاده کن)
فایل های هدر رو هم خودش اضافه کنه یا نه؟
چند تا دستور مثل pow یا printf رو تشخیص بده؟
اگه قرار باشه مثا مثال بالایی باشه خوب زیاد سخت نمیشه.
۱− یه فابل cpp باز کنید.
۲- یه سری اطلاعات ثابت مثل تعریف هدر ها رو تعریف main رو در اون بریزید
۳- اطلاعات رو خط به خط از html بخونید و از نطر ساختاری بررسیش کنید. اگر مثلا آخرش سمیکالون نداشت خطای کامپایلری بدین و از این جور چیزا
۴- سر آخر که همه چیز خوب بود و برنامهتون (از نظر خودتون ) از لحاظ ساختاری درست بود تو فایل مربوطه ذخیرش کنین.
بعد بدین به کامپایلر اجرا ش کنه. مثلا تو لینوکس با کامپایلر gcc از این دستور استفاده کنین:
gcc -Wall -o M_program.out your_filename.cpp
اجرا:
My_program.out/.

دو تا توصیه اگه میخوای برنامه نویس C++ بشی:
۱- همیشه به اینجا سر بزن : http://stackoverflow.com/questions/tagged/c%2b%2b
۲- تو سیستم عامل لینوکس برنامه نویسی کن

موفق باشی

jimpatrick
سه شنبه 24 اسفند 1395, 22:23 عصر
وقتی می گین یه کامپایلر ساده یعنی چقدر ساده؟
چند تا عملگر رو پشتیبانی کنه؟ (بهت پیشنهاد میکنم از کانتینر set تو C++‎ استفاده کن)
فایل های هدر رو هم خودش اضافه کنه یا نه؟
چند تا دستور مثل pow یا printf رو تشخیص بده؟
اگه قرار باشه مثا مثال بالایی باشه خوب زیاد سخت نمیشه.
۱− یه فابل cpp باز کنید.
۲- یه سری اطلاعات ثابت مثل تعریف هدر ها رو تعریف main رو در اون بریزید
۳- اطلاعات رو خط به خط از html بخونید و از نطر ساختاری بررسیش کنید. اگر مثلا آخرش سمیکالون نداشت خطای کامپایلری بدین و از این جور چیزا
۴- سر آخر که همه چیز خوب بود و برنامهتون (از نظر خودتون ) از لحاظ ساختاری درست بود تو فایل مربوطه ذخیرش کنین.
بعد بدین به کامپایلر اجرا ش کنه. مثلا تو لینوکس با کامپایلر gcc از این دستور استفاده کنین:
gcc -Wall -o M_program.out your_filename.cpp
اجرا:
My_program.out/.

دو تا توصیه اگه میخوای برنامه نویس C++‎ بشی:
۱- همیشه به اینجا سر بزن : http://stackoverflow.com/questions/tagged/c%2b%2b
۲- تو سیستم عامل لینوکس برنامه نویسی کن

موفق باشی

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