الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعلم تصميم مترجمات اللغات

مغلق
بدأه hamada hassan ali في 23 أغسطس 2005 · 28 رد · 12,507 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

-----------

انتظرو افتتاح القسم هنا

ليكون هذا الرابط الوحيد الذى يخص تصميم المترجمات واى استفسار يتم اضافته هنا

حتى تقوم ادارة المنتدى بافتتاح قسم بناء المترجمات

وانظرو الى درس كامل عن تصميم عملية lexical فى المرفقات

flex.1.html

flex-man.pdf

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 23 أغسطس 2005 في 22:22

_____________________________

C Language && Windwos_API

_____________________________

#2

شكرا على الدروس

و نأمل و جود خبراء فى المجال لقلته فى المنطقه العربيه

لا تراجع و لا إستسلام

#3

هل كتاب مادة بناء المترجمات فى كلية حاسبات ونظم معلومات عربى ولا انجليزى

_____________________________

C Language && Windwos_API

_____________________________

#4

انجليزي : Compilers لونه احمر و معروف بامريكا

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#5

متشكر جدا

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 27 أغسطس 2005 في 01:45

_____________________________

C Language && Windwos_API

_____________________________

#6

انت تقصد ايه بهذا الدرس انا ملاحظ انه compiler للغة C++

الناس انواع

رجل يعلم ويعلم انه يعلم فهذا عالم فوقروه

رجل يعلم ولا يعلم انه يعلم فهذا غافل فإيقزوه

رجل لا يعلم ويعلم انه لا يعلم فهذا جاهل فعلموه

رجل لا يعلم ولا يعلم انه يعلم فهذا احمق فابتعدو عنه

#7

ياريت فعلا لو يتم مناقشة هذا الموضوع .

ياريت لوحد من الأخوة يحول الدرس السابقة لشئ نستطيع فهمة لأنه لغة c++ كما يبدو

ياريت الكلام النضري العملي كمان .

#8

موقع لبرمجة كارت الشاشة

VGA _256 COLOR

هذ ا كل ما امتلكه عن بناء المترجمات

writing compiler.pdf

Writing YACC.pdf

نواة نظام :

Writing Operating.pdf

برمجة الماوس والكيبورد :

Mouse Programming.pdf

Programming the keys.pdf

برمجة ذاكرة الفيديو :

Programming Video RAM.pdf

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 4 سبتمبر 2005 في 01:45

_____________________________

C Language && Windwos_API

_____________________________

#9
/index.php?showtopic=42961

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#10

ياعزيزى قرات الموضوع ده الف مرة

بس المشكلة انه كاتب كل عناوين المقدمة الملف التنفيذى ولكن لم يذكر لنا طريقة كتابتها هل باستخدام متغيرات ام بالاسمبلى ولا ايه بالظبط

_____________________________

C Language && Windwos_API

_____________________________

#11

هذه الموضوع اعتقد انه عبارة عن ملفات واكواد يمكن استخدمها بلغة السى تمكنك من انشاء لغة برمجة

اولا اقراء الملف plc الموجود داخل الملفات على هيئة ملف text

PLC.rar

_____________________________

C Language && Windwos_API

_____________________________

#12

السلام عليكم

أيها العضو الموقر

هناك فرق واسع وشاسع ورهيب و قوي وضخم بين تصميم ال compiler وبين تصميم لغات البرمجة :blink:

فماذا تريد أنت بالتحديد؟

تصميم اللغة تحتاج منك إلى وضع فلسفة جديدة ، أما تصميم ال compiler يحتم عليك أن تكون ملما بالمعالج الذي ستعمل عليه الكومبايلر إلماما كبيرا. يعني بصراحة تصميم الكومبايلر أصعب بكثير من تصميم نظم التشغيل رغم أن فكرته أبسط.

هذا رأيي (h)

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#13

مع تقديرى واحترامى لك

اخى برق

انا اريد برمجة مترجمات او لغات او انظمة هذا هما الثلاث مناطق الذى اسعى للوصول الى واحد منهما

انا متفق معك ان فكرته ابسط من تصميمه

____________________________________________

1- ازى تصميم لغة اصعب من تصميم مترجم لغة انا سمعتها كتير ولكن لم اعرف السبب ؟

2- وماذا تقصد بفلسفة جديدة ؟

وياريت لو عندك كتاب متخصص فى شرح الداتا ستركتر من الصفر الى الاخر تد لنى عليه

________________________________________________________

ومنتظر رايك فى الملف المرفق فى المشاركة رقم 11

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 13 سبتمبر 2005 في 00:13

_____________________________

C Language && Windwos_API

_____________________________

#14

تصميم اللغة نفسها ليس مشكلة لأن لها أساسيات و كل ماعليك هو اعادة كتابة الSyntax و الGrammar Rules و مايُسمى علمياً Production Rules و هو شئ نسبياً سهل

الأصعب هو بناء الParser و هذا أيضاً له قواعد مثل LR Parsing و الLL1 و OPG و يوجد حالياً أدوات جاهزة تُحول الSyntax او الProduction Rules الى Parser مثل الأداة Lex&Yacc و منها Pargen و هي أداة جيدة و يوجد منها نسخة تصنع الParser بالC أو ال++C او ال Java

و تبقى مرحلتين هما الCode Generation و الCode Optimization الأولى و هي التي يجب لإنجازها الإلمام التام بجميع الInstructions الخاصة بالمعالج الذي تستهدفه هذه اللغة و استخدامها بشكل أمثل لانتاج برامج سريعة و تستهلك ذاكرة أقل..

المرحلة الأخير الCode Optimization و الأصعب على الإطلاق و التي تحدد سعر الCompiler و التي تحتاج إلى خبرة بلا حدود لتحويل الأكواد السيئة التي كتبها المبرمج و التي اذا تُرجمت كما هي ستستهلك موارد لا حصر لها و بدون فائدة الى أكواد سريعة تؤدي نفس المهمة بلا أي نقص أو زيادة

فمهما كانت مهارتك فلن تصل بأي حال من الأحوال الى الCode Optimaztion أو الCode Generation و ستعلق عند الParser

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#15

هل تقصد ان بناء اللغة يصمم على الورق وتكون انت مصمم اللغة ويوجد شخص متخصص اخر هو الذى يقوم بعملية بناء المترجم

هل هذا صح ام ان مصمم اللغة يصمم الغة ويصمم لها مترجم خاص بها

وياريت تقولولى اسم اول مترجم للغة السى او المترجم الخاص بها الذى صممه مولف اللغة نفسه

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 13 سبتمبر 2005 في 01:43

_____________________________

C Language && Windwos_API

_____________________________

#16

الملفات في المرفقات يمكنها عمل لغة بسيطة جداً ففي الPLC.doc في قسم الRestrictions

•	Variables and routines may not be declared; a variable’s type is determined automatically when an assignment first takes place
•	There are no structures, arrays, or pointers
•	A source file may consist of only: global declarations and routines

فهو لا يجعلك تحدد الLexer و الSyntax Analyzer بل تعطيه بعض الأوامر و ماذا تفعل و فقط

كما أن الSyntaxالخاص بلغتك تقريباً لن يختلف عن ال C Syntax

FALSE=0;TRUE=1;

//******************************************************************************

Startup()
{
	Print("Startup called\n");
}

//**************************************

Shutdown()
{
	Print("Shutdown called\n");
}

//******************************************************************************

Process(Number)
{
	Print("Process called with parameter: ");
	Print(Number);
	Print("\n");
	return Number+1;
}

//******************************************************************************
//******************************************************************************

main()
{
	Startup();

	for(Loop=0; Loop<7; Loop++)
	{
  Temp = Process(Loop);
	}

	Shutdown();

	TestStatement();

	return Loop;
}

تم تعديل هذه المشاركة بواسطة bashmohandes في 13 سبتمبر 2005 في 01:48

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#17

ممكن لوسمحتم

الان انا قمت بتحديد هدفى هو المفسرات وليس المترجمات :

حد يدلنى على الادوات الذى من خلاالها اتمكن من بناء مفسرات لغة :

- لغة البرمجة المستخدمة

- الادوات والبرامج

- الكتب والمراجع

- دروس من احد المواقع

- دروس API -- MFC

- بيئات تطوير او مفسرات مفتوحة المصدر

وكيف يتم استخدام تعليمة الدوس debuge

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 21 سبتمبر 2005 في 04:22

_____________________________

C Language && Windwos_API

_____________________________

#18

السلام عليكم

أخ حمادة

أريد أن أقول لك شيئا

جيد أن يكون لك هدف واضح ومحدد، ولكن:

يجب أن يكون هذا الهدف بناء على قناعة داخلية منك سواء كانت هذه القناعة بدافع أو بآخر

يجب أن تكون مهيأ فعلا لتحقيق الهدف.

مع احترامي لسيادتك أنا لاحظت فيك شيئين من خلال مشاركاتك،

أولا: أنك تمثل شخصا ما يريد أن يصعد إلى القمر، ثم تجده واقفا ، ويحاول أن يقفز لعل وعسى أن يصل إلى القمر يوما ما ، ولم يدري هذا المسكين أن هناك أسس علمية وأبحاث ودراسات يجب أن يكون ملما بها حتى يصل إلى مبتغاه.

فعلى مستواك الشخصي ، أنت مثلا تقول انك محترف ++C ، أنا أتحداك إذا كنت تفهم 5% منها ، أنا لا أقلل من مستواك ولكن هذه هي الحقيقة فعلا، وأطلب منك أن تعيد بناء صرحك العلمي بشكل علمي!!!!

ولو فرضنا جدلا أنك فعلا محترف سي++ ، فهذا ليس معناه أنك مهيأ لتصميم مترجم أو مفسر. لأن هذا الأمر يحتاج منك لدراسة عدة علوم .

فمن الصعب أن تجاري الأخ محمد حسام حتى الآن، حيث أنه درس بعض المبادئ والأسس ، التي قد تهيئه إلى حد ما إلى هذا الأمر، وأعتقد أن محمد حسام نفسه يعاني بعض المشاكل في شرح طريقة عمل المترجم ،حيث أن هناك معلومات يجب أن يسترجعها أو يعلمها ،ولكن في النهاية يبقى عنده الأسس و يملك المفاتيح التي تمكنه من هذا العمل.

يعني أنا عرفت أنك في معهد حاسب آلي، حاول الآن أن تنسى أمر المترجم أو المفسر هذا نهائيا ، وتركز أكثر في معرفة علوم الحاسب من البداية حتى لا تتعب ، وعندما تتخرج إن شاء الله ستجد أن الأمر بالنسبة لك أصبح واضحا.

الأمر ليس صعب ، و هذا ليس معناه أنه سهل ، ولكنه يحتاج إلى السير في الطريق الصحيح.

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#19

الأخ برق فعلاً على حق...

يجب عليك أولاُ ان تُلم بأكبر قدر من المعلومات عن الموضوع و تدرسه دراسة كاملة ... فلو تعرف كم أقضي من الوقت بين الأوراق لتحضير الدروس ستفهم قصدي ....

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#20

بناء lexecal && praser ممكن تكون سهلة

لكن انا طلبى هو

اذاكان لدى مترجم

سيكتب بداخله الكود

سيتم تحويله الى لغة السى

تحول من الاكواد الخاصة بالمترجم بتاعى الى اكواد لغة السى وتم حفضها فى ملف بامتداد cpp.

كيف اضع محتويات الملف cpp. فى ملف obj ثم تحريره ليكون ملف تنفيذى

_____________________________

C Language && Windwos_API

_____________________________

#21

لماذا تريد ترجمة أكواد لغتك إلى لغة الC ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ حراااااااااااااام عليك ....

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#22

ليه بس

هى صعبة ولا ايه ولا فيها مشكلة

وعلى فكرة انا جربت فكرة ونجحت فيها وبع ما اكمل بناء المفسر ساقوم بنشره على المنتدى مع شرح الكود الخاص به ايضا

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 21 سبتمبر 2005 في 14:03

_____________________________

C Language && Windwos_API

_____________________________

#23

بالطبع تحويل لغة إلى لغة أخرى أصعب بمرااااااااااااااااااحل من بناء مترجم

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#24

هل تقصد انه بناء مترجم يتم التصميم بجدولة البروسيسور فى sample tabel

هل تفهم قصدى

يعنى كل token تساوى مقابلها مايساويها من مجموعة من تعليمات المعالج

اعتقد ان هذا اسهل بس اين الكتاب الذى يشرح كل تعليمات المعالج

انا عارف انك اعطيطنى الرابط لموقع انتل ولكن كل رابط يطلع رابط اخر وحاجة لف ودوران على الفاضى

_____________________________

C Language && Windwos_API

_____________________________

#25

انا بس عاوز اعرف كيف تحويل اكواد لغتى الخاصة الى اكواد لغة السى اصعب من بناء مترجم

_____________________________

C Language && Windwos_API

_____________________________

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…