PDA

نسخه کامل مشاهده نسخه کامل : ساخت برنامه كمپايلر با دلفي



soldier
16-07-2006, 07:59
سلام
اول خوب و كامل بخونيد بعد پست:)
من مي خواهم يه برنامه بنويسم كه بتونه كمپايل كنه
و يه فايل اجرايي اگزه بسازه.اين برنامه بايد با دلفي
نوشته بشه.يعني من مي خواهم.خوب اميد وارم
كه خوب متوجه شده باشيد:)حالا كمپايلر به هر صورتي
كه باشه فرقي نمي كنه.اول راه ها بايد مشخص بشه
بعد يه برنامه بنويسيم.

NoneForce
16-07-2006, 09:32
سلام
خوشبختانه مسائلي كه اينجا مطرح ميشه خيلي خوب - به دردبخور - خوش رنگ و ... است
ولي فكر نميكنيد بهتره مسائلي طرح بشه كه بتوان به نتيجه رساند؟

مرد مباح
16-07-2006, 15:08
اگه شما اين مورد رو بلدين مارو هم راهنمايي كنيد.
چون در يكسري از برنامه ها خيلي لازمه.

NoneForce
16-07-2006, 15:17
سلام
ببينين خيلي از برنامه ها يكسري فايل اجرايي توليد مي كنند ولي اگر دقت كنيد در عمل هيچ فايلي توليد نميشود.
يك فايل اجرايي وجود دارد كه با توجه به (مثلا ريسورسهاي داخل اون) يكسري كار انجام ميدهد.
خب تنها كاري كه بايد انجام داد تغيير دادن اون ريسورسها است. به اينصورت مي توان يك فايل اجرايي توليد كرد.(مثل برنامه هاي كرك ساز)
يكسري كامپوننت هم وجود دارد كه مي توانيد قابليت scripting را به برنامه خود بدهيد. بعني برنامه بعد از كامپايل شدن مي تواند يكسري دستورات (مثلا يك برنامه) را اجرا كند.

حالا باز هم سوالي بود بگيد.

مرد مباح
16-07-2006, 17:38
ميشه لطف كني و يك نمونه كوچولو از همين قضيه كه گفتن بنويسيد و بزارين.

NoneForce
17-07-2006, 08:46
سلام
در مورد Scripting كه كامپوننت زياد است توي Torry بگرديد.
تغيير ريسورس هم سعي مي كنم مثالي پيدا كنم ولي خودتون دنبال تغيير دادن ريسورسها بگرديد با استفاده از ResourceTable . كاري كه برنامه هايي مثل PEXplorer انجام مي دهند.

مرد مباح
17-07-2006, 11:04
اين برنامه PExplorer ريسورس دلفي رو هم ميده؟
و فرمها و ... ؟

NoneForce
17-07-2006, 11:10
سلام
سورس دلفي را نميدهد فقط مي توانيد ريسورسها را تغيير دهيد.
مي تونيد از ExeScope هم استفاده كنيد.

مرد مباح
17-07-2006, 11:12
لينك اين برنامه رو لطف ميكنيد بزارين؟
يا سايت مرجع.

NoneForce
17-07-2006, 11:15
سلام

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مرد مباح
17-07-2006, 11:22
يعني اين برنامه ها كه معرفي كرديد يك برنامه دلفي رو ريسورسش رو ميده؟

NoneForce
17-07-2006, 11:37
يعني اين برنامه ها كه معرفي كرديد يك برنامه دلفي رو ريسورسش رو ميده؟

سلام
نه ديكامپايلر نيست. مي تونيد ريسورسهاي برنامه را تغيير دهيد نه سورس برنامه.

soldier
17-07-2006, 13:20
سلام
چه بحث داغي شد.
من مي خواستم با يه سري دستورات يه فايل اجرايي بسازم.
اگر امكان داره روي اين بحث كنيد. و بايد به نتيجه برسيم.

NoneForce
17-07-2006, 13:29
سلام
چند تا دستور را فراموش كنيد. كامپايلر چيزي نيست كه بشه درموردش بهث كرد و به نتيجه رسيد.(حالا باز ميل شماست)
ميتونيد از Dcc32 استفاده كنيد و بدون باز كردن محيط دلفي برنامه خود را كامپايل كنيد.

مرد مباح
17-07-2006, 14:10
يعني با اين فايل ميشه يك فايل PAS رو به Exe تبديل كرد؟

soldier
17-07-2006, 14:52
سلام
از راهنماييتون ممنون.
اما ارر مي ده از فايل پي اي اس
با اينكه يك بار هم با دلفي كمپايل شده.
اما باز هم ارر ميده. برنامه هم اجرا نيست كه از اون ارر بگيره.
از خط 33 كه من همچين خطي ندارم ارر ميگيره.

soldier
17-07-2006, 14:54
سلام
درست شد.بايد فايل دي پي آر رو دستور كمپايل داد.
من فايل پي اي اس رو دستور كمپايل مي دادم.
خيلي ممنون.

FGIT
20-07-2006, 18:54
اين چيزي كه شما ميخواهيد اگر اشتباه نكرده باشم همون طراحي كامپايلر هست
(برنامه اي كه فايل اجرائی درست کنه)
این بحث خودش یه بحث اساسی هست که به این سادگیها نیست
مراحل اصلی تبدیل یک برنامه به کد عبارتند از


1: Lexical Analyzer
2: syntax analyzer
3: semantec analyzer
4: intermediate code
5:code generation
كه هر كدوم از اينها يه بحث مفصل هستش و نياز به اطلاعات بالائي داره.
اگر اطلاعات بيشتري خواستيد من راهنمائي تون ميكنم ولي طراحي كامپايلر به اين سادگيها هم نيست

مرد مباح
21-07-2006, 11:01
رفيق توضيح بده.
ولي درس به درس.
من ميخوام كدهاي خودمو كمپايل كنم و فايل اجرايي بسازم نه فايلهاي دلفي رو.
يا تو برنامم يك فايل الكي رو اجرايي كنم.
مراحلشو توضيح ميدي؟

FGIT
21-07-2006, 17:40
مشكلي نداره
ولي اين كار خيلي پيچيده تر از اين حرفها هست
من خودم تا مرحله ساختن كد اسمبلي حدود 4 ماه وقت گذاشتم. تازه اونم يه كامپايلر ساده كه فقط if و While داشت.
اگه حاضرید وقت بذارید من حاضرم کمک کنم.

یک پیشنهاد:
چرا از کامپایلر های آماده استفاده نمیکنید مثلا خود C++ یه فایل داره به نام BCC یا TCC که فایل شما رو به عنوان پارامتر میگیره و کامپایلش میکنه.
البته میدونم اون چیزی که آدم خودش بنویسه یه چیز دیگه هست ولی اگه اینها جوابتون رو بدن دیگه نیاز نیست خودتون از اول بنویسد و با مشکلات مختلف روبرو بشید.

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

مرد مباح
21-07-2006, 23:32
احتمالا براي ساخت يك انجين كلي به اين مورد نياز خواهيم داشت.
يك سري به بخش زير بزن و متوجه منظورم ميشي.
خوشحال ميشم شما هم همكاري كنيد.
بازيهاي كامپيوتري/ساخت,هك و ... بازيها / تيزهوش انجين

delphi.net8
01-12-2006, 17:46
سلام
ببخشيد ولي من فكر ميكنم (فكر ميكنم ) يه مقدار بعضي از دوستان بد متوجه شدن
اتفاقا من هم دنبال يه همچين چزي ميگشتم تا امروز كه اين پست رو ديدم

احتمالا همتون magicPS رو ديدين كه يه فايل edit server داشت كه يه سري اطلاعات مثل آدي يا آيكن رو از شما ميگرفت و يه فايل exe درست ميكرد كه آدي و پسورد طرف رو به همون آدي كه شما وارد كرده بوديد مي فرستاد

من و فكر ميكنم اون دوستمون دنبال همچين چيزي هستيم
حالا ميخوام ببينم كي يه جواب درست ميده

gbg
01-12-2006, 23:30
سلام
كمپايل برنامه به اجرايي ساختنش خيلي فرق داره
براي ساخت برنامه exe هم بايد اسمبلي بلد باشي هم زبان ماشين
در ضمن بايد با ساختار فايل اجرايي در ويندوز هم اشنا باشي

اين تاپك مثل اين ميمونه كه من يك تاپيك با عنوان زير ايجاد كنم

روش ساخت هواپيماي مسافربري با قدرت جابجايي 500 نفر

delphi.net8
14-12-2006, 08:49
البته اینم عنوانه خوبیه ولی ... این کار رو قبلا به کرات کردن و همچین برنامه بزرگی هم نشده مثل همین مجیک ÷ی اس که با دلفی هم هست
اصلا میگم بهتره با خود همون آقا صحبت کنم ؟ ها ؟ چطوره ؟:blush:

mohsennowruzi
14-12-2006, 09:44
اين چيزي كه شما ميخواهيد اگر اشتباه نكرده باشم همون طراحي كامپايلر هست
(برنامه اي كه فايل اجرائی درست کنه)
این بحث خودش یه بحث اساسی هست که به این سادگیها نیست
مراحل اصلی تبدیل یک برنامه به کد عبارتند از


1: Lexical Analyzer
2: syntax analyzer
3: semantec analyzer
4: intermediate code
5:code generation
كه هر كدوم از اينها يه بحث مفصل هستش و نياز به اطلاعات بالائي داره.
اگر اطلاعات بيشتري خواستيد من راهنمائي تون ميكنم ولي طراحي كامپايلر به اين سادگيها هم نيست

همون طور که دوستمون گفتن ساختن یه کامپایلر به فازهای فوق احتیاج داره.
درس کامپایلر که مقطع کارشناسی ارائه می‌شه به همین مباحث می‌پردازه و معمولا یه پروژه هم کنارش هست که شما باید یه کامپایلر بسازید.
برخی از فازها ساده هستند مثلا فاز اول یا همون اسکنر. ولی خوب توضیح دادن مطالب اینجا و به صورت غیر حضوری یه کم سخت می‌شه.
اما یه سری راه میان‌بر هم همیشه وجود داره.
مثلا شما می‌تونید از gold compiler builder استفاده کنید.
این نرم‌افزار امکان ساخت کامپایلر به بیشتر زبان‌های رایج رو می‌ده. کافی هست که شما دستورات یا همون نحو زبان رو براش مشخص کنید! خوب دقت کنید در واقع اینجا شما می‌تونید خودتون یه زبان جدید اختراع کنید! و بعد با کمک این نرم‌افزار کامپایلرش رو بسازید. البته توجه داشته باشید که برای این کار باید مباحث مقدماتی کامپایلر رو بلد باشید. من توصیه می‌کنم اول کتاب نظریه زبان‌ها و ماشین‌ها و بعد کتاب کامپایلر رو بخونید.
اگه سوالی بود در خدمتم
راستی یادم رفت بگم برای دانلود نرم‌افزار فوق و همچنین خوندن مطالب در مورد اون از سایت زیر استفاده کنید. من خودم این ترم درس کامپایلر رو می‌گذرونم و الآن درگیر نوشتن پروژه هستم اگه چیز جالبی در اومد سعی می‌کنم لینکش رو براتون بزارم
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Admiral
14-12-2006, 09:48
ساخت یک کامپایلر برای دلفی به این راحتی ها نیست(دوستان دیگه هم این رو بارها گفتند)!

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

روش کار مجیک پی اس هم کامپایل نیست.آخه کدوم کامپایلری چنین حجمی داره !!

احتمالاً یک قالب ثابت برای فایل اجرایی در نظر گرفتن و فقط قسمت هایی مثل آیکونها و یک سری تنظیمات رو روش تغییر میدن!

فعلاً اطلاعات بیشتری ندارم ولی دارم روی این قضیه کار میکنم.

shayan_p30
14-12-2006, 11:44
بحث جالبيه ولي ما كه سوادمون نميكشه:blush: