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

مارايك عزيزى المبرمج العربى فى البرمجة بوصف الخيال ( لغة البرمجة الجديدة Supernova) ؟

بدأه PWCT Maker في 1 أغسطس 2009 · 26 رد · 3,816 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

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

ان لكل لغة برمجة شكل ولون وطعم خاص بها فمثلا الـ Java تختلف عن #C والـ VB شىء والـ Delphi شىء اخر

والـ Python عالم والـ Ruby عالم اخر ويوجد هناك الكثير من لغات البرمجة المتنوعة.

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

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

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

اللغة الجديدة التى بدات فى تطويرها هى لغة Supernova

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

http://www.sourceforge.net/projects/supernova

وفى تسجيل المشروع تجد تعريف المشروع باختصار والشىء الجديد الذى يقدمه.

post-167987-1249079543_thumb.jpg

ملحوظة (1)

Supernova تعنى (النجم المتفجر الأعظم) وهو احد مصطلحات علم الفلك

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

ملحوظة (2)

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

ملحوظة (3)

هذا مثال لبرنامج بسيط مكتوب باللغة الجديدة

يقوم البرنامج بعرض نافذة تشتمل العبارة hello world وتشتمل على 2 زر امر الاول بعنوان (say hello) والاخر بعنوان (خروج)

عند الضغط على الزر الاول يتم عرض رسالة hello فى مربع نص بينما عندما يتم الضغ على الزر الثانى يتم انهاء البرنامج

i want window contains 2 buttons where the window title is hello world and the first button title is say hello and the second button title is exit when the first button pressed show messagebox with text hello and when the second button pressed close the application.

والان قد وصلت الى نهاية هذه الرسالة

ولكنها بداية لحوار علمى مثمر وشيق يتناول النقاط التالية

1 - ماذا تريد او تتوقع فى لغة البرمجة الجديدة ؟

2 - مارايك فى الاسلوب الجديد الذى تقدمه اللغة وهو اسلوب البرمجة بوصف الخيال Programming With Fiction Description ؟

والله الموفق

مع اجمل تحياتى

م. محمود فايد

تم تعديل هذه المشاركة بواسطة PWCT Maker في 1 أغسطس 2009 في 01:54

#2

وعليكم السلام ورحمة الله وبركاته ..

لا استطيع ان اضيف هنا إلا الدعاء لك بالتوفيق ،، اسأل الله ان يجعلك نافعاً للمسلمين ..

بارك الله فيك واسأل الله ان يبارك في مشاريعك وألاحظ نشاطك المستمر ( اسأل الله ان يجعله في نفع المسلمين ) في طرح المشاريع المستمره ..

وفقك الله ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#3

بصراحة عجبتني فكرة و بارك الله فيك على التميز و أبداع

أردت أن أسال سؤال معليش

البرانامج المستعرض في مثالك الذي يقوم بعرض نافذة هل عندما أغير التعبير كتابة الكود(مع الحفاظ على متغيرات) يتغير البرنامج ام انه يبقا كما هوا

#4

السلام عليكم :

أخى الكريم مبارك على المشروع و الفكرة الجديدة

لكن لى سؤال بسيط : هل سيكون الكود بالشكل التالى

اقتباس
i want window contains 2 buttons where the window title is hello world and the first button title is say hello and the second button title is exit when the first button pressed show messagebox with text hello and when the second button pressed close the application.

اذا كانت الإجابة بنعم اعتقد انه سيحتاج الى بعض التعديلات و كيفية بناء الجمل ، و طرق توضيح بناء كل جملة و بدايتها و نهايتها

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

بالتوفيق ان شاء الله

#5

السلام عليكم ..

كيفك محمود .. والله زمان ما تحدثنا ..

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

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

لان المبرمج عندما يحتاج الى نافذه فانه سيكتب كل تلك الاسطر التي كتبتها انت ..

فلو ذهبنا الى VB6 ستجد انه عندما تنقر على الزر لغرض كتابة الكود فيه .. او اي اداة اخرى .. فانه تلقائيا سيضع لك الكود الثابت مثلا ..

Private Sub Form1_Load

وفي بيئة VS.Net منذ 2003 وحتى 2010 .. فالمترجم اصبح يتكفل باغلب الامور اكثر من السابق ..

واكيد ان تعرف الكثير من هذه الامور .. مثلا ..

مجرد ان تكتب If وبعدها الشرط .. مباشرة يكتب لك Then مع End If ..

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

ولو قام بكتابة كل هذه الامور بنفسه .. لاصابه الملل للاسطر الطويلة .. بينما في المترجمات الاخرى( مثل VS.Net ) اصبح الاختصار بخاصية Intelecens ( اعتقد اني اخطأت بالكتابه) مجرد ان تكتب اول حرف وهي تتكفل بارشادك الى الكلمة المطلوبة ..

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

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

where is the articales ?

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

تحياتي العطرة ..

اخوك سنان محمد صالح

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#6
PWCT Maker كتب:

اثناء عملى على كل لغات وانظمة البرمجة

هو فى حد كدا ؟
#7
اقتباس
i want window contains 2 buttons where the window title is hello world and the first button title is say hello and the second button title is exit when the first button pressed show messagebox with text hello and when the second button pressed close the application.

والله اخي محمود يعجبني تفانيك في فكرتك لكن؟؟

في نظري من المستحيل عمل ذلك... اللغة البشرية هي مجموعة رياضية ضخمة.. اما لغات الكمبيوتر هي مجموعة اضغر بكثير منها و داخلها..

علماء الرياضيات عندما بسطوا الامر الى مجموعة اصغر عرفوا لماذا.. ام تريد ان تكتب جدول lexical syntax فيه مليار عمود؟؟

انا تعبان

انا تعب

انا متعب

--------

كلها تؤدي نفس المعني .. لكنها ليست مماثلة لبعضها في الحاسوب.... الا اذا اردت ان تعيد تعريف automata

هذه وجهة نظري فلا تظن اني انتقدك بها

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#8

الآن دخلت في مجال البرمجة بدون كود، بالتوفيق إن شاء الله

سوف أكون من المتابعين على ال Sourceforge

صراحة هذه اللغه هي ما أفكر به من أيام الطفولة :lol:

#9

محتوى مخالف

تم تعديل هذه المشاركة بواسطة ahmad123 في 2 أغسطس 2009 في 01:57

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

#10

يرجى حذف هذه الهههه لانها ليست اجابة مفيدة <_<

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#11

السلام عليكم ..

لا عليك أخي محمود, على الرغم من الاختلاف معك في أحيان, إلا أنك أثبت أن مصر على هدفك, و أرفع لك القبعة حقيقة :)

الفكرة جميلة, و طبقت من قبل :

HAI
BTW LOL I HAS A FIZZBUZZ EXAMPLE

CAN HAS STDIO?
I HAS A NUMBAR
LOL NUMBAR R 0

I HAS A MACKSIMUM
LOL MACKSIMUM R 100

IM IN YR LOOPZ
	LOL NUMBAR R NUMBAR UP 1

	I HAS A NUMBAR_IZ_CHEEZ
	LOL NUMBAR_IZ_CHEEZ R 0

	I HAS A NUMBAR_IZ_BURGER
	LOL NUMBAR_IZ_BURGER R 0

	I HAS A COUNTAR
	LOL COUNTAR R 0 

	I HAS A MAX_COUNTAR
	LOL MAX_COUNTAR R NUMBAR OVAR 3

	IM IN YR LOOP
		LOL COUNTAR R COUNTAR UP 1

		BTW I CHECKIN FOR CHEEZ LOL
		I HAS A CHEEZ_NUMBAR
		LOL CHEEZ_NUMBAR R COUNTAR TIEMZ 3
		IZ CHEEZ_NUMBAR LIEK NUMBAR?
		YARLY
				LOL NUMBAR_IZ_CHEEZ R 1
		KTHX

		BTW I CHECKIN FOR BURGER LOL
		I HAS A BURGER_NUMBAR
		LOL BURGER_NUMBAR R COUNTAR TIEMZ 5
		IZ BURGER_NUMBAR LIEK NUMBAR?
		YARLY
				LOL NUMBAR_IZ_BURGER R 1
		KTHX

		IZ COUNTAR BIGR THAN MAX_COUNTAR?
		YARLY
				GTFO
		KTHX
	KTHX

	IZ NUMBAR_IZ_CHEEZ LIEK 1 AND NUMBAR_IZ_BURGER LIEK 1?
	YARLY
		VISIBLE "CHEEZBURGER"
	NOWAI
		IZ NUMBAR_IZ_CHEEZ LIEK 1?
		YARLY
				VISIBLE "CHEEZ"
		NOWAI
				IZ NUMBAR_IZ_BURGER LIEK 1?
				YARLY
						VISIBLE "BURGER"
				NOWAI
						VISIBLE NUMBAR
				KTHX
		KTHX
	KTHX

	IZ NUMBAR UP 1 BIGR THAN MACKSIMUM?
	YARLY
		GTFO
	KTHX
KTHX
KTHXBYE

LOLCODE

في مكتبة boost ستجد spirit, أنصحك باستخدامه و تعلمه إن كنت تنوي بناء parser للغتك الجديدة.

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

تحياتي ..

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 2 أغسطس 2009 في 01:44

#12

- مستقبل البرمجة بدون كود هو ألا تحتاج الي المبرمج أساسا لتطور برنامج فسيكون هناك أدوات لتطوير البرنامج بالماوس مثلا و في عدة خطوات و هذا الله وحده يعلم متي سيكون و لكني اعتقد ان ميعاده قد اقترب جدا خاصة بعد أداتك البرمجة بدون كود.

- لدي فكرة أفضل و هي تطويرا لفكرتك و استنباطا منها ألا و هي ان تدخل مجال التعرف علي الصوت و هو قسم من مجالات الذكاء الصناعي المتطور يهتم بكيفية ادارة الكمبيوتر بواسطة الصوت بحيث تستقبل الصوت من ميكروفون الكمبيوتر و تبدا بتحليله ثم فهمه ثم تطبيق أوامره مثلا تستطيع برمجة نظام صوتي لادارة الويندوز بالكامل صوتيا و تطبيقاته لا حصر لها في مجالات الترجمة الفورية مثلا و في مجالات البرمجة بدون كود و في تطبيقات كثيرة أخري...

طبعا سيكون عليك تحليل لغة هذا الصوت عربية مثلا او انجليزية او اي كان ثم تحديد الأمر الذي تم توجيهه للحاسب و من ثم تنفيذ هذا الامر اذا تم التعرف عليه

وفقك الله ... و أفضل ما فيك ما شاء الله هو ابداعك المستمر

تم تعديل هذه المشاركة بواسطة robot2030 في 2 أغسطس 2009 في 06:04

[يمين]في زمان كل شئ فيه يتحرك بسرعة ... كونك ثابتا يعني انك تتحرك للوراء...

[/يمين]

#13

السلام عليكــم ورحمـة الله وبركاتــه ،،

بداية ادعو لك بالتوفيق

ثانيا عندي مداخلة

هناك نوعين من البرمجة

Declarative programming

Imparitive programming

الأولى هي ان تحدد ماذا تريد؟ what to do والكمبيوتر يقوم بالباقي , مثل تصميم واجهات البرامج GUI , وايضا لغة SQL حيث انك تحدد النتائج التي تريد الحصول عليها

الثانية هي ان تبرمج بنفسك ماذا تريد How to do , مثل اغلب لغات البرمجة

ماقمت بوضعه ينطبق على الاولى , خصوصا انك وضعت مثال لواجهة الاستخدام وليس برمجة فعلية مثل برمجة خوارزمية, وهذا صعب جدا جدا لأنه لو صار فهذا يعني الاستغناء عن جميع المبرمجين في العالم

مثلا هل من الممكن ان تكتب الكود التالي:

get all prime numbers between 132 and 1983

?

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

انصحك تقرأ عن الــ Predicate Logic و الــ First Order Logic

#14

فى رأييى المتواضع ... لو قمت تخصيص لغتك فى مجال معين ... عمل برامج الجوال مثلا ستكون أفضل مع مراعة أن تقلل مفرداتها (keywords)

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

تحياتى

#15

السلام عليكم ...

اقتباس
ماقمت بوضعه ينطبق على الاولى , خصوصا انك وضعت مثال لواجهة الاستخدام وليس برمجة فعلية مثل برمجة خوارزمية, وهذا صعب جدا جدا لأنه لو صار فهذا يعني الاستغناء عن جميع المبرمجين في العالم

الحقيقة ليس واضحاً هل supernova لغة declarative أو imperative :)

لا أدري أصلاً إن كان يمكن أن تسمى لغة برمجة,

أذكر حتى الآن كيف يقوم Prolog بترتيب list معينة, يقوم بعمل permutations للقائمة بجميع الاحتمالات, ثم يقارن كل قائمة بما طلبه المبرمج :lol:

لا أعتقد أصلاً أن هذه الطريقة ستنجح كمجال عام, إنما ستتطور في مجالات متخصصة.

تحياتي ..

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 5 أغسطس 2009 في 03:46

#16

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

واعتذر عن التاخر فى الرد بسبب السفر

فيما يلى* بعض* سمات لغة البرمجة Supernova

(التى تقدم مفهوم البرمجة بوصف الخيال Programming with fiction description )

1 - وحدة البناء ليست مجرد جملة Statement مثل لغات البرمجة الاخرى

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

2 - طريقة الكتابة تقوم على اساس

Not case sensitive

Not Line Sensitive

Not Space Sensitive

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

حروف صغيرة او كبيرة

وفيما يلى مثال على تلك الخاصية

i want window
I Want Window

iwantwindow

Iwant w i n d o w

i
w
a
n 
t
win
dow

3 - بناء التطبيق يتم على مرحلة واحدة او مرحلتين

المرحلة الاولى : وصف الخيال Describe

ويمكن تصورها مبدئيا انها تقابل Declarative programming

المرحلة الثانية (إختيارية) : التخليق Create

ويمكن تصورها مبدئيا انها تقابل Imparitive programming

المرحلة الاولى تنتج تطبيق يمكن ان يكون باكثر من صورة مختلفة ولكن يؤدى نفس الوظيفة

المرحلة الثانية اختيارية يمكن ان تتم بشكل الى او تتم من خلال التدخل البشرى بمساعدة مصممات متطورة.

المرحلة الاولى تعتمد على المواجهة النصية Text-based

بينما المرحلة الثانية اذا تمت من خلال التدخل البشرى فهى تعتمد على المواجهة الرسومية GUI

4 - قابلية التحويل الى صورة مصدرية جاهزة للتعامل معها فى بيئات تطوير ولغات برمجة مختلفة بسهولة

5 - اللغة يتوفر لها مفسر لسهولة الاستخدام ولكن بنائها الداخلى يشتمل مترجم متكامل لتحديد الخطأ قبل التنفيذ

وتوفير الوقت من خلال الترجمة مرة واحدة والتنفيذ اكثر من مرة عند الحاجة

6 - اللغة يمكن ان تعمل كـ Desktop application او على شبكة (مااختلاف نوعها) كـ Distributed application

وبناء اللغة كنظام Distributed يعتبر محاكاة لنظام الانترنت بحيث تصبح قدرات اللغة على المدى البعيد اكبر بكثير مما يمكن تصوره

حيث يمكن لاى شخص فى اى مكان فى العالم ان يضيف الى اللغة وفى نفس اللحظة التى يضيف فيها شيئا جديدا يمكن للاخرين ايجاده عند

الحاجة واستخدامه بسهولة.

اقتباس
فى رأييى المتواضع ... لو قمت تخصيص لغتك فى مجال معين ... عمل برامج الجوال مثلا ستكون أفضل مع مراعة أن تقلل مفرداتها (keywords)

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

تحياتى

المقترح الذى تقدمه اخى الحبيب قدم عام 2004 فى نمط برمجة اللغات الموجهة Language Oriented Programming

اقتباس
الحقيقة ليس واضحاً هل supernova لغة declarative أو imperative

لا أدري أصلاً إن كان يمكن أن تسمى لغة برمجة,

Supernova تستفيد من كلا الاسلوبين وتجعل للمبرمج/المطور/المستخدم الاختيار حسب الحاجة

بخصوص مصطلح (لغة برمجة) فهى الاداة التى تستخدم فى بناء التطبيقات

ويحدد نوع اللغة والجيل الخاص بها حسب طريقة بنائها وطريقة عملها واستخداماتها.

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

انصحك تقرأ عن الــ Predicate Logic و الــ First Order Logic

الافكار الجديدة الجيدة تجعل المستقبل البعيد اقرب مما كان عليه ان شاء الله.

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

وربنا يوفقنا جميعا يارب ان شاء الله

والله الموفق

#17

ما الذى انتهيت منه حتى الان يا اخ محمود ,, بمعنى هل ال grammar انتهى وبدأت فى ال Lexer/Parser , أم ماذا ؟

---

اقتباس
أذكر حتى الآن كيف يقوم Prolog بترتيب list معينة, يقوم بعمل permutations للقائمة بجميع الاحتمالات, ثم يقارن كل قائمة بما طلبه المبرمج

من اين اتيت بهذا الكلام تحديدا يا اخ خالد ,, عملت فتره بال Prolog ولا اذكر شىء مثل هذا

#18

اتمنى لك التوفيق

بأي لغه سوف تعمل الكومبيل للغه

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

#19

السلام عليكم,

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

هذه النقطة علقت ببالي عندما كنا ندرس مادة لغات البرمجة, و ذكر مؤلف الكتاب Sebesta أن أحد عيوب Prolog هو عملية الترتيب.

لا يمكنك كتابة عملية ترتيب بالمنطق الذي نعرفه في اللغات الـ imperative, و إنما محرك Prolog يقوم بعمل بإنتاج جميع الـ permutations الخاصة بالـ list, ثم يقارنها بالمواصفات التي وضعتها في كود Prolog.

لاحظ أن هذا الكلام عن أي لغة declarative, و ليس Prolog فقط, و لا أدري صراحة إن كان في بيئات العمل الحقيقية, يتم تفادي هذا الأمر باستخدام لغة imperative مثلاً و ربط الكود الناتج ليستخدمه محرك Prolog.

تحياتي ..

#20
اقتباس
لا يمكنك كتابة عملية ترتيب بالمنطق الذي نعرفه في اللغات الـ imperative, و إنما محرك Prolog يقوم بعمل بإنتاج جميع الـ permutations الخاصة بالـ list, ثم يقارنها بالمواصفات التي وضعتها في كود Prolog.

هل من الممكن ذكر رقم الصفحه ؟ (وارفاق الكتاب ان كان الوصول اليه صعب :P )

عندما بحثت عن الموضوع صراحه لم اجد شيئا من هذا , يمكنك عمل Sorting فى ال Prolog وغيرها من لغات ال Logic Paradigm بطريقه مشابهه الى حد كبير بالمستخدمه فى ال Functional languages ,, دون اى مشكله مرتبطه بال Paradigm (أعنى اننا لسنا نتكلم عن Implementation detail هنا )

#21

جميل جدا يامحمود ..

يبدو انك وصلت الى مرحلة جيده بالمشروع .؟

باي اللغات ستعمل لانجاز اللغة . ؟

اتمنى لك التوفيق ان شاءالله ..

تحياتي العطرة ...

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#22
اقتباس
هل من الممكن ذكر رقم الصفحه ؟ (وارفاق الكتاب ان كان الوصول اليه صعب tongue2.gif )

عندما بحثت عن الموضوع صراحه لم اجد شيئا من هذا , يمكنك عمل Sorting فى ال Prolog وغيرها من لغات ال Logic Paradigm بطريقه مشابهه الى حد كبير بالمستخدمه فى ال Functional languages ,, دون اى مشكله مرتبطه بال Paradigm (أعنى اننا لسنا نتكلم عن Implementation detail هنا )

كتاب Concepts of Programming Languages للكاتب Sebesta.

صفحة 689 الفصل 16 الفقرة 16.7.4 - intrinsic limitations

sorted ([]).

sorted ([x]).

sorted ([x, y | list]) :- x <= y, sorted ([y | list]).

The problem with this sort process is that it has no idea of how to sort, other than simply to enumerate all permutations of the given list until it happens to create the one that has the list in sorted order - a very slow process indeed.

So far, no one has discovered a process by which the description of a sorted list can be transformed into some efficient algorithm for sorting.

قمت بكتابة جزء من الفقرة, لأني للأسف لا أعرف مكاناً أحمل منه الكتاب :)

يبدو أني بالفعل أخطأت في التعبير في الرد السابق, ما كنت أقصده هو أنه لا توجد طريقة أخرى لكتابة عملية الترتيب بطريقة declarative. بالطبع يمكنك كتابة خوارزميات البحث الشهيرة في Prolog,

و لكن لا تنسى أن ما قمت به هو استخدام الأدوات الـ imperative في Prolog للقيام بهذا الشيء, و لم تبرمج بطريقة declarative :)

#23

معلومه ظريفه ,, شكرا

الفكره هنا , انه يريد ان يميز ال Logic Languages عن نظيراتها ال functional و ال Imperative بميزه كونها declarative

ولما كان كل شىء لا يمكن معالجته بهذا الشكل (قصور فى ال Inference Engine فى رأى الكاتب ) فأنك تضتطر لاتباع الاساليب ال imperative (فى ال Prolog تتبع ال functional style )

---

وجدت الكتاب هنا لمان يريده :

http://rapidshare.com/files/44511317/concpls5.rar

#24

فكرة هذه اللغة جميله جدا

هل سيتم شرح الفكرة من ناحية كيفيه عمل البرنامج ؟

يعني الخوارزميه كيف ستكون ؟

لكي نقوم بالتفكير معك في حلول وأفكار ربما تفيدك :)

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#25

السلام عليكم ورحمة الله وبركاته

رمضان كريم وكل عام وانتم جميعا بخير

اقتباس
ما الذى انتهيت منه حتى الان يا اخ محمود ,, بمعنى هل ال grammar انتهى وبدأت فى ال Lexer/Parser , أم ماذا ؟

العمل فى بدايته وباب المشاركة مفتوح

لقد تم تحديد الاهداف الاساسية والسمات التى تميز اللغة (اى انتهت مرحلة التحليل وتحديد الهدف والمشاكل المتوقعة)

وجارى حاليا العمل فى مرحلة التصميم والتى تقدم حلول عملية للمشاكل المتوقعة

وبالنسبة لمعمارية اللغة الجديدة Architecture فهى لاتستفيد كثيرا من قواعد ونظريات بناء المترجمات Compilers وذلك تحدى كبير والسبب فى ذلك

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

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

ال Grammar الخاص باللغة يمكن توقعه من خلال وصف Supernova بانها تدعم البرمجة بوصف الخيال من خلال Subset of pure human language

بمعنى انها تقوم على Phrase structure grammer اى Grammer of type 0

وهذا فى حد ذاته يقدم تحديات عديدة اهمها

1 - الخوارزميات المتوفرة لهذا النوع غير عملية اما من ناحية الاداء او بسبب شدة التعقيد

2 - يدخل الذكاء الصناعى بقوة حيث يمكن ان يكون للقطع والجمل اكثر من معنى مختلف يحتاج الى تحديد

امثلة على التحديات المتوفرة اثناء تصميم اللغة

Statement -> pronoun/noun verb pronoun/noun

هذه القاعدة تجعل الامر التالى يصنف ضمن اللغة

I Want Window

ولهذا الامر فائدة وهى انشاء نافذة

ولكن هذه القاعدة ايضا تقبل الامر التالى

I Like You

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

مثال

when I Like You please show message wow

I am Mahmoud and You are Computer and Mahmoud Like Computer

حيث تم استخدام I Like You والاستفادة منها عمليا

ايضا من التحديات التى تواجه اللغة

انها لسيت Space Sensitive بمعنى

I Want Window يمكن ان تكتب IWantWindow او iwantwindow او بصورة مختلفة

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

انظر الجملة التالية

window title is hello

هذه الجملة تصنف تحت القاعدة

Statement -> noun property verb data

وهذه الجملة يمكن ان تكون على الصورة

windowtitleishello

وتخيل مثلا حرف i الموجود فى كلمة is كيف سيتم تحديد

هل هو pronoun ام اضافة s اليه ليكون verb

كذلك كلمة hello تبدا ب he فكيف سيتم تحديد هل he

عبارة عن pronoun ام انها تضاف الى llo لتكون hello

التى تمثل data

ان Supernova مشروع طموح يهدف الى

1 - خدمة البشرية بتقديم وسيلة اكثر من رائعة لبرمجة الكمبيوتر

2 - مواجهة عملية لتحدى من اكبر تحديات الذكاء الصناعى وهو استيعاب ماوراء الكلمات التى تكتب بلغة طبيعية يستخدمها الانسان

اقتباس
باي اللغات ستعمل لانجاز اللغة . ؟

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

1 - سهولة التعرف على الاسلوب الداخلى المتبع فى بناء اللغة

2 - توفير نموذج من اللغة مساحتة لاتزيد عن 2 ميجا بايت

3 - توفيير امكانيات جيدة فى وقت قصير (دعم GUI و Database ......إلخ)

4 - سرعة التحقق من صحة وكفاءة الخوارزميات التى يتم وضعها.

5 - سرعة وضع سمات اللغة الجديدة تحت الاختبار

بعد الانتهاء من مرحلة التصميم سيتم بناء اللغة باستخدام لغة ++C و Qt لتحقيق الاهداف التالية

1 - سرعة الاداء

2 - كسب عدد كبير من المبرمجين لتطوير المشروع

اقتباس
وجدت الكتاب هنا لمان يريده :

http://rapidshare.com/files/44511317/concpls5.rar

بارك الله فيك وجزاك الله خيرا على المساهمة الفعالة فى اثراء الموضوع

اقتباس
فكرة هذه اللغة جميله جدا

هل سيتم شرح الفكرة من ناحية كيفيه عمل البرنامج ؟

يعني الخوارزميه كيف ستكون ؟

لكي نقوم بالتفكير معك في حلول وأفكار ربما تفيدك

سيتم شرح كل شىء وسيتم عرض المشاكل والحلول وباب المشاركة

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

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

1 - البيانات الاساسية (الاسم - البلد - العمر - الوظيفة)

2 - اسم ال user acount على الـ sourceforge

وسيتم اضافة المتطوعين الى موقع المشروع

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

التوثيق النهائى الخاص بالمشروع

وباذن الله سيكون هذا العمل

1 - زيادة لنا فى العلم والخبرة

2 - نموذج راقى لعمل جماعى طموح

والله الموفق

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

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

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

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

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