SAPL

23 يناير 2008

SAPL

SAPL هي اختصار لـ Simple Arabic Programming Language ، اي لغة البرمجة العربية البسيطة .

انهيت العمل عليها قبل اسبوعين تقريباً ، واحببت هذا المساء مشاركتم هذا العمل ( كنت اتمنى ان اطرحه في وقت سابق ، لاكن الوقت لم يسمح بذلك )، لاجل سماع ارائكم ومقترحاتكم حول هذا العمل ، والاهم هو اتاحة الفرصة الحقيقية للمهتمين بهذا المجال ( الطامحين لصناعة لغة برمجة عربية ) ، فهذه هي اول خطوة في مشوار الالف ميل.

كل ماتستطيع ان تقوم به هذه اللغة حاليا

مثال على البرمجة بلغة SAPL :

س = 10 .
ص = 20 .
اذا كان ( س < ص ) اطبع " is smaller than ".

يقول المترجم ( Compiler ) بتحويل اللغة الى لغة وسطية ( Intermediate Code ) وهي Batches ( المقدمة من النظام ) ، حيث اعتمدت بشكل اساسي على برنامجي الآخر BatchX لتمثيل الجزء الآخر ( Back End ) ليقوم بمهمة التحويل الى لغة الآلة.

ساحاول تطوير العمل ، ليصبح لغة برمجية متكاملة ( بشكل بسيط ) ، من اجل تسهيل عملية تعليم البرمجة للاطفال.

لتحميل اللغة :

sapl.zip

الكود ( C++Builder ) :

sourcecode.zip

مصنف في: C & C++, عام | | التعليقات: 6 »

C++BuilderX 1.5 Mobile Edition

4 أغسطس 2007

Cover

قامت شركة بورلاند مؤخراً بطرح منتجها C++ BuilderX 1.5 Mobile Edition بصورة مجانية والذي يعتبر من اهم وابرز بيئات التطوير لاجهزة الهاتف النقال وبالأخص انظمة سيمبيان ( Symbian OS ) ، وكان ذلك اثر انتقال هذه المنتجات الى الشركة الجديدة CodeGear ، نص الخبر في الرابط ادناه

Free Download: C++BuilderX 1.5 Mobile Edition

 

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

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

كنت ابحث عن المنتج قبل مدة واستمر بحثي عنه مايقارب 3 ايام دون فائدة ، رغم اعلان الشركة عن مجانيتة الا انه لاتوجد وصلة صحيحة او سليمة لتحميله

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

حيث قسمت البرنامج الى ثلاثة اجزاء ، حجمها الإجمالي هو 135MB

Rapidshare :

الجزء الأول

الجزء الثاني

الجزء الثالث

zShare :

الجزء الأول

الجزاء الثاني

الجزء الثالث 

#خطوات التثبيت:

1- قم بتحميل Active Perl ( انقر هنا للتحميل ) ، وتثبيته على الجهاز

2- قم تحميل SDK الخاصة بهذه البيئة ( S60 2nd Edition, FP 1 ) راجع التدوينة السابقة لمزيد من التفاصيل

3- تحميل وتثبيت Microsoft Debugging Tool ( انقر هنا للتحميل )

4- اذا لم تكن قد ثبت احدى اصدارت ميكروسوفت من Visual C++ على جهازك ، قم تثبيت Visual C++ Toolkit المجانية من ميكروسوفت

ويفضل انشاء ملف على المجلد الخاص بأدوات التطوير ( C:\Symbian ) بإسم “MSDEV” وقم بتثبيت الحزمة السابقة علية

5- الآن قم بتثبيت بيئة التطوير C++BuilderX

6- قم بتحرير الملف “BLDMAKE.BAT” داخل مجلد ادوات التطوير ( ربما يكون على المسار C:\Symbian\7.0s\Series60_v21\Epoc32\tools )

ابحث عن السطر التالي :

perl -S bldmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9

واستبدله بالسطر التالي :

perl -IC:\Symbian\7.0s\Series60_v21\Epoc32\tools -S bldmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9

7- قم بإنشاء ملف فارغ داخل على المسارC:\Symbian\7.0s\Series60_v21\Epoc32\wins\c\system\Bootdata بإسم “ErrRd”

8- قم بإعادة تشغيل الجهاز ، ثم افتح بيئة التطوير C++BuilderX

9- من القائمة اختر Tools > Symbian SDK Configuration

1.gif

10 - اخر ” ADD ” ، ثم قم بتحديد مسار SDK ، واختر اصدارتها من القائمة ثم حدد اسم لها

2.gif

الآن اصبحت جاهز للعمل على هذه البيئة الرائعة

مصنف في: C & C++ | | التعليقات: 21 »

Symbian تحت المجهر

26 يوليو 2007

Symbian Logo

#مقدمة :

Symbian هو نظام تشغيل ( Real Time ) موجه لأجهزة الهاتف النقالة ( Smart Phone ) ،

تعود بداياته لعام 1980 ولاكن تم اطلاقة بشكل رسمي في عام 1998. يعد من اكثر انظمة التتشغيل شعبية،

تم تطويرة من قبل عملاقة مصنعي الاجهزة النقالة ( Nokia, Ericsson, Sony Ericsson, Panasonic, Siemens AG …. ).

Supported Mobiles

#اصدارات النظام :

توجد هناك عدة اصدارات لهذا النظام ، وهي مقسمه حالياً على ثلاث فئات ، سنستعرضها بالتفاصيل

#التطبيقات :

يتم تطوير التطبيقات لهذا النظام بطرق مختلفة

C++BuilderX

Carbide

NetBeans

تختلف امكانيات كل بيئة عن الاخرى ، ومايفضل الواحدة عن الاخرى هو احتياجاتك.

يتم التطوير التطبيقات بإستخدام ادوات التطوير ( SDK ) والتي سنستعرضها في الحزء القادم .


#SDK - software development kit:

توجد نسخ مختلفة لهذه الادواة حسب الاصدارات الموجهة لتلك الهواتف ( استعرضنها في الجزء الأول من الموضوع )

حيث تحوي هذه الحزمه مكتبات النظام ( APIs Libraries ) ، المحاكي ( emulator ) ، الامثلة ( Example ) ،

المجمع ( a target compiler ) ، والوثائق (user documentation) .

-ملاحظة : روابط التحميل هي لبيئات التطوير ( MS Visual C++ and Borland C++BuilderX ) ، للحصول على اصدارت اخرى

او للحصول على اصدارت SDKforJava ، يمكتك مراجعة الروابط التالية

Series60

Series80

UIQ

Symbian Developer

مصنف في: Java, C & C++, عام | | تعليق واحد »

KeyLayout

8 يوليو 2007

بدأت الفكرة من هاهنا

فهي عبارة عن برنامج يقوم بتبديل النصوص مابين واجهات الإدخال

فعلى سبيل المثال : اردت كتابة نص باللغة العربية ، وليكن ” بسم الله الرحمن الرحيم”

بعدما انهيت الكتابة وجدت انك لم تعدل واجهة الادخال بل كانت اللغة الانجليزي

1.gif

فاصبح النص الذي كتبته هو ” fsl hggi hgvplk hgvpdl ” ماذا ستعمل !!!

سيكون الحل البديهي هو مسح النص وكتابته من جديد :)

لاكن مع هذا البرنامج ، لن تعيد الكتابة بعد اليوم ;) ، كل ماعليك هو تحديد النص

والضغط على المفتاج الساخن ( ctrl+alt+t ) ثم تحدد واجهة الادخال المناسبة

2.gif

وستحصل على النص الصحيح

3.gif

العمل مازال في بداتيه ، يمكنك متابعة تطورات العمل في ساحة النقاش

تم كتابة البرنامج في كل من

Delphi

kl4d.zip

C++ Builder

kl4cb.zip

مصنف في: Delphi, C & C++, عام | | التعليقات: 4 »

Export Table

6 يونيو 2007

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

يوجد عنوان الجدول عند الازاحة 178 من بداية الملف ( RVA )

1.gif

عند الذهاب الى عنوان الجدول سنجد التالي

2.gif

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

struct _IMAGE_EXPORT_DIRECTORY {
0x00 DWORD Characteristics;
0x04 DWORD TimeDateStamp;
0x08 WORD MajorVersion;
0x0a WORD MinorVersion;
0x0c DWORD Name;
0x10 DWORD Base;
0x14 DWORD NumberOfFunctions;
0x18 DWORD NumberOfNames;
0x1c DWORD AddressOfFunctions;
0x20 DWORD AddressOfNames;
0x24 DWORD AddressOfNameOrdinals;
};

مايهمنا هو شيئين NumberOfNames و AddressOfNames
في الصورة السابقة قمت بتلوين مكان وجود الحقل NumberOfNames باللون الاصفر
وكذلك AddressOfNames باللون الاخضر

من الصورة السابقة
NumberOfNames = 10 وهي عدد الدوال
AddressOfNames = 040068 وهي بداية عنوان جدول الاسماء

لننتقل الى AddressOfNames

3.gif

ما هو مظلل باللون الرصاصي يشير الى بداية الجزء ويمثل عنوان اسم اول دالة ( حجم العنونة DWord )
للنتقل الى هذا العنوان

4.gif

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

هذا كل مافي الأمر،
وقد قمت بعمل برنامج بـ C++ Builder يقوم بإستخراج اسماء الدوال من جدول Export Table تلقائياً
يمكنك الاطلاع عليه فهو مرفق مع السورس كود

5.gif

exporttable.zip

مصنف في: C & C++, عام | | لا تعليقات »

المواضيع السابقة