• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Maverick

المشرفين القدامى
  • عدد المشاركات

    1,476
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

6 عادي

عن Maverick

  • الرتبة
    عضو مميز جدا
  • تاريخ الميلاد 07/19/1987

طرق الإتصال

  • MSN [email protected]l.com
  • Website URL http://www.it-jo.com
  • ICQ 0

معلومات الملف الشخصي

  • الدولة : الاردن
  • اهتمامات Programming

أحدث الزائرين لملفلك الشخصي

7,059 زياره للملف الشخصي
  1. Lexical Analysis

    هذا كود كتبته منذ فترة بلغة ال D و هو قريب من السي++ Character module IntelliDParser.Character; /* This class represents a single character in the source text it holds information about the position of character and its value */ public class Character { public const char EOF = '\0'; public int sourceIndex, lineIndex,colIndex; public char value; this(char aval, int asrcIdx, int alnIdx, int aclIdx) { value = aval; sourceIndex = asrcIdx; lineIndex = alnIdx; colIndex = aclIdx; } } Token module IntelliDParser.Token; import IntelliDParser.Character; public class Token { public enum { NONE, COMMENT, IDENTIFIER } public Character[] tokenValue; public int lineIndex, colIndex; public int type; this(Character c) { tokenValue = new Character[1]; tokenValue[0] = c; } public void addChar(Character c) { tokenValue.length = tokenValue.length + 1; tokenValue[tokenValue.length-1] = c; } public char[] toString() { char[] arr = new char[1]; arr[0] = tokenValue[0].value; for(int i = 1; i<tokenValue.length; i++) { arr.length = arr.length + 1; arr[i] = tokenValue[i].value; } return arr; } } Scanner: module IntelliDParser.Scanner; import IntelliDParser.Character; public class Scanner { char[] sourceText; private int srcIndex, colIndex, lineIndex,lastIndex; this(char[] arg_sT) { sourceText = arg_sT; lineIndex = 0; srcIndex = -1; colIndex = -1; lastIndex = sourceText.length - 1; } public Character next() { srcIndex++; if(srcIndex > 0 && srcIndex <= lastIndex) { if(sourceText[srcIndex] == '\n') { lineIndex++; colIndex = -1; } } colIndex++; if(srcIndex > lastIndex) { return new Character(Character.EOF,srcIndex,lineIndex,colIndex); } else { return new Character(sourceText[srcIndex],srcIndex,lineIndex,colIndex); } } public Character topNext() { int li = lineIndex, ci = colIndex; if(srcIndex+1 > 0 && srcIndex+1 <= lastIndex) { if(sourceText[srcIndex+1] == '\n') { li++; ci = -1; } } ci++; if(srcIndex > lastIndex) { return new Character(Character.EOF,srcIndex+1,li,ci); } else { return new Character(sourceText[srcIndex+1],srcIndex+1,li,ci); } } } Symbols: module IntelliDParser.Symbols; public bool containsB(char a, char[][] b) { return true; } char[][] arrKeywords = [ "abstract", "alias", "align", "asm", "assert", "auto", "body", "break", "case", "cast", "catch", "class", "const", "continue", "debug", "default", "delegate", "delete", "deprecated", "do", "else", "enum", "export", "extern", "false", "final", "finally", "for", "foreach", "foreach_reverse", "function", "goto", "if", "import", "in", "inout", "interface", "invariant", "is", "lazy", "mixin", "module", "new", "null", "out", "override", "package", "pragma", "private", "protected", "public", "return", "scope", "static", "struct", "super", "switch", "synchronized", "template", "this", "throw", "true", "try", "typedef", "typeid", "typeof", "union", "unittest", "version", "volatile", "while", "with" ]; char[][] arrDataTypes = [ "bool", "byte", "cdouble", "cent", "cfloat", "char", "creal", "dchar", "double", "float", "idouble", "ifloat", "int", "ireal", "long", "real", "short", "ubyte", "ucent", "uint", "ulong", "ushort", "void", "wchar" ]; char[][] arrOperators = [ "/", "/=", ".", "..", "...", "&", "&=", "&&", "|", "|=", "||", "-", "-=", "--", "+", "+=", "++", "<", "<=", "<<", "<<=", "<>", "<>=", ">", ">=", ">>=", ">>>=", ">>", ">>>", "!", "!=", "!==", "!<>", "!<>=", "!<", "!<=", "!>", "!>=", "!~", "(", ")", "[", "]", "{", "}", "?", ",", ";", ":", "$", "=", "==", "===", "*", "*=", "%", "%=", "^", "^=", "~", "~=", "~~", ]; public char[] arrWhiteSpace = " \t\r\n"; char[] arrStringChars = "'\""; char[] arrCommentChars = "///*/+"; char[] arrCommentCloseChars = " */+/"; Lexer: module IntelliDParser.Lexer; import IntelliDParser.Scanner; import IntelliDParser.Token; import IntelliDParser.Character; import IntelliDParser.Symbols; import tango.text.Util; import tango.text.convert.Integer; import dwt.widgets.MessageBox; import dwt.DWT; public class Lexer { char[] sourceText; Scanner scanner; Character curChar; this(char[] asrcTxt) { sourceText = asrcTxt; scanner = new Scanner(sourceText); curChar = scanner.next(); } public Token nextToken() { char[] index = format(new char[2],curChar.sourceIndex); char[] a = " index: " ~ index; MessageBox.showMessageBox("curChar: " ~ curChar.value ~ "" ~ a,"a",null,DWT.OK); //process whitespaces while(arrWhiteSpace.contains(curChar.value)) { curChar = scanner.next(); } //process comments if(arrCommentChars.containsPattern("" ~ curChar.value ~ scanner.topNext().value)) { int posOfCom = arrCommentChars.locatePattern("" ~ curChar.value ~ scanner.topNext().value); char[] closeCom = arrCommentCloseChars[posOfCom .. posOfCom+2]; Token token = new Token(curChar); token.addChar(scanner.next()); token.type = Token.COMMENT; curChar = scanner.next(); while(!matching(closeCom.ptr,("" ~ curChar.value ~ scanner.topNext().value).ptr,2u)) { token.addChar(curChar); curChar = scanner.next(); } MessageBox.showMessageBox("After: " ~ curChar.value ~ scanner.topNext().value,"a",null,DWT.OK); token.addChar(curChar); curChar = scanner.next(); token.addChar(curChar); curChar = scanner.next(); return token; } return null; } } طبعا يجب معرفة المبدأ من خلال دراسة مادة الكومبايلر http://www.google.jo/search?q=writing+a+le...lient=firefox-a
  2. سؤال: لماذا سميته بال"هروب منها"؟؟؟
  3. سؤال بلغة سي 3 ايام لم استطع حله

    هممم السؤال طويل لكن لا توجد صعوبة في حله لكن يجب عليك ان تأخذ خطوات الحل درجة درجة خلينا نمشي بالنقاط وحدة وحدة اول شيء, قم بكتابة الكود بحيث يقرأ محتويات الملف. هل تستطيع فعل ذلك؟ ثاني خطوة طويلة نوعا ما لكن. قم بعمل كلاس و سميه Game هذا الكلاس يحتوي على التالي GameNumber StartDay DurationInDays او المدة بالأيام StartHour EndHour Price و لما تخلص نحكي بالتفاصيل الأخرى
  4. حبيت ان اضيف معلومة بسيطة و هي ان لينوس تورفالدس طور النواة بإستخدام السي و هو فعليا يكره لغة السي++ و هذا رأيه هنا هذا بالنسبة للردود التي شملت انه اللينكس طور بإستخدام السي++ و لعدم نسيان الموضوع الرئيسي الذي طرح و هو الدوت نت. مثل ما قال الأخ سنان ان الدوت نت منصة كاملة تحتوي على الكومبايلرات المختلفة لجميع اللغات و JIT و CLR و CLI و غيرها. اما بالنسبة لتعدد اللغات على منصة الدوت نت فهي للجذب المبرمجين بشكل بحت. بحيث ان مستخدم منصة الدوت نت او المبرمج من الممكن ان تكون اللغة التي يعمل عليها هي السي++ او البيسك و لذلك وفرت لغتين مختلفتين لتناسب ما تعود عليه المبرمجين من خلفيات لغات برمجة مختلفة. و قامت شركة مايكروسوفت بتطوير CLS و هي Common Language Specification لتمكين Third party developers لتطوير لغات اخرى تعمل على منصة الدوت نت بحيث يتمكن مبرمجي اللغات الأخرى مثل TCL, Python, Perl, PHP و غيرها من تطوير برامج تعمل على المنصة التي قاموا بتطويرها. www.dotnetlanguages.net/ هذا الكلام قرأته قبل يومين في كتاب Pro C# 2008 من APress هذا الكتاب ايضا قام بإضافة ملاحظة انه الكود الناتج MSIL و IL من ترجمة جميع اللغات متشابه بنسبة كبيرة تصل الى 90% لكن بالنسبة لقوة اللغات فقد تم توحيد القوة لان ما تستطيع عمله بالسي++ دوت نت عن طريق ال Pointers و غيرها من الأشياء المتوفرة فيها تستطيع عمله بطريقة أخرى بالفجوال بسيك دوت نت, علما بانه و على حد ظني ان ال VB.NET تدعم المؤشرات بطريقة ما.
  5. ذكرتوني بفلم iRobot و رأيت هذا الروبوت على اليوتيوب لكن ما اعجبني اكثر هو خبر عن الروبوت بحجم الذبابة
  6. السلام عليكــم ورحمـة الله وبركاتــة
  7. كما الجميع, اشكرك اخي على إخبارنا عن هذه التجربة. لكن على حسب طلبهم, فهم يطلبون درجة ماجستير او المفضل درجة الدكتوراه... اذا تسمح لي بالسؤال, ما هي مؤهلاتك العلمية؟ BCs or MS؟ فقد قمت بالتقدم للوظيفة هذه و انا حامل للبكالوريوس و إن شاء الله الماجستير على الطريق
  8. سؤال في Netbeans Ide6

    NewJFrame hh3 = new NewJFrame()
  9. تكرم اخ علاء Delphi is a nice little red Ferrari with automatic doors that open once you approach :P من إختراعي هذه :P
  10. ال Static Linking يتم من خلال البرنامج ال Linker الموجود مع الكومبايلر. الطريقة تعتمد على بيئة التطوير. هل تستخدم VC++6؟
  11. يجب عمل ما يسمى ب Static Linking و هي عملية ربط البرنامج بالمكتبات التي يستخدمها بحيث تقوم هذه العملية بتضمين هذه المكتبات في ملف ال exe و بالتالي لن يحتاج هذا الملف عند تشغيلة الى اية ملفات خارجية. طبعا التضحية هنا في حجم البرنامج لكن لم تكون الزيادة اكثر من 500 او 600 كيلو بايت إعتمادا على التجربات التي قمت بها في ال MFC و VCL وو ممكن تختلف حسب البرنامج الذي تقوم بعمله و حسب المكتبات التي تستخدمها.
  12. السلام عليكم في بحثي على كيفية وضع البرامج على الفلاش بحيث استطيع تشغيل اي برنامج و حفظ جميع الإعدادات الخاصة بهذا البرنامج على الفلاش نفسه وجدت برنامج رهيب يحتوي على الكثير من البرامج المفتوحة المتوفرة و التي تم تعدليها لهذا الغرض و الأفضل من هذا ان البرنامج يتيح خاصية تنصيب البرنامج على الفلاش و تنزيل البرامج التي تريدها عن طريق installer ايضا. هذا البرنامج شبيه بال Start Menu الخاصة بالوندوز اكس بي لا داعي للإكثار من الكلام, شوفو بنفسكم :) www.portableapps.org و بالإضافة الى انه يمكن تنصيب نظام تشغيل كامل مثل الماك من خلاله. لكن في نظم التشغيل على الفلاش, وجد برنامج افضل و هو MojoPac http://www.mojopac.com/portal/content/hellomojo.jsp اما هذا الموقع, فهو يشرح كيفية تنصيب توزيعات اللينكس الأكثر شهرة على الفلاش http://www.pendrivelinux.com/ اتمنى ان تعجبكم هذه البرامج
  13. همم, اتوقع اني دخلت في حوار مثل هذا مع مطور اجنبي و اقترح عمل برنامج يقوم بوضع Socket hook على الوندوز بحيث يتحكم بحجم ال packets التي ترسل. قرأت كثيرا لكن لم استطع الوصول الى نتيجة لانه ال Socket Hook صعب جدا.
  14. مالفرق بين Scalability & Availability

    عندما نقول ان النظام scalable يعني ان النظام يسمح إضافة خواص (Features) جديدة بدون التأثير على الأداء (مثلا: plugins) بالإضافة الى قدرته على تحمل الشيء الكثير من الحمل (Load scalability)
  15. رائع, هذه الطريقة تستخدم مع ال Threads لحفاظ على ما يسمى ي Data Consistency و صحة المعلومات الموجودة في المتغيرات على مبدأ Mutual execlusion