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

سؤال حول لغة ال " D " programing language

مغلق
بدأه virus975 في 24 ديسمبر 2005 · 35 رد · 3,477 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الصراحة مليت من كثرة اللغات :(

بس انا بديت بتعلم السي++ لاني أحببتها منذ القدم

بس الحين صرت اسمع مقالات كثيرة عن لغة ال (D) مثل هذه المقارنة بينها وبين السي++ و الجافا و السي #

ارعص هنا لرؤية المقارنة

فهل هذه اللغة قوية يعني مثل ال سي++

واريد مثالا عن كود برنامج (Hello world) مبرمج بلغة ال (D)

وشكرا :wacko:

#2

سأكون متحيز و اسمح بالموضوع في قسم السي :P لاني لا اعرف اي مكان آخر يمكن نقل الموضوع اليه! (سلطان (او اي مشرف آخر), اذا غير موافق فلك كامل الحرية بنقل الموضوع الى القسم اللذي تراه مناسبا).

سأتحيز ايضا و أقول انها أقوى من الـ ++C

يعني, اسأل اي مبرمج ++C متعامل مع java او #C و اسأله, اي لغة افضل, سي بلص بلص ام سي شارب؟ سيقول لك دون تردد سي شارب افضل!

مشكلة السي شارب و الجافا انهما تعملان داخل virtual machine مما سيبب بعض البطء ..

الـ D تاخذ العديد من نقاط قوة java و #C و لكنها تحافظ على طريقة ++C بان الكود يترجم الى لغة الالة مباشرة ..

الـ hello world

import std.stdio;

int main()
{
    writefln( "Hello World!" );
    return 0;
}
#3

السلام عليكم

يعني بهاي الحالة لغة D هي الافضل ومن يدري غدا D++ :D

نتمنى ان لا تبخلوا علينا باي مصدر عن هذه اللغة لكي نحاول الالمام ولو ببعض منها الى ان ياتي الوقت وننتقل اليها كما تنقلنا سابقا بين اللغات

وشكرا

#4

اظن انه لا توجد الكثير من المصادر ..

عندك الموقع الرسمي

http://www.digitalmars.com/d

و هنا مجموعة دروس

http://trac.dsource.org/projects/tutorials/wiki

اضافة الى ان dsource هو مثل sourceforge تقريبا لكنه خاص ببرامج لغة D

و عندك الـ news group و أنا انصح ان تتصفحها باستخدام Mozilla Thunderbird

news.digitalmars.com

#5

الظاهر إن هذه اللغة قوية ،، ولكن للأسف ما زالت في بداية المشوار ، يعني لم أجد GUI كامل لها حتى اﻵن ،،،

http://www.wikiservice.at/d/wiki.cgi?AvailableGuiLibraries

لو كان لها GUI لكنت برمجت بها ،، ولكن لا يمنع أن ألق نظره عليها في المستقبل

#6

هذا الـ wiki قديم و لا يعتمد عليه ..

اكثر gui اثارت اهتمامي هي Harmonia و لكن لا يبدو انها موثقة بشكل كافي, و انا لم يكن لدي الكثير من الحماس لاتعب نفسي و احاول استخدامها ..

http://www.terrainformatica.com/wiki/pmwik...rmonia.Harmonia

هذا مثال Hello World منقول من هناك:

 
module samples.hello1;

// HTML Hello World.

import harmonia.ui.application;
import harmonia.ui.window;
import harmonia.html.view;

// HTML behavior can be attached to any container
// This time to the window.
alias HtmlPanelT!(Window) HtmlWindow;

void HelloWorldStart()
{
  HtmlWindow w = new HtmlWindow;
  w.html =
     "<HTML back-color='edit info'
            text-align=center
            vertical-align=middle>Hello World!</HTML>";
  w.state = Window.STATE.SHOWN;
}

static this() // module ctor
{
  Application.onStart = &HelloWorldStart;
}

انتوا بصراحة جماعة اللـ linux المفروض تكونون معجبين بهذه الاشياء حتى لو لم تكن مكتملة!! اليس كذلك؟ :D

بالنسبة لـ DWT فهي عبارة عن port للـ SWT (جافا) الى D

آخر إصدارة المفروض تكون:

After some hard work by Shawn Liu, most DWT APIs are now compliant with SWT 3.0.2

#7
اقتباس
انتوا بصراحة جماعة اللـ linux المفروض تكونون معجبين بهذه الاشياء حتى لو لم تكن مكتملة!! اليس كذلك

رأيك ؟؟ هو بصراحة الفكرة جميلة جدا ومغرية في نفس الوقت ،، ولكن مرات تحتاج أن تحصل على دعم ،،،

إذا كنت بستخدم سأحاول استخدام DUI فهي مبنية على GTK

#8

السلام عليكم

اقتباس
سأتحيز ايضا و أقول انها أقوى من الـ ++C

يعني, اسأل اي مبرمج ++C متعامل مع java او #C و اسأله, اي لغة افضل, سي بلص بلص ام سي شارب؟ سيقول لك دون تردد سي شارب افضل!

مشكلة السي شارب و الجافا انهما تعملان داخل virtual machine مما سيبب بعض البطء ..

الـ D تاخذ العديد من نقاط قوة java و #C و لكنها تحافظ على طريقة ++C بان الكود يترجم الى لغة الالة مباشرة ..

من وجهة نظرى :

اخ ....hasan_aljudy

كل كلامك صح

الكل يبتعد عن السى والسى ++

ويذهب الى سى شارب : "" لانها تستخدم اسلوب لغة ++C وطريقة بناء الوجهات كمثل VB ""

اما انهم عندهم عقدة ضد الفيجوال بيسك انها ضعيفة بالعكس

ما يمكن بناءه بالفيجوال بيسك يمكنك تصميمه بالسى شارب لكن الفرق الذى يميز سى شارب انها برامجها ابطىء شوية من برامج الفيجوال بيسك

اما بالنسبة للغة D فاذا كانت بكل هذه المواصفات وكمان تتحول الى لغة الالة مباشرة

فهذا مستحيل بناء لغة الى لغة الالة مباشرة

اولا السينتكس الخاص باللغة D يتم تحويلة الى ملف اسمبلى عادى text. ثم يعتبر ان الاسمبلى هى ملف token ثم يحول كل مجموعة تعليمات لغة الاسمبلى الى مايقابلها من لغة الالة

ليكون اسهل فى التحول ولكنهاتتطلب بناء قارىء لقواعد اللغة ثم قارى لقواعد الاسمبلى ثم قارىء لتعليمات لغة الالة

فاذا توفر فيها ميزة الترجمة الى المعالج مباشرة فهى بالتاكد اقوى من السى ++ وليس السى

_____________________________

C Language && Windwos_API

_____________________________

#9

السلام عليكم

إيه دا يا حماده إنتا جبت المعلومات دى منين؟؟

مين قال إن كمبايلر السى بلس بلس بيحول الشفرة للغة الاسمبلى الاول وبعدين يحولها للغة الالة؟؟

وعرفت منين إن برامج السى شارب ابطاء من الفيبى؟؟

ياريت تكتب مصادر معلوماتك يا حماده عشان كدا مش ينفع ابداً, تخيل لو كل واحد كتب من دماغه يبقى مش حنخلص...

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#10

والله أنا قرأت في إحدى المرات في موقع يقول أن مترجم السي بلس بلس يحول إلى الاسمبلي ثم إلى لغـة الآلة

لكن لا أدري بالتحديد أين

بالنسبة أن الفيبي أسرع من السي شارب فهذه أول مرة أسمعها

#11

ليس من المعقول انه سيتم تحويل كود وبرمجة oop كاملة الى لغة الالة مباشرة فذا سيسبب معاناة فريق تصميم لغة FORTRAN الذى صممت فى 15 عاما

لذلك يتم توجيه اللكود الناتج بعد عملية التحليل الى ملف به شفرات اسمبلى ثم تحويل كل تعليمة الى مقابلها لكن ييطلب وجود SCANER خاص بلغة الاسمبلى

لان التعليمة MOV او STOE لهما اكثر من طريقة فى التحويل غير عمليات التحويل فى حالات الشرط

اما فى المترجم يتم معرفة الداة MOV اى نوع منها ثم يتم تحويلها

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

بالنسبة للمصادر هو مصدر واحد ولكنى غير متذكره

ولكن تاكد ان اى شىء اقراءه عن المترجمات يسجل فى الذاكرة الخاصة بى وبحفظها زى اسمى بالظبط كنت قرائتها فى موقع WIKI

اما بالنسبة للفيجوال بيسك والسى شارب ( الاثنين يعملون فى بيئة VM ) ولكن الفرق ان لغة السى شارب تمر بمرحلتين فى عملية الترجمة

اولا فى قواعد ثابته متفق عليها تتحول لها كل لغات الدوت نت

ومن ثم يتم تحرير هذه الللهجات الى لغة الالة MSIL وهو منتج الملف التنفيذى

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

_____________________________

C Language && Windwos_API

_____________________________

#12

الكومبايلر dmd يقوم يتحويل اكواد D الى لغة الآلة مباشرة دون المرور بمرحلة assembly إطلاقا, لذلك فالكومبايلر لا يحتوي على خيار (مثل gcc) لكتابة ملفات assembly, و اذا اراد المرء ذلك يجب ان يستخدام برامج اخرى تستخرج الـ assembly من الـ machine code, او بمعنى آخر, يحتاج disassembler

و لكن gcc يقوم دائما على ما أظن بتحويل كل البرامج الى اسمبلي أولا ثم يقوم باستدعاء as لترجمتها الى obj ثم يقوم باستدعاء برنامج (لنكر) لربط كل شي في ملف exe.

ليس هذا موضوعنا .. لا تغيروا الموضوع, خلوه دعاية :lol: للغة D

#13

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

_____________________________

C Language && Windwos_API

_____________________________

#15

أريد إجابة صريحـة الآن .....

هل يتحول كود السي بلس بلس مباشرة إلى لغـة الآلة أم يتحول اسمبلي أولاً

بصراحـة بعـد رد أحمد غريب أصبحت أعتقد أن الموقع التي أخذت منه هذه المعلومـة لا يدري عـن شيء

#16

السلام عليكم

اخى سلطان الكمبايلر لا ينشئ ملف اسمبلى إلا إذا طلبت ذلك خصيصاً بإضافة /Fa فى شريط الاوامر, اما كيف يقوم الكمبايلر فى داخلة بعملية الترجمة فهذه لا استطيع ان افتي فيها, ولكنى اعرف عن تجربة ان الكمبايلر لا ينشئ ملف اسمبلى من تلقاء نفسه كمرحلة مابين الشفرة و الملف التنفيذى ..

اعتقد ان مصممى لغة الD لم يرفقو هذا الخاصية لسببين..

السبب الاول هو ان إستخدام ملفات الاسمبلى التى ينشها المترجم غير شائعة الاستخدام, بالاضافة إلى ان الاسمبلى الذى يصدره المترجم يفقد الكثير من المعلومات منها على سبيل المثال اسماء المتغيرات وخواص الـoop

السبب الثانى هو ان مثل هذه الخاصية تزيد من حجم الملف التنفيذى للكمبايلر وتجعله ابطاء; بإلاضافة إلى ان هناك العديد من الـdebugger التى يمكنك ان تيتخدمها كادوات إضافيه...

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#17

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

تحويل الكود سيتطلب منه فحص جملة جملة وحرف حرف انت مش متخيل انك بتكتب لغة الالة

بدل ما تكتب الكود مرة واحدة وتترك عمليات الذاكرة اتوماتيك لا يتطلب منك ادراتها ذاتيا اثناء التحليل الكود

سنستبدل الاسمبلى بما يسمى TI وهو عبارة عن قواعد ثابتة قريبة من لغة الالة

سيتم التحويل لها ثم يتم حفظها فى ملف ثم يتم استخدمها فى مرحلة الترجمة النهائية

لا يمكن بناء لغة برمجة OOP على اساس الترجمة 01001 المباشرة ارجع لكتاب انتل وانت تفهم السبب

الكلام ده موجود فى موقع WIK وكلام عن 3 سنوات عمل مترجم الى لغة الالة

يمكنك عمل قارىء وفاحص ومحلل للكود بمنتهى البساطة ولكن عملية التحويل للغة الالة ليست امر سهل هكذا للتعامل بها مع OOP مستحيل حيفكروا فى ايه ولا ايه

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

وانت فيها تعرف فى البرنامج 1000 متغير و 600 وظيفة واكتر كيف

_____________________________

C Language && Windwos_API

_____________________________

#18

يا حمادة, الكومبايلر مكتوب بالسي بلص بلص .. و ليس بلغة الآلة!

و للعلم, تحويل الـ oop الى لغة الالة ليس مستحيل, لان هذا هو بالفعل ما تفعله الكومبايلرات.

الكود بعد ان يتم تحليله من الكومبايلر بشكل كامل, سيقوم بانتاج data structure يمثل اوامر البرنامج بطريقة قريبة من الاسمبلي .. و بعدها يقوم الـ backend بتحويل هذا الـ intermediate structure الى لغة الالة.

الـ backend للـ gcc يقوم بتحويل هذا الـ intermediate structure الى اسمبلي على ما اظن .. (مما يسبب بطئا نسبيا).

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 26 ديسمبر 2005 في 02:31

#19

أنا في أحد المواقع ... العـملية الداخلية للمترجم (في السي بلس بلس) يقوم بتحـويل السورس كـود إلى اسمبلي ثم إلى لغـة آلة

الموضوع كان شرح عـن الجافا وكيفية ترجمتها .. وأخذ الموضوع كمقدمـة وشرح لغـة السي .. وأنها تحول فوراً إلى لغـة الآلة

صراحـة لا أدري عـن موضوعات الكومبايلر كثيراً فأنا لسا سنة أولى جامعـة

#20

السلام عليكم

اخواتى اعضاء المنتدى الكرام

اقتباس
hasan_aljudy مشاركة بتاريخ اليوم, 03:30 AM

  يا حمادة, الكومبايلر مكتوب بالسي بلص بلص .. و ليس بلغة الآلة!

و للعلم, تحويل الـ oop الى لغة الالة ليس مستحيل, لان هذا هو بالفعل ما تفعله الكومبايلرات.

الكود بعد ان يتم تحليله من الكومبايلر بشكل كامل, سيقوم بانتاج data structure يمثل اوامر البرنامج بطريقة قريبة من الاسمبلي .. و بعدها يقوم الـ backend بتحويل هذا الـ intermediate structure الى لغة الالة.

الـ backend للـ gcc يقوم بتحويل هذا الـ intermediate structure الى اسمبلي على ما اظن .. (مما يسبب بطئا نسبيا).

هكذا انت تكون فهمت وجهة نظرى

اكيد ان يتم ترجمة OOP الى لغة الالة ولكن بشروط وليست عشوايا ولكنها صعبة جدا

اخ سلطان :

اقتباس
Sultan_Althibity  مشاركة بتاريخ اليوم, 02:12 AM

  أريد إجابة صريحـة الآن .....

هل يتحول كود السي بلس بلس مباشرة إلى لغـة الآلة أم يتحول اسمبلي أولاً

بصراحـة بعـد رد أحمد غريب أصبحت أعتقد أن الموقع التي أخذت منه هذه المعلومـة لا يدري عـن شيء

انا حريحك واجاوبك

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

يعنى :

----------------

MOV DX,5

----------------

MOV AX , DX

MOV AX , 5

نحن نريد وضع القيمة رقم خمسة فى المسجل AX ممكن عملية النقل تكون :

reg ,reg و reg ,mem و mem, reg و value , reg و value ,mem

كود الالة للعملية MOV يختلف فى كل مرة حسب نوع عمليات النقل البيانات

هذه العمليات فقط تاخذها التعليمة MOV المترجم ينظر الى اى نوع من انواع النقل ويقوم بكتابة كد الالة الخاص بها

وهذه هى مترجمات الاسمبلى بالنسبة لهذه الطريقة معظم التعليمات بما فيها عمليات الذاكرة FPU و تعليمات MMX وعلاقتها بالذاكرة ايضا

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

هذه هى لغة الالة

لكن لو حيتم برمجة لغة OOP ترجمة فورية الى 01010 11011 01001 مستحيل

حيهتم بايه ولا ايه هذه عملية شاقة تخيل ان عملية تحويل MOV الى لغة الالة تحتاج كل هه المعناه

فماذا عند تحليل متغير او وظيفة كاملة تحتوى كائنات وتحتوى بارمترات

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

لنصمم لغة x01

الفكرة انه يقوم بعمل ثلاثة عمليات SCANER

الاول : لقواعد اللغة x01

الثانى : لقواعد الاسمبلى

الثالث : لقواعد لغة الالة

وانتاج ملف تنفيذى

عملية الاسمبلى هنا هى مجرد ملف يحوى نفس فكرة البرنامج OOP بس بطريقة الاسمبلى ثم يستدعى خدمة القارىء الثالث ليحول الكود الى ملف تنفيذى

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

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

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

_____________________________

C Language && Windwos_API

_____________________________

#21

اخ سلطان :

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

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

_____________________________

C Language && Windwos_API

_____________________________

#22

يا حماده ممكن تدينى موقع واحد يثبت إلي إنتا بتقولو, موقع يقول إن الفيشول بيسك اسرع من السى شارب, وإن الoop لازم تتحول لاسملبي قبل ما تتحول للغة الاله..

اى موقع فى الانترنت انا موافق بس هات الدليل.. انا دورت لما اتحولت ومش لاقى اى موقع يقول إن الoop بتتحول اسمبلى الاول..

وما تقوليش إنتو متخيلين وإنتو مش متخيلين, فى بلاوى بتحصل فى الكمبيوتر ماحدش فينا يقدر يتخيلها ومافيش حاجة إسمها مستحيل.. مين إلي قال إنه مستحيل تحول الoop للغة الاله مباشرة؟

لو حفترض معاك إنه مستحيل يبقى يقدر الواحد يعمل اسمبلى من الجافا لان الjvm دى تعتبر اله بس من نوع software نفس الحاجه بالنسبة لـsmall talk وحتى لغة D برضو المفروض إنها تطلع اسمبلى على كلامك دا..

هات دليل نصدقك مافيش دليل يبقى بلاش تعمل شوشرة...

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#23

الموضوع لا يستاهل كل هذا ......

ماذا يا أحمد غريب هل تريد أن تحول الموضوع إلى ساحـة حرب أهلية كما هـو حال بعض مواضيع القسم

#24

لا اخى سلطان ولكنى لا احب المعلومات الغير موثقة, والاخ حماده ماشاء الله عليه متخصص فى هذا النوع من المعلومات..

انا فقط اطالبه بالدليل لانى لم اسمع بهذا من قبل...واريد ان يكون هناك مصداقية فى النقل حتى لا يفقد القسم والمنتدى مصداقيته فى نشر المعرفة

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#25

السلام عليكم

لحظة شباب انتو ليش غيرتو الموضوع الى الكومبايلرات وصارت حرب وراح تصير ضرابة وماعرف شنو!!!!!!! :o :o !!!!!!!!!!!!!!!!!!!!!

بس بس بس ارجعو للموضوع الأصلي و هو عن لغة " D " و خلو الموضوع يتحدث عن اخر الاخبار عنها فقط

وشكرا :blink: :blink: :blink:

تم تعديل هذه المشاركة بواسطة virus975 في 26 ديسمبر 2005 في 10:34

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

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