1/03/2014

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

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


إصدارات فيجوال بيسك
فيجوال بيسك 1
الإصدار الأول من Visual Basic كان محدود للغاية. ولم يكن موجه لتطوير التطبيقات الحقيقة لبيئة Windows. مع انه كان سهل الاستخدام ذو واجهة رسومية ولغة برمجة مرئية إلى انه كان يعتبر كلعبة مسلية للمبرمجين.
فيجوال بيسك 2
الإصدار الثاني من Visual Basic لم يظهر أي جديد باستثناء إضافة القليل من الخصائص ودعم أفضل لبيئة التطوير المتكاملة IDE. لكن في تلك الفترة، ظهر مولود جديد وهو النظام Access 1.0 لقواعد البيانات العلائقية وكان كل تركيز شركة Microsoft هو الدمج بينهما.
فيجوال بيسك 3
يعتبر الإصدار الثالث هو بداية طريق النجومية أو الشهرة لـ Visual Basic! حيث قدم دعم لقواعد البيانات وأصبح ذو نهاية مفتوحة بفضل الإضافات التي كنت تستطيع دمجها مثل VBX والتي تطورت فيما بعد إلى OCX. ظهرت الكثير من التحسينات في بيئة التطوير المتكاملة IDE وهاجر مئات إن لم يكن آلاف المبرمجين إلى Visual Basic. وبدأت تلك اللغة كمنافس ضعيف لتطوير البرامج الحقيقية أو التجارية لأنه كان ما زال ينقصها المزيد.
فيجوال بيسك 4
كان الهدف الأساسي من الإصدار الرابع هو مرحلة انتقالية إلى Windows 95 أو إن صح التعبير، القابلية لتطوير تطبيقات من نوع 32 bit. وكان أول إصدار من إصدارات Visual Basic تولد شيفرة للعمل تحت معالجات من نوع 32Bit. ليس هذا فقط! بل أضاف الإصدار الرابع إمكانية لإنشاء مكتبات من نوع ActiveX DLL والتي زادت في شهرة Visual Basic حتى أصبحت اللغة معترفة كلغة برمجة لإنشاء تطبيقات حقيقية حيث أضاف الميزة التي انتظرها المبرمجون وهي البرمجة الكائنية التوجه OOP لكنها كانت محدودة بسبب استطاعتك بإنشاء الفئات Class فقط دون أي إمكانية إضافية كتعدد الواجهات Polymorphism أو الوراثة Inheritance.
فيجوال بيسك 5
الإصدار الخامس كان بمثابة الإعلان الرسمي في أن لغة Visual Basic هي لغة برمجة لتطوير التطبيقات الحقيقية والتجارية. حيث أضاف العديد من أنواع المشاريع كـ ActiveX Controls و ActiveX Documents وغيرها.. وإضافة مزايا عديدة للتحكم بشيفرة ملف الـ EXE الذي يخيرك من تحويل الشيفرة المصدرية إلى P-Code أو Native-Code. بالإضافة إلى التحسن الحقيقي لبيئة التطوير المتكاملة IDE والدعم الإضافي لقواعد البيانات.
فيجوال بيسك 6
الإصدار السادس لا يختلف عن الإصدار الخامس كثيرا لكن هناك العديد من التحسينات وعلاج للأخطاء التي كانت موجودة في الإصدار الخامس. من أهم الإضافات في الإصدار السادس هي الزيادة في أدوات قواعد البيانات والمبنية على ADO. كذلك تحسن واضح في أدوات التحكم. وهناك العديد من التطوير في لغة البرمجة كدعم أنواع البيانات المعرفة من قبل المستخدم UDT والزيادة في الدوال Functions. وإضافة المزيد من الويزارد Wizards ودعم لتطبيقات الإنترنت Internet. والكثير والكثير من التحسينات.
فيجوال بيسك.نت
تم إنتاج هذا الإصدار مع تغيير جذري عما سبقه من الإصدارات ولقد صدر في ظل هذه التقنية أربعة إصدارات إلى الآن
فيجوال بيسك.نت 2003
فيجوال بيسك.نت 2005
فيجوال بيسك.نت 2008
فيجوال بيسك.نت 2010


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


فيجوال بيسك ليس كما كان
لعلك سمعت كثيراً عن لغة الـ BASIC، وقد تجنب تعلمها بسبب حدودها التي تقصر إمكانياتها كسائر لغات البرمجة. لكن مع الإصدارات الحديثة من Visual Basic فإن الأمر اختلف! فالآن أصبحت إمكانيات اللغة بلا حدود. وقابلية التطوير لا نهائية أي أنه أصبح ذو نهاية مفتوحة. فعن طريق الإضافات Add-Ins وأدوات التحكم الخارجية ActiveX Control ومكونات COM بصفة عامة، تستطيع إنجاز كل ما استطعت إنجازه باللغات المختلفة. فلإضافة مكون COM جديد لا يتطلب الأمر منك سوى تحديد اسم وملف المكون ومن ثم استخدامه مباشرة! حقيقة لقد أصبحت أكثر تطوراً


التوافقية مع ويندوز
التطبيقات التي تنشئها بواسطة Visual Basic متوافقة 100% مع إصدارات Windows المختلفة. فالنواة الداخلية للتطبيقات المنشئة بواسطة Visual Basic هي عبارة عن سيل من إجراءات API التي عبارة عن روح نظام Windows. أما عن الدوال الإضافية التي توفرها لغة البرمجة فهي موجودة في مكتبة مستقلة MSVBVM60.DLL وهي المسؤولة عن تشغيل برامجك التي طورتها عن طريق Visual Basic.


حلول الانترنت
فيجوال بيسك يوفر لك العديد من الحلول والخاصة بالإنترنت. فيمكنك من إنشاء أدوات تحكم ActiveX Controls يتم تنفيذها في صفحة الويب. أو تصميم تطبيقات متقدمة كـ ActiveX Documents للعمل على متصفح Internet Explorer. المزيد أيضا، Visual Basic يوفر لك بيئة تطوير خاصة لتطوير تطبيقات الإنترنت سواءً كانت للعميل Client كتطوير تطبيقات من نوع DHTML Applications أو للخادم Server كتطوير تطبيقات ASP Applications.
مستقبلك مع فيجوال بيسك

انتهى تطوير الفيجوال بيسك 6 منذ العام 1997م وتخلت عنه شركته المنتجة Microsoft حيث لم تدعم تطبيقاته في النسخ الجديدة من نظام التشغيل الشهير MS Windows لذلك فقد أصبح من الماضي.
و اتجه المصنعون (الشركات العملاقة) الآن إلى ال.net وهي الأكثر قوة وتطورا.


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


تاريخ الفيجوال بيسك
أنتجت شركة مايكروسوفت أول إصدار من لغة البيسك عام 1970م، وسمي Basic والاسم يعتبر اختصاراً لكلمة لغة البرمجة العامة التسلسلية للمبتدئين (Beginner’s All-Purpose Symbolic Instruction Code)، وتوالت الإصدارات فظهر الإصدارات GW-BASIC, QuickBasic and QBasic، وكلهم يعملون في بيئة Dos، ومع انتشار بيئة ويندوز ظهرت فيجوال بيسك التي احتوت على كثير من أوامر QBASIC وأضيفت العديد من الوظائف التي جعلت من البرمجة بفيجوال بيسك يسرة وسهلة. هناك الآلاف من المواقع التعليمية للفيجوال بيسك ومنها Visual Basic Tutorials
في عام 2000 قامت مايكروسوفت بإنتاج النسخة المطورة VISUAL BASIC.NET والتي تعتمد على البرمجة الشيئيةmezzo.

لغة دي مع الامثلة

تعتبر لغة البرمجة دي، والتي تعرف أيضا ببساطة بدي D] هي لغة برمجة كائنية التوجه object-oriented، وأمرية، وتدعم نماذج برمجية متعددة صممها ولتر برايت في ديجيتال مارس Digital Mars. وقد أنشئت هذه اللغة باعتبارها إعادة هندسية للغة C++ ، لكنها مع كونها متأثرة على نطاق كبير بهذه اللغة فإنها ليست فرع لـ C++. وقد أعادت دي تصميم بعض ميزات C++ وكانت متأثرة بالمفاهيم المستخدمة في لغات البرمجة الأخرى، مثل جافا، وبيثون، وروبي، و C#، وإيفيل.


المميزات

لقد صممت لغة دي بدروس مستفادة من الاستخدام العملي للغة C++ أكثر من الاعتماد في ذلك على التصور النظري. وبالرغم من واقع أنها تستخدم العديد من مفاهيم لغتي C / C++ ، فإنها أيضا لا تستخدم البعض الآخر وكذلك فإنها غير متوافقة مع الشيفرة الأصلية لـ C/C++ . كما أنها تضيف إلى وظيفية C++ من خلال تطبيق التصميم التعاقدي، واختبار الوحدة، والوحدات الحقيقية، وجمع القمامة، والمصفوفات من الدرجة الأولى، والمصفوفات الترابطية، والمصفوفات الديناميكية، والمصفوفة الشرائحية، والدوال المتداخلة، والفئات الداخلية، والإغلاقات، والدوال المجهولة، وتنفيذ الوظيفة في وقت التصريف، والتقييم الكسول، كما أنها أعادت هندسة بنية القالب. وتحتفظ لغة دي بقدرة C++ على القيام باتشفير متدني لامستوى وتضيف له بدعم من أجل inline assembler. ويحل محل الوراثة المتعددة لـ C++ أسلوب جافا ذو الوراثة الواحدة المزود بواجهات ومتخلطات. إن إعلان وبيان وتعبير دي عن البنية مرتبط بقوة بنظيرتها في C++. ويحدد inline assembler نوع الاختلافات بين دي ولغات التطبيق مثل جافا و سي شارب. ويمكن inline assembler المبرمجين من إدخال شفرة تجميع الآلة المحددة وفق معيار شفرة لغة دي- وهو التكنيك الذي يستخدم عادة من قبل مبرمجي النظام للوصول إلى الميزات منخفضة المستوى للمعالج والمطلوبة لتشغيل البرامج التي تتداخل مباشرة مع العتاد hardware المحدد مثل نظم التشغيل ومشغلات الجهاز. يوجد في لغة دي دعم للتوثيق، بما يسمح بتوليد الآلي للتوثيق.

نماذج البرمجة

البرمجة تدعم لغة دي خمسة نماذج برمجة رئيسية وهي الأمرية والكائنية والبرمجة العلياوالوظيفية والتزامن.

الأمرية

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

القائمة على الكائن

إن البرمجة القائمة على الكائن في دي تقوم على تراتبية موروثة واحدة، مع جميع الفئات المشتقة من فئة الكائن Object. ولا تدعم لغة دي الموروث المتعدد؛ وبدلا من ذلك فإنها تستخدم واجهات بأسلوب الجافا، والتي يمكن مقارنتها بالفئات المجردة الصرفة للغة C++، والفئات mixins، والتي تسمح بفصل الوظيفية المشتركة عن التراتبية الموروثة. إضافة إلى ذلك فإن دي 2.0 تسمح بإعلان الطرق الثابتة والنهائية (غير الظاهرية) في الواجهات.

البرمجة الأعلى

تدعم البرمجة الأعلى مجموعة من القوالب، وتنفيذ وظيفة تصريف الوقت، التتابعات tuples، وسلسلة الفئات. وتظهر النماذج التالية بعضا من مميزات تصريف الوقت في لغة دي. ويمكن أن تكون القوالب في لغة دي مكتوبة في أسلوب أكثر شبها بالوظيفة مقارنة بما هو عليه الحال في C++. وهذه وظيفة منتظمة تحسب مضروب رقم ما:
ulong factorial(ulong n)
{
if(n < 2)
return 1;
else
return n * factorial(n - 1);
}
وهنا فإن استخدام إذا الثابتة، وهي البنية الشرطية لتصريف الوقت في لغة دي، يظهر لبناء قالب يقوم بنفس الحساب باستخدام الشفرة التي تشبه الوظيفة المذكورة عاليه:
template Factorial(ulong n)
{
static if(n < 2)
const Factorial = 1;
else
const Factorial = n * Factorial!(n - 1);
}
وفي المثالين التاليين، فإن كلا من القالب والوظيفة المحددان عاليه يستخدمان لحساب المضاعفات. إن أنواع الثوابت ليست بحاجة إلى وضوح محدد كما هو حال المصرف في استنباط أنواعها من الجوانب اليمنى للواجبات:
const fact_7 = Factorial!(7);
وفيما يلي مثال على تنفيذ وظيف تصريف الوقت. يمكن استخدام الوظائف المعتادة في التعبيرات الثابتة والمصرفة زمنيا بشرط أن تلبي معايير معينة:
const fact_9 = factorial(9);
ويؤدي قالب std.metastrings.Formatمهمة تنسيق البيانات الذي يشبه طباعة إف printf، ويستعرض "msg" pragma النتيجة عند وقت التصرف:
import std.metastrings;
pragma(msg, Format!("7! = %s", fact_7));
pragma(msg, Format!("9! = %s", fact_9));
إن سلسلة الفئات Mixins، بالترافق مع تنفيذ وظيفة تصريف الوقت، تسمح بتوليد شفرة دي باستخدام عمليات مسلسلة عند وقت التصرف. ويمكن أن يستخدم ذلك لتحليل اللغات محددة النطاق لشفرة دي، والتي سيتم التصرف فيها كجزء من البرنامج
import std.algorithm, std.range, std.stdio;
int main()
{
int[] a1 = [0,1,2,3,4,5,6,7,8,9];
int[] a2 = [6,7,8,9];
immutable pivot = 5; // must be immutable to allow access from inside mysum
int mysum(int a, int b) pure // pure function
{
if (b <= pivot) // ref to enclosing-scope
return a + b;
else
return a;
}
auto result = reduce!(mysum)( chain(a1, a2) ); // passing a delegate (closure)
writeln("Result: ", result); // output is "15"
return 0;
}

الوظيفية

D 2.0 only.
import std.algorithm, std.range, std.stdio;
int main()
{
int[] a1 = [0,1,2,3,4,5,6,7,8,9];
int[] a2 = [6,7,8,9];
immutable pivot = 5; // must be immutable to allow access from inside mysum
int mysum(int a, int b) pure // pure function
{
if (b <= pivot) // ref to enclosing-scope
return a + b;
else
return a;
}
auto result = reduce!(mysum)( chain(a1, a2) ); // passing a delegate (closure)
writeln("Result: ", result); // output is "15"
return 0;
}

التزامن

D 2.0 only.
import std.concurrency, std.stdio, std.typecons;
int main()
{
auto tid = spawn(&foo); // create an actor object
foreach(i; 0 .. 10)
tid.send(i); // send some integers
tid.send(1.0f); // send a float
tid.send("hello"); // send a string
tid.send(thisTid); // send an object (Tid)
receive( (int x) { writeln("Main thread receives message: ", x); });
return 0;
}
void foo()
{
bool cont = true;
while (cont)
{
receive( // pattern matching
(int msg) { writeln("int receive: ", msg); }, // int type
(Tid sender){ cont = false; sender.send(-1); }, // object type
(Variant v) { writeln("huh?"); } // any type
);
}
}

إدارة الذاكرة

تدار الذاكرة في الغالب باستخدام المجموعة المهملة، لكن الكائنات المحددة يمكن اتمامها على الفور عندما تخرج عن النطاق. ويمكن تقديم إدارة مميزة للذاكرة باستخدام مشغلات الحمولة الزائدة الجديدة والملغاة، ومن خلال استدعاء تخصيص تناول البث المتعددة Multicast Address Allocation والحر ل C مباشرة. ويمكن التحكم في المجموعة المهملة: ويمكن للمبرمجين أن تضيف وتستبعد نطاقات ذاكرة من كونها ملاحظة من قبل الجامع، ويمكن أن تعطل وتمكن الجامع وتجبر حدوث دورة مجموعة توليدية أو كاملة. ويقدم الدليل أمثلة كثيرة على كيفية تطبيق نظم ذاكرة مختلفة للغاية عندما تكون المجموعة المهملة غير كافية في البرنامج.

التفاعل مع النظم الأخرى

إن واجهة التطبيق الثنائية لسي (ABI) مدعومة أيضا كجميع الأنواع الأساسية والمشتقة، وتمكن من الوصول المباشر إلى شيفرة ومكتبات سي الموجودة. إن مكتبة سي القياسية هي جزء من المعيار دي. إن واجهة التطبيق الثنائية لـ C++ ليست مدعومة بالكامل، بالرغم من أنه يمكن لدي أن تستخدم شيفرة C++ المكتوبة لواجهة التطبيق الثنائية لسي. ويفهم محلل دي (C++) خارجي يستدعي اتفاقا من أجل صلة محدودة بكائنات C++، لكنه لا يطبق إلا في D 2.0.

تناول السلسلة

تمتعت اللغة ثلاثة أنواع حروف مميزة وهي ( حرف char، حرف و wchar، وحرف د dchar) وثلاثة كنيات مسلسلة (وهي السلسلة، سلسلة و، وسلسلة د، التي هي ببساطة مجموعات ديناميكية من السابقة) والتي تقدم وحدات شفرات وسلاسل UTF-8, UTF-16 ,UTF-32 على التوالي. ولأسباب متعلقة بالأداء، فإن تشريح السلسلة والخاصية الطويلة يعملان على وحدات التشفير أكثر من نقاط التشفير (الأحرف)، والتي تجعل المطورين مضطربين باستمرار. ولأن كل من UTF-8 و UTF-16 عبارة عن فك شفرات حرفية متباينة الطول، فإن الوصول باستخدام مؤشر نقطة التشفير في وقت ثابت ليس ممكنا بدون الحفاظ على جداول بحث إضافية. إن الشفرة التي تحتاج إلى وصول عشوائي سريع لنقاط التشفير سوف تحول السلاسل إلى UTF-32 أولا، أو استخدام جداول البحث. بأي حال فإن ذلك أيضا أمرا صحيحا بالنسبة للغات البرمجة الأخرى الداعمة لفك الشفرات Unicode مثل جافا و سي شارب اللتان تستخدمان UTF-16، وهكذا فغنهما قد تحتاجا إلى أزواج بديلة لتمثيل بعض نقاط التشفير.

أمثلة

المثال 1

إن هذا البرنامج المثالي يطبع سطر أمر معطياته. وتكون وظيفته الأساسية هي نقطة إدخال برنامج دي، وأرجات args هي مجموعة من السلاسل التي تمثل معطيات سطر الأمر. والسلسلة في دي هي مجموعة من الأحرف، والممثلة من خلال الحرف [] في دي 1.0 أو ( حرف) [] غير قابل للتغيير في أبجدية دي 2.0. بأي حال فإن الإصدارات الأحدث للغة تعرف السلسلة باعتبارها كنية عن الحرف[] أو ( حرف) [] غير قابل للتغيير ، ومن الضروري هنا وجود تعريف كنية واضحة للتوافق مع الإصدارات الأقدم
import std.stdio: writefln;
void main(string[] args)
{
foreach (i, arg; args)
writefln("args[%d] = '%s'", i, arg);
}
يمكن لبيان الفوريتش أن يحدد أي مجموعة، وفي هذه الحالة فإنه ينتج مؤشرات مرتبة (i) وقيم (arg) من مجموعة أرجات args. إن المؤشر i والقيمة arg لهما أنواعهما المستنبطة من نوع المجموعة أرجات. وباستخدام مكتبة تانجو فإن الشفرة السابقة ستكون كما يلي:
import tango.io.Stdout;
void main(char[][] args)
{
foreach (i, arg; args)
Stdout("args[")(i)("] = '")(arg)("'").newline();
}

المثال 2

يظهر ما يلي القدرات العديدة لدي في برنامج قصير للغاية. ويحدد سطور ملف النصوص المسماة words.txt والتي تحتوي على كلمة مختلفة في كل سطر، ويطبع جميع الكلمات التي تشكل الجناس التصحيحي لجميع الكلمات الأخرى.
import std.stdio: writefln;
import std.stream: BufferedFile;
import std.string: tolower, join;
void main()
{
string[][string] signature2words;
foreach (string line; new BufferedFile("words.txt"))
signature2words[line.tolower.sort] ~= line.dup;
foreach (words; signature2words)
if (words.length > 1)
writefln(words.join(" "));
}

  1. نوع التوقيع على الكلمات عبارة عن مجموعة مترابطة داخليا تخطط سلسلة المفاتيح لمجموعات السلاسل. وهو شبيه (بالقائمة) المبدئية في بايثون Python.
  2. يقوم ملف المخزنة بوضع السطور ببطء، دون سطورها الجديدة، لأن أداء السطر الذي تضعه يكون مجرد منظر على سلسلة، لذلك يجب نسخه مكررا ليكون له نسخة مسلسلة فعلية والتي يمكن استخدامها لاحقا (إن ازدواج خاصية المجموعات يحقق ازدواجا في المجموعات نفسها).
  3. يلحق مشغل ~= سلسلة جديدة للقيم التي تربط المجموعة.
  4. إن كل من تولوير tolower والمشترك وظيفتين متسلسلتين تسمح دي باستخدامهما بمنهج بنيوي، وأسماءهم تشبه عادة طرق تسلسل بايثون. ويحول تولوير tolower سلسلة ASCII إلى حالة أدنى وتقوم المشترك join (" ") بجمع مجموعة من السلاسل في سلسلة واحدة باستخدام مسافة واحدة كفاصل.
  5. تفرز خاصية الفرز المجموعة القائمة، وتكون توقيعا فريدا للكلمات التي تشكل الجناس التصحيحي لبعضها البعض.
  6. وتحدد الفوريتش foreach الثانية (لغة لكل من) قيم المجموعة المترابطة، وهي قادرة على استنتاج نوع الكلمات.


1/01/2014

مفدمة عن لغة بي إتش بي (PHP)

بي إتش بي (PHP: Hypertext Preprocessor، 'الصفحة الرئيسية الشخصية': "المعالج المسبق للنصوص الفائقة") هي لغة برمجة نصية صممت أساسا من أجل استخدامها لتطوير وبرمجة تطبيقات الوب. كما يمكن استخدامها لإنتاج برامج قائمة بذاتها وليس لها علاقة بالوب فقط.

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

تاريخية

PHP/FI

ظهرت php أولا في سنة 1995 على يد راسموس ليردورف (Rasmus Lerdorf) كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجه وقتها وانما كانت مجموعه من التطبيقات التي كتبت باستخدام لغة Perl أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لانه احتاج فيما بعد إلى تطبيقات أكثر فائده قام راسموس بكتابة تطبيق أكبر باستخدام لغة C حيث أصبحت قادرة على الاتصال بقواعد البيانات كما أنها كانت تسمح للمستخدمين بتطوير تطبيقات مواقع ديناميكيه بسيطه، اختار راسموس ان تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفره للجميع لذا كان يمكن لأي شخص ان يستخدمها ويقوم بتحسينها والمشاركة في حل اخطاءها ومشاكلها.
كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغه، كما أن المتغيرات كانت تشبه متغيرات Perl، وكانت تركيبها النحوي يشبه Perl بالرغم من بساطتها ومحدودياتها.
في عام 1997 تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستخدميها آنذاك 50,000 نطاق، وكان هناك مجموعه من الأشخاص الذين يشاركون في التطوير، وتم إطلاق الإصدار الرسمي من 2.0 في شهر نوفمبر من نفس العام بعد العديد من الإصدارات التجريبية بيتا.

PHP 3

في عام 1997 تم إعادة كتابة PHP/FI على يد زيف سوراسكي وأندي جتمانز بعدما وجدوا ان PHP/FI 2.0 ليست قويه بما فيه الكفاية من أجل كتابة تطبيق تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك تعاون بينهم وبين مؤسس اللغه راسموس ليردورف على ان تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI.
أحد أهم الميزات التي تميزت بها PHP 3 عن سابقتها انها أصبحت قابلة للتوسع وتوفر مع هذا الإصدار العديد من المكتبات والدوال، وادت قابلية التوسع إلى إقبال العديد من المطورين على تطوير المكتبات الجديدة واضافتها مع اللغه، ويقال ان هذا هو السبب الأساسي للنجاح الذي حققه هذا الإصدار، ومن الميزات الأخرى التي تمت اضافتها في هذا الإصدار هي البرمجة كائنية التوجة.
وفي هذا الإصدار تم تغيير اسم اللغه ووضعها تحت اسم جديد وهو PHP (بدون FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو "PHP: Hypertext Preprocessor".
تم إطلاق PHP 3.0 في يونيو 1998 بعد 9 أشهر من الاختبارات.

PHP 4

في عام 1998، وبعد الانطلاق الرسمي لـ PHP 3.0 بقليل بدأ زيف سوراسكي وأندي جتمانز بإعادة كتابة أساس لغة PHP وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغه للتوسع.
المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميته بـ محرك زيند (بالإنجليزية: ZEND) واسم "زيند" مأخود من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في عام 1999.
تعتمد PHP 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من PHP في مايو 2000، بالإضافه إلى تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعه جديده من الميزات مثل دعمه لعدد أكبر من خوادم الوب، الجلسات، طرق آمنه جديده لمعالجة دخل المستخدم وغيرها.
وقد تم إعلان إيقاف تطوير ودعم PHP 4 في 13 يوليو، 2007
<?php
$page_title = "My website";
?> <html> <head> <title>
</ti
<?php echo $page_title; ?> tle>
</html>
</head> <body> Hello </body
>

الاستخدام

غالبا ما تعمل لغة بي إتش بي على خادم ويب، كما يمكن استخدامها كواجهة سطر أوامر أو استخدامها لتطوير برامج ذات واجهة رسومية تعمل على حاسوب المستخدم، يمكن استخدام بي إتش بي تحت معظم خوادم الوب كما أنها تعمل على معظم نظم التشغيل، كما أن فريق تطويرها يزود شيفرتها المصدرية كامله حيث يمكن للمستخدمين بناءها وتطويرها بما يناسب احتياجاتهم.
تقوم بي إتش بي أساسا بأخذ الملف الذي يحتوي على اوامر البي إتش بي (ملفات.php) كـ مدخل وتقوم بإخراج بيانات قابله للعرض.
في الإصدار الرابع من بي إتش بي، تقوم بتحويل الملفات المكتوبة باستخدام البي إتش بي إلى bytecode لمعالجتها عن طريق محرك ZEND،وفي الإصدار الخامس تقدمت لغة ال php بتقنيات عالية جدا وكان اخر اصدار من النسخة الخامسة هو 5.5.6.

استخدامها ناحية الخادم

في الحقيقة صممت بي إتش بي من أجل استخدامها من ناحية الخادم وبناء تطبيقات وب تفاعليه، وقد أصبح بناء LAMP مشهورا جدا في صناعة الوب كطريقة برمجيات وب آمنة، غير مكلفة، ويمكن الاعتماد عليها. بي إتش بي مشار إليها كحرف P في LAMP كـ لغة برمجه، بجانب لينكس (L) كـ نظام تشغيل، اباتشي (A) كـ خادم وب وماي إس كيو إل (M) كنظام إدارة قواعد البيانات. وقد ظهرت أيضا بناءات أخرى ك WAMP مستبدلة لينكس بـ ويندوز (W)، وMAMP مستبدله لينكس بـ ماك أو اس (M).
يمكن استخدام بي إتش بي مع عدد كبير من أنظمة إدارة قواعد البيانات، وبما انها متوفرة على عدد من نظم التشغيل جعل لها مرونة مكنت بي إتش بي من الانتشار.

استخدامها كسطر اوامر

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

استخدامها ناحية العميل

توفر بي إتش بي مكتبات واجهات مستخدم رسوميه مثل GTK (عن طريق PHP-GTK) وQt (عن طريق PHP-Qt) مما يجعل تطوير البرامج غير المتعلقة بالوب امرا ممكنا.

التركيب النحوي

مثال لطباعة برنامج أهلا بالعالم:
<?php
echo 'أهلا بالعالم';
?>
وأيضا بهذا الشكل
<?php echo 'Wikipedia'?>
تقوم PHP بتنفيذ ما هو بين الوسمين <?php و?> فقط، واي شيء خارج هذا هذين الوسمين فيتم طباعته مباشره ولا يتم معاملته كـ شيفرة PHP، تمكن هذه الميزة من إدخال شيفرات الـ PHP داخل شيفرات HTML، مثلا:
<html>
 <head>
 <title>
<?php
$page_title = 'Wikipedia';
echo $page_title;
?>
 </title>
 </head>
<nowiki> <body></nowiki>
 Hello
<nowiki> </body></nowiki>
 
</html>
المتغيرات
تكون مسبوقة بعلامة الدولار - $ - ومن غير الضروري تعريف نوع المتغير، بعكس أسماء الدوال والاصناف، المتغيرات حساسه لحالة الحرف، ومن أجل وضع قيمه للمتغير يتم استخدام علامات الاقتباس المزدوجة - " - او المفردة - ' - أو بدون أي علامة اقتباس بحيث تكون القيمة في هذه الحالة على أحدى الأشكال التالية:
  • من نوعية الأعداد بشقيها الاعداد العائمة والاعداد الصحيحة.
  • من نوعية الثوابت.
  • استدعاء احد الروتينات الفرعية بشكل مباشر.
  • استدعاء احد الروتينات الفرعية عبر كائن (Object).
بي إتش بي لديها ثلاثة أنواع من التعليقات، /* */ والذي يستخدم للتعليقات متعددة الاسطر، // و# والذين يستخدمون للتعليقات ذات السطر الواحد.

أنواع البيانات

تقوم بي إتش بي بتخزين الأرقام بمدى يعتمد على المعالج التي تعمل عليه، هذا المدى نموذجيا يكون 32 بت من الاعداد الصحيحة، متغيرات الاعداد الصحيحة يمكن ان تكون قيمتها عشريه أو ثمانيه أو ست عشريه. الاعداد الحقيقيه كذلك تخزن بمدى يعتمد على المعالج.
لغة بي إتش بي تحتوي كذلك على نوع بوليان والذي يسمى بـ "boolean"، كما في لغة Perl الأرقام الأكبر أو الأصغر من صفر يمكن ان تعتبر true اما الصفر يمكن ان تعتبر false.
نوع البيانات null يمثل المتغيرات التي لا تحتوي على القيمة، والقيمة الوحيدة في هذا النوع من البيانات هي NULL.
المصفوفات تدعم الفهارس النصية والرقميه، المصفوفات يمكن ان تحتوي عناصر من اي نوع من البيانات التي تدعمها بي إتش بي.

الكائنات

في PHP 3 تم إضافة أساسيات البرمجه غرضية التوجه، وتم إعادة كتابته في PHP 5 من أجل تحسين الأداء وإضافة المزيد من الميزات، في الإصدارات السابقة من بي إتش بي كانت تعامل الكائنات كـ أنواع بدائيه (بالإنجليزية: Primitive Types). وكانت نقطة ضعف هذا الأسلوب في أن الكائن كان ينسخ كاملا عندما يتم تكليفه كـ متغير أو عندما يتم تمريره إلى الدوال، وقد تم حل هذه المشكلة PHP 5.
في PHP 5 تم الإعلان عن الأنواع private وprotected لكل من الدوال والمتغيرات، وتم الإعلان عن الطريقة القياسية في تعريف المشيد (بالإنجليزية: constructors) والمهدم (بالإنجليزية: destructors).
class foo extendكيفية تعريف الصنف foo الذي يرث الصنف bar، وتعريف الدالة العامة mystaticfunc والتي يمكن استدعاءها بالشكل التالي foo::mystaticfunc();

الموارد

المكتبات


تضم بي إتش بي(PHP) عدد كبير من المكتبات الحرة والمجانية، أغلب هذه المكتبات تعطي بي إتش بي طبيعتها كلغة لكتابة تطبيقات الوب، حيث تحتوي على مكتبات للوصول إلى FTP ومجموعه من مكتبات الوصول إلى قواعد البيانات مثل MySQL وSQLite وغيرها، العديد من الدوال تشبه دوال لغة C.

مقدمة عن لغه الباسكال

باسكال هي لغة برمجة متعددة الاستخدام تعتمد على الأوامر. وهي معروفة بوضوحها وقوتها وسهولة إنشاء البرامج عن طريقها. وهو ما يجعل من باسكال اللغة البرمجية الأكثر استعمالا في التدريس حتى وقت قريب.
و بالإضافة إلى سهولتها وقوتها، تمتاز لغة باسكال بعدة قواسم مشتركة مع لغة الـسي.غير أن باسكال كان قد صمم في البداية لأسباب تعليمية بحتة وكان مقتصرا على خاصيّات محدودة جدا (فعلى سبيل المثال لم يكون هناك وجود لسلاسل الأحرف)؛ وبالإضافة لكل ذلك فإن كل النسخ المستعملة لباسكال خارج العالم التعليمي هي نسخ معدلة مثل تربو باسكال، دلفي، أوبجكت باسكال.

و في المقابل، فإنه من المعروف أن باسكال فد مكّن من تصميم برامج شهيرة مثل تخ وجزء من أوائل أنظمة التشغيل الخاصة بماكينتوش. وقد تم اقتباس هذه اللغة في لغات أخرى مثل أدا، مودولا-2 (ثم مودولا-3)، أوبرتون.


التقديم والتاريخ

اختُرِعت لغة باسكال (التي اتخذت اسمها من عالم الرياضيات الفرنسي (بليز باسكال) عن طريق نيكولاس ويرذ خلال السبعينيات من القرن العشرين. وقد تم تصميمها لتفيد في تعليم البرمجة بطريقة سهلة ولكن صحيحة، في محاولة لمجابهة تعقيدات ألغول 68. وهذه اللغة من بين اللغات التي ساعدت على تعليم البرمجة المنظمة. وباعتبار أنه من غير المنصوح به استعمال الـ goto أو القفز داخل البرنامج فإن باسكال يعتمد على الشروط (if, case...) والتكرارات (while, for, repeat...) والتي تمتلك كل واحدة منها مدخلا ومخرجا حتى يتم تسهيل التحكم، مما يؤدي إلى برنامج أكثر سرعة وتنظيما.
وتعد هذه اللغة كذلك صارمة في ما يخص تعريف المتغيرات، بمعنى أن كل متغير يجب أن يعرف بنزع عند التجميع. وفي المقابل فإن عدم تأقلمه لتمكين التنقل من النوع حرف إلى النوع سلسلة حروف يعد من نقاط ضعفه.
وقد تمكنت لغة باسكال من التغليل بشكل كبير في الميدان التعليمي ومجال الأبحاث (الجامعات)، وبصفة أقل في المبدان الصناعي.
وقد تم نشر ملفات المجمع P4 المصدرية في الجامعات، بسعر مخفض جدا. وهذا المجمع ينشئ الـ P-Code، وهو كود لجهاز افتراضي. ولذلك يمكن القول أن البرامج "الباسكالية" كانت سهلة النقل على الأجهزة.
وكان لمجمع UCSD Pascal (UCSD = University of California at San Diego)، نجاح كبير خاصة على الأجهزة من نوع أبل II والتي كانت شديدة الانتشار.

و لكن "التوربو" كان من عمل شركة بورلاند الحديثة، والتي أنشأت سنة 1983 والتي قامت بتسويق المجمع توربو باسكال بسعر غاية في التخفيض (49 $ حينها مقابل 500 $ سعر مجمع باسكال من شركة مايكروسوفت والذي لم يكن يمتلك محررا مدمجا حتى).


تربو باسكال


قام بكتابة تربو باسكال أنديرس هيلزبيرغ (و قد كان اسمه قبل TP، كومباس باسكال ثم بولي باسكال). وقد كان ينشئ لغة الآلة (x86 تحت DOS) وبسرعة نظرا لخفته (12 ك.ب.) واعتماده شبه التام على الرام ولم يعد ينشئ بالتالي الـ P-Code. و قد كان مرفقا مع بيئة متكاملة (محرر نصوص ومساعدة عن بعد). وما فتئ الباسكال يشهد التحسين تلو الآخر ففي عام 1987 ظهرت النسخة 4 التي احتوت على بيئة برمجة مدمجة متكاملة وفي عام 1989 ظهرت النسخة 5.5 التي امتازت بدمجها لمفهوم الشيء (Object)، وفي عام 1990، مكنت النسخة 6 من برمجة نوافذ (تحت صندوق الأوامر DOS). ثم في عام 1993، ظهرت آخر نسخة، وهي النسخة السابعة لنظام تشغيل دوس ولنظام ويندوز. و قد أصدرت شركة بورلاند سنة 1995 لغة دلفي للتأقلم مع البرمجة المرئية التي أطلقتها مايكروسوفت مع فيجوال ستوديو وكان الدلفي مجمعا حقيقيا ينشئ لغة الآلة. و في سنة 2001 أطلقت شركة بورلاند كيليكس، وهو المرادف لدلفي الخاص بمنظومة لينوكس وكان بسكال يعمل بلغة الالة التي كانت منذ عام 1962 وكانت هذة اللغة هي (الاسمبلى) ونجد اننا نحن عاجزين على معرفة ودراسة هذة اللغة أو نقوم باختراع لغة أخرى شبيهة بلغة الالة فيجب علينا ان ندرس هذة اللغة لأولادنا في المدارس كى يكونو على دراية بالجوانب الخاصة بالبرمجيات والسوفت وير حتى يقودو المستقبل بالعلم الحديث.

فري باسكال

بعد توقف تيربو باسكال عن الإنتاج والانتقال إلى الدلفي قام فريق فري باسكال بإنتاج بديل لتيربو باسكال مجاني مفتوح المصدر منافس للغة السي++ وهو متوافق مع لغة دلفي ويوجد في عدد كبير من المنصات مثل لينكس، وندوز، ماكنتوش، وآرم، وغيرها الكثير. وقد صدر الإصدار الأول منه في منتصف عام 2000، والإصدار الأخير منه الآن هو 2.4 وتوجد له بيئة متكاملة توجد في عدد من المنصات تسمى لازاراس وهي مصممة بواسطة فري باسكال نفسه، وهي مشابهة لبيئة تطوير دلفي 7 إلا أنها ما زالت في حالة التطوير ولم تصل بعد إلى نسخة رقم 1. آخر نسخة رسمية من لازاراس هي: 0.9.28. ويوجد عدد كبير من البرامج تم تطويرها باستخدام لازاراس وفري باسكال حتى قبل صدور النسخة رقم 1 من لازاراس.

أمثلة


  • برنامج أهلا بالعالم التقليدي:
Program HelloWorld(output);
begin
writeLn('Hello, World!');
end.
  • برنامج جدول الضرب :
program MultiplicationTable;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
X, I: Integer;
begin
Write('Please input a number: ');
Readln(X);
for I = 1 to 12 do
Writeln(' * ',' = ', x * i);
end.
  • برنامج المضروب:
program Factorial;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
Num, i: Integer;
Fac: Integer;
begin
Write('Please enter a number: ');
Readln(Num);
Fac = 1;
for I = Num downto 2 do
Fac = Fac * I;
Writeln('Factorial of ', Num, ' is ', Fac);
end.

12/30/2013

نبذة عن لغة SQL



اولا نبذة عن لغة SQL
ھى لغه قياسيه من لغات الحاسب لدخول ومعالجه قواعد البيانات
ما ھى SQL : اختصار للجملة Structured Query Language

لغه بناء الأستعلامات الھيكليه (يعنى ھى الترجمه حرفيه قليلا)
 

  • 1- ھى لغه قياسيه من لغات الحاسب الخاصه بمعھد ANSI
  • 2- تمكنك من الدخول لقواعد البيانات
  • 3- تمكنك من إستخراج البيانات من القاعده
  • 4- تمكنك من إضافه بيانات إلى قاعده البيانات
  • 5- تمكنك من من حذف بيانات من القاعده
  • 6- تمكنك من تعديل البيانات المسجله
  • 7- أخيرا ھى لغه سھله التعلم والفھم


لغة الـ SQL هي لغة قياسية 

تمكنك من دخول ومعالجه نظم قواعد البيانات Database System

جمل SQL تعمل مع برامج قواعد البيانات مثل :
 
Ms-Access, Ms-SQL Server, DB2, Oracle, etc. 
تنقسم لغة sql إلى قسمين : 


ھو القسم المسئول عن : معالجه البيانات
1- SQL Data Manipulation Language
  • 1- إستخراج البيانات من قاعده البيانات : Select
  • 2- إضافه بيانات جديده : INSERT INTO
  • 3- التعديل على البيانات المسجله : Update
  • 4- حذف البيانات من القاعده : Delete



ھو القسم المسئول عن : تعريف البيانات
2- DataDefinition Language

  • لأنشاء قاعده بيانات جديده : Create Database
  • لأنشاء جدول داخل قاعده بيانات : Create Table
  • للتعديل فى الجدول : ALTER TABLE
  • لحذف الجدول من قاعده البيانات : DROP TABLE
  • لأنشاء مفتاح للبحث : CREATE INDEX
  • لحذف مفتاح البحث : DROP INDEX
(( المعلومات السابقة منقولة ))

                                                                   لتحميل الكتاب 

الفئات والكائنات (Classes and Objects)

يمثل فئة (Class) مفهوم واحد مثل هذا الكائن ( Object ) .حيث تمثل الفئة مجموعة " اصناف " من الأشياء التي وصفتها بعض البيانات ، ولها نفس السلوكيات " الأنشطة " . تعد و تخدم الفئةكمخطط لكائن . على سبيل المثال لدينا فئة الطالب تحدد خصائص من كائناتها مثل الاسم والعنوانو التخصص، و المعدل التراكمي عن البيانات و تحديث عنوان أو إعادة حساب المعدل التراكمي عنأساليب أو أنشطة كل كائن من نوع الفئة التي يستطيع الطالب تنفيذه أو يجب تحقيقه. الكائن منهذا النوع يمكن أن يكون أي فئة الطالب الفردية في الجامعة. يمكن أن نفكر في أمثلة أخرى كثيرة مثل فئة السيارات ، وطبقة الطائرة، فئة الثدييات ، وحلقت فئةالحيوان ، وطبقة الأثاث ، وأمثلة أخرى كثيرة. وبالتالي ، لكي نعرف الفئة نحتاج لإعلان البيانات و الأساليب التي ينبغي أن يكون كل كائن من هذا النوع.و أعلن كل بند البيانات سواء كان متغير أو ثابت ، و لكل نشاط (وظيفة ) يجب أن تكون ممثلة من قبل وسائل احد أو أكثر. من الطبقة يمكننا تمثيل ، الكائنات النشطة التي لها نفس المحتويات أي متغيرات البيانات و الأساليب.يجب على كل كائن تعيين قيم لمتغيرات البيانات لديه. هذه القيم تعمل على تحديد حالة كائن تم إنشاؤه من الفئة. الأساليب التي تم تعريفها في الفئة تمثل سلوك الكائن. وفقا لذلك ، في حين أن الفئة لديها البيانات و الأساليب . إنشاء كائن يسمى مثيل( Instantiation ) . الكائن هو مثيل ل فئة معينة ، ونحن نستطيع إنشاء مثيل للعديد من الكائنات كما أننا بحاجة لأي برنامج معين . على سبيل المثال ، فإن الكائن من فئة الطلاب التي يمكن إنشاء مثيل لها التي هي البيانات الفعلية " القيم " من اسم الطالب وعنوانه و التخصص، والمعدل التراكمي، ولها السلوكيات التي هي أساليب محددة في فئتها

أسماء عربية أخرى:
  • برمجة كينونية
  • برمجة شيئية المنحى.
  • برمجة موجهة
  • برمجة كائنية
  • برمجة كائنية التوجه
  • برمجة غرضية التوجه
  • برمجة كائنية المنحى (أو المنحى)
  • برمجة بالعناصر
  • برمجة موجهة نحو الكائنات (أو العناصر)
  • البرمجة بالكائنات -
البرمجة الكائنية عبارة عن نمط برمجة متخصص في المفاهيم التالية:
  • الفئة Class وهو نموذج الوحدة الرئيسية لبناء الـكائن (Object) بمعنى أنه يتم تكوين أكثر من كائن على أساس نموذج البناء الأساسي وهو (Class), ويمكن تشبيه الكلاس بالقالب الذي يقوم بتشكيل الكائن ويمكن بعد ذلك استخدام هذا الكائن لأي غرض مطلوب.
  • الكائنات Objects - حزم وتعليب البيانات والدوال الوظيفية معاً في وحدات تعمل ضمن برنامج نشط. الكائنات هي أساس هيكلية برمجة الحاسوب الكائنيّة.
  • المثال Instance وهو شكل الكلاس أو كائن محدد والذي ينشأ في وضع التشغيل، وبشكل آخر يمكن أن نسمي الكلاس في وضع التشغيل (نموذج). 
  • التجريد Abstraction - قدرة البرنامج على تجاهل بعض واجهات المعلومات المتلاعبة، أي التركيز على المفهوم الأساسي للكائن وهيكليته النظرية وتجريدة من طريقة العمل النهائية والتوجهات الخارجية.
  • التغليف Encapsulation - التأكد أن المستخدم لا يستطيع أن يغير البيانات الداخلية لكائن بطريقة مفاجئة، فقط دوال الكائن الداخلية يسمح لها بتعديل حالة الكائن وبياناته. أي أن لايمكن التلاعب بالكائن وتغير معلوماته بأي طريقة بل أن هناك واجهة استخدام خاصة يضعها المبرمج ومن خلالها يمكن تغيير بيانات الكائن الداخلية وحالته.
  • تعدد الأوجه Polymorphism - بدلاً من استدعاء الإجراءات الفرعية مباشرة، تستطيع البرمجة الشيئية إرسال رسائل، الإجراء المعين الذي يتم نداؤه نتيجة الرسالة يعتمد على نوع الكائن الذي أُرسل له. أي أنه باستخدام نفس اسم الاستدعاء يمكن استدعاء إجراءات ودوال مختلفة اعتماداً على نوع الكائن.
  • الوراثة Inheritance - يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي. فقد يكون هناك كائن اسمه مركبة في الخصائص العامة لكل المركبات مثل الاسم واللون ورقم التسجيل، الكائن الطائرة ممكن أن يرث الكائن مركبة ويضيف عليه خصائص الطائرة، كذلك يمكن أن يكون هناك مثلاً كائن مربع فيه خصائص الطول والعرضShinwano ويمكن للكائن مكعب أن يرث من المربع ويضيف عليه خصائص العمق والحجم.
مثال على تعددية الأوجه: إذا افترضنا أن المتغير مركبة يشير إلى كائن إما أن يكون سيارة أو سفينة أو طائرة. فإذا أردنا في المثال للطائرة أن تطير وللسيارة أن تمشي وللسفينة أن تبحر فعلينا أولاً معرفة نوع الكائن ثم إعطاء الأمر؛ أي إذا كان مركبة هو كائن من نوع سفينة فالمركبة يجب أن تبحر، ولكن مع تعددية الأوجه يمكننا أن ننشئ دالة واحدة في كل كائن اسمها تحرك (الدالة تحرك في السفينة تقوم بالأبحار والدالة تحرك في الطائرة تقوم بالطيران..الخ). الآن ليس يجب علينا أن نعرف نوع الكائن فكل ما علينا فعله هو نداء تحرك للمركبة، هذا سيقوم باستدعاء دالة تحرك الخاصة بالكائن الحالي فإذا كان الكائن سفينة فهذا يعني أن الدالة تحرك الخاصة بالسفينة ستسدعى والتي ستقوم بأبحار السفينة.
من أحدث أساليب هندسة البرامج ما يعرف ب object oriented approach: تعد الطريقة الموجهة للكينونات من الأساليب الجديدة في تطوير النظم وهو أسلوب التحليل والتصميم الكينوني object oriented design and analysis حيث يقوم هذا الأسلوب بدمج البيانات والعمليات في بيئة واحدة تسمى كينونة object وتمثل الكينونة عادة الأشياء الواقعية التي يعالجها نظام المعلومات مثل الزبائن والمزودين والعقود واتفاقيات الإيجار.

بحث علمى جاهز عن لغات البرمجة

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


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

خصائص لغات البرمجة
لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كيفية اعطاء أوامر للحاسوب لكي يقوم بالعمل المطلوب منه. و للقيام باعطاء الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للأستناد عليها خلال عملية بناء البرنامج و مجموعة من القواعد التي تمكن من التعامل مع معلومات و تنظيم هذه الأسس التي توفرها اللغة لتتكامل و تقوم بعمل مفيد. تتمثل هذه الأسس و القواعد بصفة عامة من:
المعلومات و تخزينها 
الأوامر و تنظيم سيرها 
التصميم الخاص 
عنصر أ 
عنصر ب 
عنصر ج=== المعلومات و تخزينها === 
ان المعلومات في الأجهزة الرقمية الحالية يتم تخزينها على أرقام على نظام العد الثنائي و بصفة عامة فان المعالجات الحديثة لا تقوم بالتعامل مع البت الواحد بل مع مجموعات من البتات يمكن أن تضم :
8 بت = بايت وهي أصغر وحدة تخزين معلومات في الحواسيب الحديثة 
16, 32, 64, أو 128 بت 
و باستعمال 8 بت مثلا, يمكن تشكيل 256 قيمة مختلفة, و يمكن أن تكون هذه القيمة بين 0 و 255 و تمثل وظيفة لغة البرمجة استغلال وحدة أو مجموعة من الوحدات لتخزين معلومات من الحياة الواقعية مثل الأسماء أو القياسات أو أرقام الحسابات البنكية

الأوامر و تنظيم سيرها
يقوم المبرمج باجراء عمليات على وحدات المعلومات مثل تخزينها و قرائتها و مقارنتها و اجراء عمليات حسابية عليها أيضا, وتتبع العمليات القواعد المحددة للغة. و للغة البرمجة دور آخر و هو التحكم في تنظيم اجراء العمليات, حيث تحرص على اجرائها بنفس تنظيم كتابتها من طرف المبرمج و تمكن اللغة أيضاً من اجراء عملية اختيار و تفرع, فلنفترض أن البرنامج الذي يريد المبرمج صنعه يقوم بقسمة عددين يختارهما المستعمل, و اظهار النتيجة على الشاشة, و من المعروف أن القسمة على صفر لا تجوز, و هنا يقوم البرنامج بالاختيار : فاذا كان القاسم مخالفا لصفر فان البرنامج يقوم باجراء العملية و يعطي النتيجة, أما اذا كان القاسم صفراً فان البرنامج لا يقوم باجراء العملية و انما ينبه إلى أن المستعمل حاول القسمة على صفر. و يمكن تنظيم الأوامر بصفة أخرى, حيث يقع تنفيذ أمر أو مجموعة من الأوامر بصفة متكررة (Loop) و يمكن تقسيم الأوامر أيضاً إلى وحدات فرعية تقوم كل وحدة بانجاز عمل محدد, و الهدف هو تقسيم العمل إلى أجزاء يسهل العمل عليها كل على حدة (Loops)

التصميم الخاص
تتمتع كل لغة بتصميم خاص يختلف عن طريقة كل لغة في التعامل مع المعطيات, و عن طبيعة الطرق و التسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.
يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic, Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على الأشياء والمتحولات. ولغات شيئية (C, Java, Delphi) وهي لاتسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويرها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.
أمثلة
أمثلة لبعض لغات البرمجة للحاسوب
Assembly 

++C 
Java 
Lisp 
Logo 
Prolog 
بايثون 
#C 
Fortran 
Ruby 
Ada 
Delphi 
Basic 
Visual Basic 
Cobol 
Pascal 

SQL 
Smalltalk 
Eiffel 
Tcl 
Oz